尝试将 Firebase 添加到 iOS 应用时出现构建错误,"Undefined symbols for architecture x86_64: "_OBJC_CLASS_$_FIRApp""
build error trying to add Firebase to iOS app, "Undefined symbols for architecture x86_64: "_OBJC_CLASS_$_FIRApp""
我正在尝试向现有的 iOS 应用添加 Firebase 分析支持。
该应用程序已经使用 CocoaPods 导入 FMDB,并且还具有对 TensorFlow C 库的手动构建依赖性。
将 Firebase 添加到我的 podfile 文件后,我的构建失败了,
“未找到模块 'Firebase'”
播客文件
target 'myapp' do
pod 'FMDB'
pod 'Firebase/Analytics'
end
Header 搜索路径
$(TENSORFLOW_ROOT) $(TENSORFLOW_ROOT)/tensorflow/contrib/makefile/downloads $(TENSORFLOW_ROOT)/tensorflow/contrib/makefile/downloads/eigen $(TENSORFLOW_ROOT)/tensorflow/contrib/makefile/downloads/protobuf/src $(TENSORFLOW_ROOT)/tensorflow/contrib/makefile/gen/proto $(TENSORFLOW_ROOT)/tensorflow/contrib/makefile/downloads/nsync/public/ $(TENSORFLOW_ROOT)/tensorflow/contrib/makefile/downloads/absl ${PODS_ROOT}/Headers/Public/**
框架搜索路径
"${PODS_ROOT}/FirebaseAnalytics/Frameworks" "${PODS_ROOT}/GoogleAppMeasurement/Frameworks" "${PODS_XCFRAMEWORKS_BUILD_DIR}/FirebaseAnalytics" "${PODS_XCFRAMEWORKS_BUILD_DIR}/GoogleAppMeasurement"
图书馆搜索路径
"${PODS_ROOT}/FirebaseAnalytics/Frameworks" "${PODS_ROOT}/GoogleAppMeasurement/Frameworks" "${PODS_XCFRAMEWORKS_BUILD_DIR}/FirebaseAnalytics" "${PODS_XCFRAMEWORKS_BUILD_DIR}/GoogleAppMeasurement"
其他 Linker 路径
"${PODS_ROOT}/FirebaseAnalytics/Frameworks" "${PODS_ROOT}/GoogleAppMeasurement/Frameworks" "${PODS_XCFRAMEWORKS_BUILD_DIR}/FirebaseAnalytics" "${PODS_XCFRAMEWORKS_BUILD_DIR}/GoogleAppMeasurement"
尝试 2
这似乎可以通过将 $(inherited) 添加到“Header 搜索路径”和“框架搜索路径”来解决,就好像这些路径是自定义的一样,它们似乎没有选择 pods 没有这个。尽管 FMDB 没有这个也能正常工作。
但这仍然失败,后来出现构建错误,
Undefined symbols for architecture x86_64:
"_OBJC_CLASS_$_FIRApp", referenced from:
objc-class-ref in AppDelegate.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1
如果我在我的代码中删除对 FIRApp 的引用,它可以正常构建。
尝试 3
构建设置
将 $(inherited) 添加到“其他 Linker 标志”
这会在 FMDB 上出现构建错误,
ld: library not found for -lFMDB
尝试 4
构建设置
将 $(inherited) 添加到“库搜索路径”
这在 FMDB
中给出了不同的构建错误
duplicate symbol '_OBJC_IVAR_$_FMResultSet._parentDB' in:
/Users/paphus/Library/Developer/Xcode/DerivedData/Miami-btsjnxdkshhzzmcximegwcbjweif/Build/Intermediates.noindex/Miami.build/Debug-iphonesimulator/Miami.build/Objects-normal/x86_64/FMResultSet-8b2ff65f24dc1207099e1a3d8676b2cd074aac777d9679e86442f90b5f7cd476.o
/Users/paphus/Library/Developer/Xcode/DerivedData/Miami-btsjnxdkshhzzmcximegwcbjweif/Build/Products/Debug-iphonesimulator/FMDB/libFMDB.a(FMResultSet.o)
ld: 49 duplicate symbols for architecture x86_64
尝试 5
构建阶段
Link 带库的二进制文件,
现在似乎缺少 FirebaseCore?
ld: library not found for -lFirebaseCore
我也尝试了“pod deintegrate”和 pod cache clean“以及其他一些东西,但没有成功。
您是否尝试将 OTHER_LDFLAGS 构建设置设置为 $(inherited) 标志?
所以我放弃了让 pod 工作,而是跟随,
https://firebase.google.com/docs/ios/setup#frameworks
从以下位置下载 SDK,
https://firebase.google.com/download/ios
这是一种更容易和简单的设置方式,而且第一次就可以使用。
只是将 FirebaseAnalytics 目录作为一个组添加到项目中,并将 Firebase.h 文件添加到项目中,就是这样。有效。
我正在尝试向现有的 iOS 应用添加 Firebase 分析支持。 该应用程序已经使用 CocoaPods 导入 FMDB,并且还具有对 TensorFlow C 库的手动构建依赖性。
将 Firebase 添加到我的 podfile 文件后,我的构建失败了, “未找到模块 'Firebase'”
播客文件
target 'myapp' do
pod 'FMDB'
pod 'Firebase/Analytics'
end
Header 搜索路径
$(TENSORFLOW_ROOT) $(TENSORFLOW_ROOT)/tensorflow/contrib/makefile/downloads $(TENSORFLOW_ROOT)/tensorflow/contrib/makefile/downloads/eigen $(TENSORFLOW_ROOT)/tensorflow/contrib/makefile/downloads/protobuf/src $(TENSORFLOW_ROOT)/tensorflow/contrib/makefile/gen/proto $(TENSORFLOW_ROOT)/tensorflow/contrib/makefile/downloads/nsync/public/ $(TENSORFLOW_ROOT)/tensorflow/contrib/makefile/downloads/absl ${PODS_ROOT}/Headers/Public/**
框架搜索路径
"${PODS_ROOT}/FirebaseAnalytics/Frameworks" "${PODS_ROOT}/GoogleAppMeasurement/Frameworks" "${PODS_XCFRAMEWORKS_BUILD_DIR}/FirebaseAnalytics" "${PODS_XCFRAMEWORKS_BUILD_DIR}/GoogleAppMeasurement"
图书馆搜索路径
"${PODS_ROOT}/FirebaseAnalytics/Frameworks" "${PODS_ROOT}/GoogleAppMeasurement/Frameworks" "${PODS_XCFRAMEWORKS_BUILD_DIR}/FirebaseAnalytics" "${PODS_XCFRAMEWORKS_BUILD_DIR}/GoogleAppMeasurement"
其他 Linker 路径
"${PODS_ROOT}/FirebaseAnalytics/Frameworks" "${PODS_ROOT}/GoogleAppMeasurement/Frameworks" "${PODS_XCFRAMEWORKS_BUILD_DIR}/FirebaseAnalytics" "${PODS_XCFRAMEWORKS_BUILD_DIR}/GoogleAppMeasurement"
尝试 2
这似乎可以通过将 $(inherited) 添加到“Header 搜索路径”和“框架搜索路径”来解决,就好像这些路径是自定义的一样,它们似乎没有选择 pods 没有这个。尽管 FMDB 没有这个也能正常工作。 但这仍然失败,后来出现构建错误,
Undefined symbols for architecture x86_64:
"_OBJC_CLASS_$_FIRApp", referenced from:
objc-class-ref in AppDelegate.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1
如果我在我的代码中删除对 FIRApp 的引用,它可以正常构建。
尝试 3
构建设置
将 $(inherited) 添加到“其他 Linker 标志” 这会在 FMDB 上出现构建错误,
ld: library not found for -lFMDB
尝试 4
构建设置
将 $(inherited) 添加到“库搜索路径” 这在 FMDB
中给出了不同的构建错误duplicate symbol '_OBJC_IVAR_$_FMResultSet._parentDB' in:
/Users/paphus/Library/Developer/Xcode/DerivedData/Miami-btsjnxdkshhzzmcximegwcbjweif/Build/Intermediates.noindex/Miami.build/Debug-iphonesimulator/Miami.build/Objects-normal/x86_64/FMResultSet-8b2ff65f24dc1207099e1a3d8676b2cd074aac777d9679e86442f90b5f7cd476.o
/Users/paphus/Library/Developer/Xcode/DerivedData/Miami-btsjnxdkshhzzmcximegwcbjweif/Build/Products/Debug-iphonesimulator/FMDB/libFMDB.a(FMResultSet.o)
ld: 49 duplicate symbols for architecture x86_64
尝试 5
构建阶段
Link 带库的二进制文件, 现在似乎缺少 FirebaseCore?
ld: library not found for -lFirebaseCore
我也尝试了“pod deintegrate”和 pod cache clean“以及其他一些东西,但没有成功。
您是否尝试将 OTHER_LDFLAGS 构建设置设置为 $(inherited) 标志?
所以我放弃了让 pod 工作,而是跟随,
https://firebase.google.com/docs/ios/setup#frameworks
从以下位置下载 SDK, https://firebase.google.com/download/ios
这是一种更容易和简单的设置方式,而且第一次就可以使用。 只是将 FirebaseAnalytics 目录作为一个组添加到项目中,并将 Firebase.h 文件添加到项目中,就是这样。有效。