泥にまみれろよ -素人アプリ開発者のBlog-

プログラミング歴1年のビギナーが、趣味のiOSアプリ開発について綴るブログです。VBAによる事務作業効率化、筋トレ、ファッション等の情報についても発信します。

AdMob導入の際にThread 1: signal SIGABRTエラーが発生!(Unity2018 3.5 f1/Xcode 10.1/iOS)

antique-appです。

新作アプリが9割方完成したので、1作目同様Admobを導入しようとしたのですが、予想外のエラーに遭遇してしまいました。

基本的に、Admobの公式リファレンスや「Unity AdMob iOS」などで検索した時に上位に出てくるサイトを参考に導入を進めていたのですが、実機でテストを行う際に以下の画像のようなエラーが出てしまいました。

 

f:id:antique-app:20190324224921p:plain

 

Googleでいろいろと調べてみたところ、どうやらSDK関連のエラーであるということはわかりましたが、どうしても原因がわからず3日くらい頭を悩ませました。

「Unity  Thread 1: signal SIGABRT」
「Unity  UIApplicationMain(argc, argv, nil, [NSString stringWithUTF8String: AppControllerClassName]);
「Unity  libc++abi.dylib: terminating with uncaught exception of type NSException」

など、思いつく限りのワードで検索を続けたところ、解決方法をズバリ指摘してくれている神記事にたどり着くことができました。

 

qiita.com

 

どうやら、Google Mobile Ads SDK version 7.42.0からは、UnityからXcodeのファイルに書き出したあと、ビルドする前にInfo.plistファイルを開き、GADApplicationIdentifierの項目にAdMobで取得した自身のアプリIDを記載しておかなければ上記のエラーが起こってしまうようです。

一応、自分のような超初心者向けにやり方をUnityにAdMobを導入する手順をまとめておくと、以下のようになると思います。

  1. AdMobアカウントを作成、アプリID・広告ユニットIDを取得
  2. CocoaPodsをインストール
  3. Google Mobile Ads Unity Pluginをダウンロードし、Unityのプロジェクトにインポート
  4. 広告表示のスクリプトを書く
  5. iOSビルド向けに書き出し、Info.plistファイルについて上記の修正を行う。
  6. .xcworkspaceの方のXcodeファイルからビルドを行う。

以上です。

私にもっと検索力があれば3日も悩まずに済んだのですが、、、

やはりプログラミングで最も大事なのは検索力だと痛感しました。

それでは。