Posted at

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


"Your app has one more issues" という Apple からのメール

拝啓。皆様,iOS 開発はお楽しみでしょうか?

1日も立たないうちに,GitHub上の多くのRepositoryに対し,数々のissueが立てられました。これは何でしょうか?

これまで通り App Store Connect へアプリを提出していた開発者の元に,新たなメールが届くようになりました。


ITMS-90809: Deprecated API Usage - Apple will stop accepting submissions of apps that use UIWebView APIs . See https://developer.apple.com/documentation/uikit/uiwebview for more information.



ITMS-90809 について

急にこんなメールが来ると焦りますよね。結論は「今対応する必要はないけれどもうすぐ対応してね」です。

引用部の通りなのですが,こちらは UIWebView に関する API が deprecated になっており,Apple 側が近々これらを利用するアプリの許可しなくなるという旨のメールです。親切ですね。

UIWebView のドキュメントには iOS 12.0 の時点で deprecated とされており,iOS 8 以上からは WKWebView を利用するように促しています。

これらの経緯や重要性については deprecated となった当時に多く語られている都合,ここでは省略させていただきます。


なぜ我々のアプリに対して警告のメールが届いたのか

「UIWebView が deprecated? そんなの知っているし,既に対応済みだよ」

と思われたあなたにも届くかも知れません。何故なら,これらは未だ多くのライブラリに含まれているのだから......

RxSwift (正確には RxCocoa) はもちろん,AFNetworkingflutterreact-nativefacebook-swift-sdkionic など,アプリのコアとなるライブラリのほとんどから issue が挙げられている状況です。

現時点 (執筆時 8/30 AM 2:12 時点) では firebase-ios-sdk については既にマージされているようです。

これだけの規模,先日の大規模障害を彷彿とさせますね。


我々はどうすれば良いのか

メールが届いたから対応しなければならない,ということではないため,現時点での早急な対応は不要です。Pull request や issue を出したり眺めつつ待ちましょう。

一方で,このメールは審査に出していない状態でも,App Store Connect にアップロードする度に送信されます (問題が解決していない状態のバイナリに対して警告されるので妥当ですね)。

解決するには,該当のソースコードをコメントアウト等してから Archive しましょう。

↓RxCocoa の場合はこのあたりなど

screenshot 68.png


終わりに

iOS エンジニアには苦悩が多いですね。今回もその1つに挙げられると思います。筆者は問題発生時 cocoaPods-binary を使用していたため,新規開発にも関わらずソースが見当たらず,問題に気がつくまでに多くの時間を費しました。皆様にはそのようなことがないよう,ここに書き留めておきます。