Xcode9.0でAdMobのフレームワークを入れ替えたらarm64のエラー

Xcode9.0でAdMobのフレームワークを入れ替えたらarm64のエラー

Xcode9.0にアップデートしてからAdMobのフレームワークを入れ替えてビルドしたらエラーが発生。

Undefined symbols for architecture arm64:

  “_OBJC_CLASS_$_GADRequest”, referenced from:

      objc-class-ref in TabController.o

      objc-class-ref in SettingViewController.o

  “_OBJC_CLASS_$_GADInterstitial”, referenced from:

      objc-class-ref in TabController.o

  “_OBJC_CLASS_$_GADRewardBasedVideoAd”, referenced from:

      objc-class-ref in SettingViewController.o

  “_OBJC_CLASS_$_GADBannerView”, referenced from:

      objc-class-ref in TabController.o

      objc-class-ref in SettingViewController.o

  “_kGADAdSizeBanner”, referenced from:

      __T09Pedometer13TabControllerC11viewDidLoadyyF in TabController.o

      __T09Pedometer21SettingViewControllerC11viewDidLoadyyF in SettingViewController.o

ld: symbol(s) not found for architecture arm64

clang: error: linker command failed with exit code 1 (use -v to see invocation)

arm64のアーキテクチャーエラーが出てるけど、昔のAdmobでは発生しなかったのがおかしいなって。

 

Xcodeでライブラリリンク時に発生するエラーに対応するframework

XcodeでiOSアプリをコンパイル後にライブラリをリンクする際、必要な framework が足りないと、以下のようなエラー(Undefined symbols for architecture arm64)が発生します。

こちらのサイトに乗っているように、最初は新しいAdmob必要なframeworkが足りないのかな?とも思ったんだけども、

エラー内容的になんか違う。

 

そして、色々調べた結果、出てきたのが、Xcode 9.0のバグ?と思われるという内容の記事。

フレームワークを手動でプロジェクトに追加した場合、フレームワークがプロジェクトにリンクされないらしい。

 

Xcode9.0でAdMobのフレームワークを入れ替えたらarm64のエラー

Xcode9.0でAdMobのフレームワークを入れ替えたらarm64のエラー

プロジェクトのGeneralのLinked Frameworks and Librariesをよく見てみたら、確かにAdmobのフレームワークが追加されてなかったんで、関連付けてビルドしてみたら通った。

Xcodeがメジャーアップデートするとこういう初期不良的なことが結構発生するから焦る。。。

とりあえずよかった。

 

Xcode9.0でAdMobのフレームワークを入れ替えたらarm64のエラー

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です