Unityで開発しているiOSのゲームアプリ内で、他のゲームへのリンクや、SNSへのリンクが機能しなくなりました。
そのときに試したことなどをまとめておきます。
この記事では以下の内容が解決するかもしれません。
- iOSアプリ内のURLリンクが飛ばない
→Unityのバージョンをあげる - Unityのバージョンを上げるとプロジェクトを開けなくなる
→Macの設定を変更する - Google AdMobで「サイトの仕様:ナビゲーション」というポリシー違反になった
→iOSアプリ内のURLリンクが飛んでいない可能性を確認する。
開発環境
- MacBook Air(Apple M1チップ) OS バージョン14.0
- Unity 2022.3.10f1
- Xcode14
- MacBook Air(Apple M1チップ) OS バージョン15.0
- Unity 2022.3.47f1
- Xcode16
URLリンクしなくなった経緯
突然ビルドが通らなくなったため調べていると、Xcodeのバージョンが古いらしいということが判明。
ここでXcodeのバージョンと、なぜかMacのOSもアップデートする。
アップデートすることで、ビルドは通るようになる。
しかし、iOSの審査はリジェクトされ、同じ時期にアップデートを行っていた別アプリのGoogle AdMobからポリシー違反との連絡が。
どうやらUnityが用意してくれているApplication.OpenURLでリンクに飛ばしていたものが、iOSで非推奨の飛ばし方のままになっていたらしく、iOS側でリンクに飛ばなくしているらしい。
そこで対応方法を調べると、Unityのバージョンを上げると解決しそうだったので、Unityのバージョンを上げる。
するとUnityのプロジェクトが開けなくなる。
今度はMacOSを新しくしたことによって、セキュリティが強化されており、Unityのプロジェクトを開くのに必要なファイルがダウンロードされていなかったらしい。
最終的に、MacOSの設定を変更し、Unityをアップデートしたことによって、Application.OpenURLをそのまま使用してもリンクが開くように。
Unityのバージョンアップを行う前のMacの設定方法
この設定を行うことで、Unityのバージョンアップしても、通常通りプロジェクトを開くことができるようになりました。
システム設定を開き、「プライバシーとセキュリティ」を選択
プライバシーとセキュリティを選択すると、デベロッパツールという項目が出てくるので、デベロッパツールを選択。
デベロッパツールを選択すると、デフォルトで追加されているターミナルと+ボタンが出てくると思うので、+ボタンをクリックし、Unity Hubを追加する。
追加したら、Unity Hubをアクティブにする。
上記の設定を行ってから、Unityのバージョンアップを行えば、通常通りプロジェクトが開けるようになりました。
Google AdMobの「サイトの仕様:ナビゲーション」というポリシー違反
いろいろ理由はあるようですが、私の場合はURLのリンクが機能しなくなっていたことが原因だったので、上記の対応を行った結果、ポリシー違反も解決しました。
<参考>
サイトの仕様: ナビゲーション 要修正
プログラム ポリシーに記載されているとおり、Google 広告を表示するサイトやアプリでは、ユーザーに役立つ情報を提供することになっております。ユーザーが期待どおりの製品、商品、サービスを見つけられるように、サイトやアプリ内を簡単に移動できる必要があります。誤解を招く操作性とは、たとえば次のようなものを指します。
- 存在しないダウンロード/ストリーミング配信コンテンツの提供を謳っている
- 存在しないコンテンツにリンクしている
- 無関係なページや誤解を招くページもユーザーをリダイレクトしている
- サイトのテーマやビジネスモデルと関係がないテキストが記載されている
詳しくは、ウェブマスター向け品質に関するガイドラインと AdSense のプログラム ポリシーをご参照ください。
まとめ
Xcode等のバージョンを上げて、アプリ内のリンクが飛ばなくなったら、Unityのバージョンを上げてみましょう。
Unityさんはしっかり対応してくれているので、バージョン上げるだけで解決です。