13
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

WKWebViewへの移行が完了してもアプリにはUIWebViewが潜んでいるかもしれない

Last updated at Posted at 2020-03-17

はじめ

先日、アプリで使用しているWebViewを非推奨APIとなっているUIWebViewからWKWebViewへ移行しました。
これでアプリ内からUIWebViewはいなくなりました。
と思っていたのですが、それでもAppleから「UIWebViewを使わないでね」という連絡がやってきてしまいました。

Dear Developer,
We identified one or more issues with a recent delivery for your app, <アプリ名>. Your delivery was successful, but you may wish to correct the following issues in your next delivery:
ITMS-90809: Deprecated API Usage - Apple will stop accepting submissions of apps that use UIWebView APIs starting from December 2020 . See https://developer.apple.com/documentation/uikit/uiwebview for more information.
After you've corrected the issues, you can upload a new binary to App Store Connect.
Best regards,
The App Store Team

メールを持っている人のイラスト(男性)

プロジェクト内を「UIWebView」で検索したところPods内のAFNetworking/UIKitがヒットしました。
原因はAFNetworking/UIKitに含まれているUIWebViewの拡張機能でした。
これからプロジェクトを修正してUIWebViewを根絶やしにしていきたいと思います。
粗探しのイラスト

修正方針

AFNetworkingのissueを参考に修正します。
issueでは以下の修正方法などが紹介されています。

  • AFNetworking/UIKit内のUIWebViewに関するファイルを削除する方法
  • 不要な依存関係(AFNetworking/UIKit)を削除する方法

前者はチーム開発の場合に各々がファイルを削除することになり、ミスに繋がると思いました。
また、Pods内を編集すること自体にも抵抗があります。
今回は後者の方法で修正することにしました。

修学旅行のイラスト「地図を見て道を探す子供達」

修正

まずは、Podfileの該当行を修正します。
'UIKit'以外の必要なsubspecsを指定します。

Podfile
# pod 'AFNetworking'
# ↓
pod 'AFNetworking', :subspecs => ['Reachability', 'Security', 'Serialization', 'NSURLSession']

そして、インポートするファイルが変わるためアプリ側のソースも合わせて修正します。

// #import "AFNetworking.h"
// ↓
#import <AFNetworking/AFNetworking-umbrella.h>

最後に、pod installすれば問題なく動くはずです。

機械のメンテナンスをする人のイラスト

まとめ

アプリでUIWebViewを使用していないのにもかかわらず、Appleから連絡が来てしまう場合はライブラリが原因かもしれません。
ライブラリのissueを確認するなどして対応するといいと思います。
今後、UIWebViewが含まれているアプリはリジェクトされるようになります(新規アプリは2020年4月、アップデートは2020年12月から)。
本記事がアプリ開発の助けになれば幸いです。

スマートフォンのアプリのイラスト

参考

審査に出したiOSアプリが ITMS-90809 としてAppleから問題を指摘される話

13
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?