2021年07月28日

[Unity/iOS] AdMob広告のトラッキング許可アラート文言の多言語対応

iOS14以上に対応するアプリに広告を表示する場合、トラッキングの許可を確認するアラート表示が必須になりました。
そのアラートの文言を自分で設定できるのですが、

Xcode > TARTEGS > アプリ名 > Info
に「Privacy - Tracking Usage Description」(xmlだと、NSUserTrackingUsageDescription)
を追記することで対応します。

20210728_1 .png

ただ、この方法だと多言語に対応していません。
そのとき、アプリ名の多言語対応と同じように「InfoPlist.strings」を追加することで対応します。

Xcode > Project > アプリ名 > Info > Localizations
の下にある「+」ボタンを押して、英語と日本語を追加します。

20210728_2.png

追加するのは以下の3つです。
- English
- Japanese
- Japanese(Japan)

20210728_3.png

20210728_4.png

InfoPlist.strings ファイルが作成されます。Unityアプリの場合は以下の場所になります。
Unity-iPhone > Unity-iPhone Tests > Supporting Files > InfoPlist.string

InfoPlist.string 内に作られた3言語の「.strings」ファイルをクリックして、以下を確認します。
@インスペクターの「Localization」で、先ほどの3つの言語にチェックが入っていている。
Aインスペクターの「Target Membership」で、「Unity-iPhone」と「Unity-iPhone Test」にチェックが入っている。

20210728_5.png

あとは、「NSUserTrackingUsageDescription」を記載すれば、アラートの文言を記載します。
他の「.strings」ファイルも同じ対応です。

ちなみに、「CFBundleDisplayName」は、アプリ名の多言語対応用です。

参考:
https://ekulabo.com/ios-appname-localize
posted by be-style at 12:07| Comment(0) | iOS

2021年03月24日

[Unity - iOS] AdMobバナー広告で「SDK tried to perform a networking task before being initialized」となる時の対処法

Google Mobile Ads Unity Plugin v5.4.0 を使っているときに、AdMobバナー広告のイベント(HandleOnAdFailedToLoad)で、実機で実行したときに

SDK tried to perform a networking task before being initialized.

というエラーメッセージが出た。

原因は、先の記事「[Unity - iOS] AdMobプラグインを使ったときにビルドしても「.xcworkspace」が出力されないときの対処法」にて、「External Dependency Manager」のバージョンを
v1.2.161 -> v1.2.164
に上げてしまったことが原因だった。
v1.2.164->v1.2.163
にバージョンを下げたことで広告が表示されるようになったので、手順をメモ。


手順

(1) Packages 内の「External Dependency Manager」のバージョンを確認
AdMobのプラグインでは「v1.2.161」だったけど、最新の「v1.2.164」に上げた状態になっていた。

2021-03-24_01.png

(2) Package Managerを使ってバージョンを「v1.2.163」に戻す

先に記事にてGoogleのレジストリを登録していたので、「My Registories」を選択。

2021-03-24_02.png

「External Dependency Manager」の「v1.2.163」を選択し、「Update to 1.2.163」を押して実行する。

2021-03-24_03.png

(3) Package内を確認。

ちゃんとバージョンがv1.2.163に変わったことを確認。

2021-03-24_04.png

これで広告が表示された。
何でもかんでも最新版がいいとは限らないんだなー。
posted by be-style at 00:09| Comment(0) | Unity

2021年03月23日

[Unity - iOS] AdMobプラグインを使ったときにビルドしても「.xcworkspace」が出力されないときの対処法

AdMobプラグイン(v5.4.0)を導入してビルドしたとき、「.xcworkspace」が出力されずに困ったときがあったので、メモ。


環境

・Unity2020.3.0f1
・XCode12.4
AdMobプラグイン for Unity v5.4.0


目指す形は、「iOS Resolver Settings」というメニューから、「Xcode Workspace - Add Cocoapods to Xcode workspace」を設定すること(下図)。

2021-03-22_10.png


事前チェック

Unityメニュー > Assets > External Dependency Manager > iOS Resolver
が存在しないことを確認。
もしこのメニューが存在するなら、以下の導入手順は不要です。
上図にある「Xcode Workspace - Add Cocoapods to Xcode workspace」が設定できていれば問題解決です。

2021-03-22_07.png


External Dependency Manager 導入手順

(1) Packages に「External Dependency Manager」が入ってないことを確認。

2021-03-22_01.png

(2) AdMobプラグインからインポートする
AdMobプラグイン for Unity v5.4.0から「GoogleMobileAds-v5.4.0.unitypackage」をダウンロードして、「External Dependency Manager」をUnityプロジェクトにインポートする。

2021-03-22_02.png

(3) Assetの内容を確認
すると、「External Dependency Manager」がAssets配下にインポートされます。

2021-03-22_03.png

(4) Unityが依存関係を解決してくれる
(3)が終わると、自動で「Package Manager Resolver」が立ち上がるので、何も考えずに「Add Selected Register」を選択。

2021-03-22_04.png

(5) 「External Dependency Manager」をPackageに移す
(4)が終わると、「Migrating Packages」が立ち上がり、バージョンを「v1.2.161->v1.2.164」に上げると言われるので、何も考えずに「Apply」を押す。
※(4)の操作が、AdMob広告が表示されなくなる原因になるとは思ってもいなかった、
※v1.2.164ではなくv1.2.163だと問題なかった。そのときの対応は別記事にて。


2021-03-22_05.png

すると、 「External Dependency Manager」をPackageに移ったことが確認できる。

2021-03-22_06.png

(7) iOS Resolverを立ち上げる
Unityメニュー > Assets > External Dependency Manager > iOS Resolver > Settings
というメニューが出来ているので、選択する。

2021-03-22_09.png

(8) ビルド時に「.xcworkspace」が出力されるように設定する

2021-03-22_10.png

これで、iOS用にビルドしたときに「.xcworkspace」が出力されるようになった。
気づくのに苦労した。。。


Package Mangerから「External Dependency Manager」を入れる方法

上記はAdMobプラグインを使った方法だったけど、Package Managerを使って入れることも出来た。
Edit > Project Settings > 左メニューのPackage Manager を選択。

NameGame Package Registry by Google
URLhttps://unityregistry-pa.googleapis.com
Scope(s)com.google

を入力して、Applyボタンを押す。

2021-03-22_11.png

Window > Package Manager にて、レジストリを「My Registories」にすると、先ほど設定したGoogleのレジストリが表示される。

2021-03-22_12.png

ここから、「External Dependency Manager」をインストールすることができた。

2021-03-22_08.png

_/_/_/_/_/_/ 注意! _/_/_/_/_/_/
Package Managerからインストールする際、上記(3)の状態のように「Assets」内にも「External Dependency Manager」があると重複してしまいPackageManagerがおかしくなる。
必ず「Assets」内の「External Dependency Manager」を先に削除しておくこと。
posted by be-style at 23:49| Comment(0) | Unity