Google SignIn Unityを使うとiOSでリジェクト
みんな大好きGoogle SignIn をUnityに実装する際にUIWebViewの使用によってリジェクトされたので、問題になった箇所を対処するために調べた内容を忘れないように記録しておきます。
Google SignIn Unity v1.0.4 でUIWebViewが使われている
2020/5/13現在で最新のGoogleSigInUnityはバージョン1.0.4でここに有ります。
しかしながら、このバージョンのunitypackageをそのまま利用してもXcodeでビルドする際にビルドエラーで落ちます。
原因は、前の記事でも説明した通り、GoogleSignInのPodのバージョンが ‘>= 4.0.2’になっていることです。
このバージョン指定を’= 4.0.2’または’= 4.4.0’と記載すればビルド自体は通ります。
しかし、このバージョンで作ったバイナリをApp Storeに送信すると次のようなメールが返ってきます。
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).
つまり、UIWebViewという非推奨なAPIを利用しているからダメですよー。
かわりにWKWebViewを使ってね!という内容ですね。
WKWebViewはGoogleSignInの5.0以上でリンクする必要がある
まあ、表題の通りです。
この問題を解決するためには、GoogleSignInのPodバージョンを5.0以上にしてビルドしてやればいいのです。
しかし、このバージョン指定を5.0以上にすると今度はビルドが通らなくなります。
これと同じ問題にぶつかった人たちがIssueを投げていたのでこれを参考にします
https://github.com/googlesamples/google-signin-unity/issues/122
その中に有志がフォークして5.0以上でビルドできるようにしたリポジトリのソースがありました。
これを利用します。
https://github.com/lukezbihlyj/google-signin-unityzbihlyj/google-signin-unity
自分のプロジェクトの中にあるGoogleSignIn関連のファイルをこの中に公開されているソースで置き換え、再度プロジェクトをXcodeでArchiveしてApp Storeに送信します。
これで晴れてApp Storeに送信できるようになるはずです。
もし、これでもUIWebViewが利用されている場合はUnityのバージョンやUnityAdsのバージョンを疑いましょう。
僕はこれに1日近い時間を費やしてしまいました。
外部プラグインをUnityで使うには色々な壁にぶつかることがあるので注意が必要です。
特にあまりメンテナンスされていないプラグインは最悪自分の手で修正する必要さえ出てきますのでお気をつけてください。