はじめに
現在、Firebase iOS SDK(Crashlytics)をCarthageで管理しているのですが、6.28.0以降にアップデートしたところ、UnitTestや実行時にエラーが発生するようになり、ハマったので対応方法についてまとめました。
** TEST FAILED **
Testing failed:
Undefined symbol: OBJC_CLASS$_GDTCORUploadPackage
Testing cancelled because the build failed.
Undefined symbol: OBJC_CLASS$_GDTCORUploadPackage
エラーの詳細は以下となります。
ld: warning: Could not find or use auto-linked framework 'Firebase'
ld: warning: Could not find or use auto-linked framework 'FBLPromises'
Undefined symbols for architecture x86_64:
"_OBJC_CLASS_$_GDTCORUploadPackage", referenced from:
objc-class-ref in GoogleDataTransportCCTSupport(GDTCCTPrioritizer.o)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
実行環境
環境 | バージョン |
---|---|
macOS Catalina | 10.15.6 |
Xcode | 11.5.0 |
Firebase iOS SDK(Crashlytics) | 6.28.0以降 |
原因
Firebase iOS Release Notesによると、Version 6.28.0 - July 14, 2020 の修正によって、GoogleDataTransportCCTSupport.frameworkが含まれなくなっており、これが原因でした。
Updated GoogleUtilities and GoogleDataTransport imports. The GoogleDataTransportCCTSupport dependency should no longer be linked along with Firebase (#5824).
DeepL翻訳
GoogleUtilities と GoogleDataTransport のインポートを更新しました。GoogleDataTransportCCTSupport依存関係がFirebaseと一緒にリンクされなくなりました (#5824)。
対応方法
Xcode projectから、GoogleDataTransportCCTSupport.framework を削除して、ビルド&再実行します。
これで、問題なく動作するようになります。