AppSeedのアプリ開発ブログ

アプリ開発会社AppSeed(アップシード)開発担当のブログです。iOS、Android、Unity、Cocos2d-xなどアプリ開発関連のTipsや備忘録、アプリ開発に役立つ情報を発信します。

iOS14リリース後にXcodeで「Undefined symbol: _OBJC_CLASS_$_ATTrackingManager」のエラーが出る場合の対処法

iOS14リリース後にXcodeで「Undefined symbol: _OBJC_CLASS_$_ATTrackingManager」のエラーが出る場合の対処法

AppleiPhoneの最新OS「iOS14」を正式リリースしました。

www.apple.com

アプリ開発をしている人にとってiOSのメジャーアップデートは嬉しい反面、今まで動いていたアプリが動かなくなる怖さもあります。

iOS14リリース後、アプリをビルドしたらエラーに遭遇して1時間くらい潰れてしまったので、今後のためにメモとして残しておきたいと思います。

 

iOS14リリース後にXcodeで「Undefined symbol: _OBJC_CLASS_$_ATTrackingManager」のエラー

iOS14リリース後にXcodeで「Undefined symbol: _SKStoreProductParameterAdNetworkVersion」のエラーが出る場合の対処法

Undefined symbol: _SKStoreProductParameterAdNetworkVersion

Undefined symbol:_SKStoreProductParameterAdNetworkSourceAppStoreIdentifier

Undefined symbol: _OBJC_CLASS_$_ATTrackingManager

 

iOS14正式リリース後、いつも通りXcodeでアプリビルドしたところ、上記のエラーが出てビルドが通らなくなりました。

環境としては以下です。

  • Xcode 11.7
  • 端末:iPhone11 Pro Max(iOS14) 

 

ネットで調べたのですが、iOS14がリリース直後ということもあり、なかなか検索にヒットしませんでした。「Undefined symbol」は大体フレームワークのエラーなので、該当しそうなフレームワークを追加してみましたが結果が変わりませんでした。

 

 

iOS14リリース後にXcodeで「Undefined symbol: _OBJC_CLASS_$_ATTrackingManager」のエラーの解決方法

調査の結果、以下の記事のおかげで解決できました。

forum.unity.com

iOS14リリース後にXcodeで「Undefined symbol: _SKStoreProductParameterAdNetworkVersion」のエラーが出る場合の対処法

Which XCode version is running on Cloud Build? AppTrackingTransparency framework is only available in XCode 12

こちらの記事に僕の遭遇したものと同じエラーが出ている人がいて、それの返信としてAppTrackingTransparency frameworkは、Xcode12で利用できるフレームワークだというものがありました。

 

Appleのドキュメントを確認して見ると、確かにAppTrackingTransparency frameworkはiOS14から利用できるものらしいです。

developer.apple.com

 

ということで、Xcodeをバージョン12.0にアップデートして再度ビルドしたところ、先程まで出ていたエラーが表示されず、ビルドが通るようになりました。

XcodeってiOSがアップデートされた後に起動すると、いつもコンポーネントのインストールを行うので、古いバージョンのXcodeでも普通にビルドできると思ってましたが、AppStoreからXcodeアプリのバージョンをアップデートしないとビルドエラーになってしまうというパターンがあるといういい教訓になりました。