[Unity] AppStoreConnectへのUpload時のITMS-90809問題
概要
iOS AppをAppStoreConnectにアップロード後、審査結果で下記のような事由でリジェクト。
ITMS-90809: Deprecated API Usage - New apps that use UIWebView are no longer accepted. Instead, use WKWebView for improved security and reliability. Learn more (https://developer.apple.com/documentation/uikit/uiwebview).
Deprecated(非推奨)扱いになった『UIWebView』というAPIの呼び出しが検知されたため、とのこと。
この記事を読んでいる方はUnityユーザの方が多いと思うので、基本的には直接UIWebViewを呼び出して使っているわけではなく、UIWebViewを利用するライブラリを利用しているものと思われます。
この記事ではそのライブラリの調査方法と、私が遭遇したケースにおける解決方法を記載します。
※調査方法はMaxユーザ向けのため、Windowsユーザは読み替えが必要です
調査方法
まずUIWebViewを利用しているライブラリを見つける必要があります。
XCodeのProjectフォルダの直下でgrepすればあたりがつけられます。
実行コマンド
grep -r "UIWebView" .
実行結果
Binary file ./Libraries/libiPhone-lib.a matches
Binary file ./Pods/Google-Mobile-Ads-SDK/Frameworks/GoogleMobileAdsFramework-Current/GoogleMobileAds.framework/GoogleMobileAds matches
今回の私のケースだと上記2件がヒットしました。
上記2件を手がかりに、個別に解決方法を探っていきます。
1行目のlibiPhone-lib.aに関しては、Unityが生成したライブラリの模様。
2行目のGoogle-Mobile-Adsについては、アプリでリワード広告を表示するために利用しているAdmob用のSDKがヒットしているようです。
解決方法
1. libiPhone-lib.a
結論を先に書くと、UnityのVersionをあげるしか回避方法は見つかりませんでした。
かなり幅広いバージョンが該当するようです。
[IOS] APPLE THROWS DEPRECATED API USAGE WARNING...
上記の再現バージョンには書かれていませんが、2018.3.14でも再現しました。
2018.3と2018.4だと差分が多く移行が大変なので避けたかったですが。。。やむを得ません。
こう言ったことは今後も発生する可能性が高いので、このタイミングでLTS版に上げることにしました。
2019.4(LTS)にバージョンを上げたところ、grep結果にlibiPhone-lib.aは引っ掛からなくなりました。
2. GoogleMobileAds SDK
下記を参考に、Google Mobile AdsのSDKを最新化しました。
ITMS-90809: Deprecated API Usage (UIWebView APIを使用したアプリアップデート) 対策でGoogle-Mobile-Ads-SDKを更新
また、併せてGoogleMobileAdsのUnityプラグインを最新化しました。
- 公式からMobileAdsSDKforUnityをDL
- Unityプロジェクト内の下記を一度プロジェクト外に退避(コピーではなく移動)
Assets/GoogleMobileAds, Assets/PlayServicesResolver, Assets/Plugins/Android, Assets/Plugins/iOS
- DLしたMobileAdsSDKforUnityを開き、プラグインをインポート
- UnityでAssets > Google Mobile Ads > settingsからID等を設定
- Build実行
実施した対策は以上です。
注意したいのが、上記を行っても grep結果にはGoogleMobileAdsがヒットします。
キチンとバージョンが上がっていれば、審査も問題なく通過します。
(これに気づかず、「アップデートしたのにUIWebViewへの参照が消えない・・・」としばらく悩みこんでしました。。)
まとめ
上記をもって、無事AppStoreConnectへのアップロード後の審査がOKになりました。
開発期間が長期化するとこう言った問題は必ず付きまといますが、UnityVersionはその時点で最新のLTS版を選択していくのが安全だと感じました。
補足事項などあればコメント頂けると幸いです。
Author And Source
この問題について([Unity] AppStoreConnectへのUpload時のITMS-90809問題), 我々は、より多くの情報をここで見つけました https://qiita.com/roboqlo/items/6cfe2db54bc3dd5a9fbe著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .