【发布时间】:2016-11-04 17:04:49
【问题描述】:
target 'myapp' do
pod 'Firebase/Core'
#the other projects not related with Firebase
use_frameworks!
end
导致此错误:
51968 个重复符号用于架构 x86_64
调用堆栈由来自其他框架的编译类组成。
Swift 3,XCode 8.
没有这个 pod (FireBase) 我的项目可以正常工作。
【问题讨论】:
target 'myapp' do
pod 'Firebase/Core'
#the other projects not related with Firebase
use_frameworks!
end
导致此错误:
51968 个重复符号用于架构 x86_64
调用堆栈由来自其他框架的编译类组成。
Swift 3,XCode 8.
没有这个 pod (FireBase) 我的项目可以正常工作。
【问题讨论】:
问题与-ObjC 标志有关。 CocoaPods 自动将此标志添加到 Other linker flags 项目中。
但是这个标志我的其他自定义项目没有正确构建。 为了解决这个问题,我做了这些步骤。
FirebaseAnalytics.framework、FirebaseCore.framework、FirebaseInstanceID.framework、GoogleInterchangeUtilities.framework、GoogleSymbolUtilities.framework、GoogleToolboxForMac.framework 和 admob:GoogleMobileAds.framework
-ObjC 强制使用所有库,我使用-force_load 更改了Other linker flag。即-force_load GoogleMobileAds.framework/GoogleMobileAds -force_load FirebaseAnalytics.framework/FirebaseAnalytics -force_load FirebaseCore.framework/FirebaseCore -force_load GoogleToolboxForMac.framework/GoogleToolboxForMac -force_load GoogleSymbolUtilities.framework/GoogleSymbolUtilities -force_load GoogleInterchangeUtilities.framework/GoogleInterchangeUtilities -force_load FirebaseInstanceID.framework/FirebaseInstanceID
不要忘记在控制台中创建和下载 GoogleService-Info.plist 文件: https://console.firebase.google.com
** 编辑 **
3.12 版拒绝-force_load GoogleSymbolUtilities.framework/GoogleSymbolUtilities
所以,现在正确的解决方案是:
-force_load GoogleMobileAds.framework/GoogleMobileAds -force_load FirebaseAnalytics.framework/FirebaseAnalytics -force_load FirebaseCore.framework/FirebaseCore -force_load GoogleToolboxForMac.framework/GoogleToolboxForMac -force_load GoogleInterchangeUtilities.framework/GoogleInterchangeUtilities -force_load FirebaseInstanceID.framework/FirebaseInstanceID
【讨论】: