先日、Unityで作ったアプリをiOSのAppStoreConnectにアップロードしたら、AppStoreConnectから上記の通知がきて、バイナリが無効になりました。
調べた結果、UIWebView関連のエラーだったようなので、対処法をメモしておきたいと思います。
Unityで作ったiOSアプリのバイナリが無効になった
それまでは普通にアップロードできていたのですが、先日から急に何度やってもバイナリが無効になる現象が発生しました。心当たりが全くなかったのですが、Appleから以下のメールが届いていることに気付きました。
Dear Developer, We identified one or more issues with a recent delivery for your app, "アプリ名" 0.4 (26). Please correct the following issues, then upload again. 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). Best regards, The App Store Team
このメール以外にAppleから通知が届いていないので、バイナリが無効になったのは、このエラーが原因だと思われます。
UIWebViewが原因っぽい「ITMS-90809: Deprecated API Usage」
調べたところ、以下の記事がヒットしました。
そういえば、少し前から同じ内容のメールはきていたのですが、アップロード自体はできていたので、特に気にしていませんでした。
ただ、今回、アップロードができなくなったので、上記の記事にある、
Apple will stop accepting submissions of apps that use UIWebView APIs .
「AppleはUIWebView APIを使用するアプリの提出を受け付けなくなります。」
上記が適用された可能性が高いです。(期日は明言されていなかったっぽいので、最近そうなった模様)
通常のネイティブアプリだったら、UIWebViewのコードを削除する等の方法かと思いますが、Unityの場合、勝手にフレームワークに含まれていたりするので厄介そうな予感がします。
「ITMS-90809: Deprecated API Usage(UIWebView)」の対処法(Unity版)
さらに調査を進めた結果、以下の記事がヒットしました。
結論をいうと、Unityをアップデートするしかなさそうです。
上記の記事によると、Unityを以下のバージョンにすれば問題が解消されるようです。
・2020.1
・2017.4
・2018.4
・2019.2
・2019.3
僕の使用していたUnityバージョンは「2019.1.0f2」だったので、「2019.3」にアップデートしたところ、無事上記のエラーが出なくなり、バイナリも正常にアップロードできるようになりました。
今回は開発中のアプリで発生した問題だったのでそこまで影響はありませんでしたが、だいぶ前に作ったアプリとかだとUnityのバージョンがかなり古かったりするのでビルドエラーが怖いですね...