0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

admobの広告を実機で表示する際にエラーが起きたときの対処

Last updated at Posted at 2020-02-27

やりたかったこと

iOS向けのアプリケーション作成に手を出しはじめたのですが、admobによる広告表示を実機で確認しようとしたとき、
下記のエラーに見舞われましたが、なんとか表示まで持っていけたという話です。

公式のスタートガイド(https://developers.google.com/admob/ios/banner?hl=ja) に従い進めたところ、
シミュレータでのテスト広告表示まで問題なく確認できたが、実機(iPad mini 4)でのテストで躓いた部分を書きます。

前提/背景

admobによる広告表示のため、Xcodeのプロジェクトを作成した後に、CocoaPodsを用いてGoogle-Mobile-Ads-SDKをインポートしました。

公式ガイドの通りに実装をしてiPhoneSE, iPhone8のシミュレータでテスト広告の表示まで順調に確認できてました。

実機でのテストにおけるランタイムエラー

しかし、いざ実機でアプリケーションを動かそうとしたときに問題が発生しました。
ビルドは成功するのだが、実行時エラーでアプリケーションが落ちてしまう事象に遭遇しました。

  • エラーメッセージは下記の通りです(一部)。

dyld: Library not loaded: @rpath/GoogleUtilities.framework/GoogleUtilities
Referenced from 〜以下略

原因

iOS 13.3.1 以降はfree developerの作成したアプリでは、ダイナミックフレームワークを拒否するようで、実行時にエラーが起きるらしいです。
詳しく理解できていないのですが、Googleの提供するフレームワークはOSアップデートにより、開発用アカウントの作成したアプリでは動かないみたいです。

対応

Podfileの下記部分を変更し、pod updateを行ったところ無事実機での動作を確認できました。

target 'xxx' do
  # Comment the next line if you don't want to use dynamic frameworks
-use_frameworks!
+use_modular_headers!

記事作成時に気がついたんですが、思いっきり該当するコメントありますね...
# Comment the next line if you don't want to use dynamic frameworks
もしかしたら上記の変更ではなく、コメントアウトだけで動作するのかもしれないですね。

開発者登録していないアカウント(下記参照先の原文におけるfree developer)で起こる事象のようなので、
きちんと年貢を納めていれば起こらないエラーなのでしょうね。

多分事象が起こる対象が限定されることから、日本語記事があまり見つかりませんでした。
私のような駆け出しの方が躓くようなことがあった時に助けになれば幸いです。

環境

  • Xcode: Version 11.3.1
  • iPad mini 4: システムバージョン 13.3.1

参照先


0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?