PhysApp

趣味と開発関連のメモ置き場です

ITMS-90809の解決方法 & ipaファイルにUIWebViewが含まれているか検索する【Unity】

アプリを久々に作ったので、リリースしようと思ってApp Storeにアップロードしたのに、

App Store Connectに全然アプリが追加されない。

携帯を見てみたらこんな通知が。

f:id:physif:20200710203221j:plain

なぜかバイナリが無効に変更されてた。

ITMS-90809

メールも見てみるとこんなのが飛んできてました。ITMS-90809。

WKWebViewを今後は使うようにする必要があって、UIWebViewが含まれているから蹴られているっぽい。

f:id:physif:20200714193239p:plain
ITMS-90809

5月から蹴られるようになってたみたいです。知らなかった………

qiita.com

ITMS-90809の解決方法

というわけで対応していきます。

UnityフォーラムにこのUIWebView周りの問題があったので見てみる。

issuetracker.unity3d.com

2019.2以上にアップデートをすると解決することが分かった。

This case doesn't need a reproduction project, the problem is that we're creating an instance of UIWebView at PlatformDependent/iPhonePlayer/URLUtility.mm to handle in-game links,

ゲーム内リンク処理のためにUIWebViewのインスタンス作成してたからです、って書いてあるので素直にアプデすれば解決する。

これに気づくまでの作業でめちゃくちゃ役に立った(?)ipaファイル内検索の方法も紹介。

ipa内を検索する

書き出す

まずは検索するためにipaファイルを用意する。

今回は例としてダウンロードフォルダに配置しておく。

zipにする

用意したipaファイルをzipファイルにする。

zipにすると言っても、圧縮するわけではなく、単に拡張子を書き換えるだけ

f:id:physif:20200714194804p:plain
拡張子を書き換える

f:id:physif:20200714194727p:plain
.zipを使用

書き換えたら、それを解凍する。

f:id:physif:20200714194921p:plain
Payloadフォルダが出てきた

解凍するとPayloadというフォルダが出てくる。

この中に画像やら何やら色々詰まってる。

そうしたらこのフォルダに対して検索をしてみる。

grep

ターミナルを開き、Payloadのある階層へcdで飛んだら、

nm Payload/{アプリ名}.app/{アプリ名} | grep UIWebView

と書き込む。{アプリ名}が分からなかったら、Payloadフォルダを開いて見ると分かる。

そうすると、UIWebViewのある所が何個か出てくる。

f:id:physif:20200714195015p:plain
赤枠内のような感じで出てくる

これでipa内の要素の検索ができる。

見つからなければ何も出てこないので、それで判別できる。

2019.2にアップデートしてから試してみたら表示されなかったので、やっぱり解決されてるなって確認が出来たしアップロードも無事通ったしで一安心。