🎉

AdMobをSwift Package Managerで導入する方法

2022/05/22に公開

これまでSwiftでAdMobを導入する際は、CocoaPods or 手動のどちらかしか方法がなかったのですが、Swift Package Manager(以下、SPM)が使えるようになったので導入手順をメモしておきます。

CocoaPods→SPMに移行する場合

すでにCocoaPodsを使ってAdMobを導入しており、AdMobのためだけにCocoaPodsを使用している場合、XcodeプロジェクトからCocoaPodsを削除します。新規でAdMobを導入する場合、この手順はスキップしてください。

# XcodeプロジェクトからCocoaPodsを削除する
$ pod deintegrate

# 以下ファイルは残るので、個別に削除する
$ rm Podfile Podfile.lock xxx.xcworkspace

SPMのAdMobを導入する

Xcodeで File > Add Packages... を開き、以下URLで検索し、AdMobのパッケージをダウンロードします。バージョンは、新しいプロジェクトの場合 [Up to Next Major Version] がおすすめのようです。

https://github.com/googleads/swift-package-manager-google-mobile-ads.git

あとはこれまで通りの手順でAdMobが導入できるので、手順割愛します。
https://developers.google.cn/admob/ios/quick-start?hl=ja

公式の手順は以上なのですが、この状態でアプリを起動すると以下のようなエラーが発生します。

Thread 4: "The Google Mobile Ads SDK was initialized without AppMeasurement. Google AdMob publishers, follow instructions here: https://googlemobileadssdk.page.link/admob-ios-update-plist to include the AppMeasurement framework and set the -ObjC linker flag. Google Ad Manager publishers, follow instructions here: https://googlemobileadssdk.page.link/ad-manager-ios-update-plist"

これを回避するために、プロジェクトの [Build Settings] の、 [Other Linker Flags]-ObjCリンカーフラグを追加すると解決しました。

参考リンク

Discussion