Google AdMobトラッキング対応でハマった備忘メモ
と、言うわけで、アプリ開発者の皆さまはトラッキング対応をしてきたことかと思います。
このときに少しばかりハマってしまったので、その備忘として残しつつ、共有しておきたいと思います。
トラッキング対応と言っても、具体的に面倒な処理自体はSDKでまかなってくれるので、こちら側では、
SDKの更新
トラッキング許可のポップアップ表示
の2点になります。
まずはGoogle AdMobのページにて確認しました。
前提条件としては、
Xcode13.2.1以降を使用していること
iOS10.1以降をターゲットとしていること
とありますが、これから使用する前提のアプリであれば、まず問題ないでしょう。Xcodeの更新はAPIの変更も伴うことがあり面倒ですが、これは致し方なしなのであきらめましょう。
そしていよいよSDKの更新ですが、オフィシャルではCocoaPodsというツールを使用したSDKの導入が推奨されてます。強く推奨されてます。
後から思い返すと、ここが1つの落とし穴でした。
結論から言えば、私はこのCocoaPodsでのSDKの更新というところでハマってしまったということになります。
CocoaPodsに固執するのは危険
オフィシャルの案内に従ってCocoaPodsでSDKの更新を行いましたが、なぜかうまくビルドできない。CocoaPodsのアンインストールと再インストールと、何度やり直してもビルドが通りませんでした。
ビルドした際にNo Such Module 'GoogleMobileAds'とエラーを吐きます。
で、ググっていて見つけたのが以下のツイートです。手動か。。ということで手動を試してクリアしました。
手動でのSDK更新については、以下のページを参照しました。
こちらのページよりSDKファイルをダウンロードします(中にはframeworkがいくつか入っています)
XcodeでFileタブから「Add Files to “project”…」でプロジェクトに入れていきます(注意としては「Copy items if needed」にチェックを入れることでファイルをコピーしてプロジェクトフォルダ内に持ってくることです)
–ObjC リンカー フラッグを追加します(TARGETSのBuild Settingsで「other linker」を探し「-ObjC」 を記述します)
Info.plistにGADIsAdManagerAppの項目を追加してYESに設定します
Info.plistにGADApplicationIdentifierの項目を追加してアプリIDを追加します
と、推奨のCocoaPodsを利用せずに手動でSDKを導入すれば、エラーが解消されました。
「building for iOS Simulator, but linking in object file ... for architecture arm64」エラーの対処法
実機を指定した場合にビルドは通るが、シミュレーターだとエラーとなる事象にも引っかかりました。
こちらは、
TARGET>Build Settings>Excluded Architectures
のDebugとReleaseに「Any iOS Simulator SDK > arm64」を追記することでエラー解消しました。