LoginSignup
2
0

More than 3 years have passed since last update.

[Unity] AppStoreConnectへのUpload時のITMS-90809問題

Posted at

概要

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ユーザは読み替えが必要です:bow:

調査方法

まず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プラグインを最新化しました。

  1. 公式からMobileAdsSDKforUnityをDL
  2. Unityプロジェクト内の下記を一度プロジェクト外に退避(コピーではなく移動) Assets/GoogleMobileAds, Assets/PlayServicesResolver, Assets/Plugins/Android, Assets/Plugins/iOS
  3. DLしたMobileAdsSDKforUnityを開き、プラグインをインポート
  4. UnityでAssets > Google Mobile Ads > settingsからID等を設定
  5. Build実行

実施した対策は以上です。

注意したいのが、上記を行っても grep結果にはGoogleMobileAdsがヒットします
キチンとバージョンが上がっていれば、審査も問題なく通過します。
(これに気づかず、「アップデートしたのにUIWebViewへの参照が消えない・・・」としばらく悩みこんでしました。。)

まとめ

上記をもって、無事AppStoreConnectへのアップロード後の審査がOKになりました。

開発期間が長期化するとこう言った問題は必ず付きまといますが、UnityVersionはその時点で最新のLTS版を選択していくのが安全だと感じました。

補足事項などあればコメント頂けると幸いです。

2
0
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
2
0