Google AdMobトラッキング対応でハマった備忘メモ

Apple が 2020 年 6 月に発表した iOS 14 の更新に伴い、アプリが Apple の広告配信用の識別子(IDFA)にアクセスする際はユーザーに許可を求めることが必須となりました。これには、App Tracking Transparency(ATT)フレームワークと呼ばれるプロンプトを利用します。iOS 14 以降に対応するようアプリを更新して、広告収入に影響が及ばないようにする方法についての推奨事項をご紹介いたします。

Google AdMobヘルプページ

と、言うわけで、アプリ開発者の皆さまはトラッキング対応をしてきたことかと思います。
このときに少しばかりハマってしまったので、その備忘として残しつつ、共有しておきたいと思います。

トラッキング対応と言っても、具体的に面倒な処理自体はSDKでまかなってくれるので、こちら側では、

  1. SDKの更新

  2. トラッキング許可のポップアップ表示

の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更新については、以下のページを参照しました。

  1. こちらのページよりSDKファイルをダウンロードします(中にはframeworkがいくつか入っています)

  2. XcodeでFileタブから「Add Files to “project”…」でプロジェクトに入れていきます(注意としては「Copy items if needed」にチェックを入れることでファイルをコピーしてプロジェクトフォルダ内に持ってくることです)

  3. ObjC リンカー フラッグを追加します(TARGETSのBuild Settingsで「other linker」を探し「-ObjC」 を記述します)

  4. Info.plistにGADIsAdManagerAppの項目を追加してYESに設定します

  5. 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」を追記することでエラー解消しました。


いつもサポートいただきありがとうございます! これからもあなたの代わりに役立つ記事を更新し続けていきます。 どうぞよろしくお願いします。