我正在使用 Xcode 9.0 。
我的Pod文件:
pod 'Alamofire', '~> 4.3'
pod 'SwiftyJSON'
pod 'AlamofireSwiftyJSON'
pod 'KSToastView', '0.5.7'
pod 'SDWebImage', '~> 4.0'
pod 'NVActivityIndicatorView'
pod 'Firebase/Core'
pod 'Firebase/Messaging'
pod 'CarbonKit'
pod 'SBPickerSelector'
pod 'SwiftyStoreKit'
pod 'Fabric'
pod 'Crashlytics'
pod 'SAMKeychain', '1.5.2'
我的错误日志:
ld:无法重新解析位代码束中的目标文件:“无效的位代码 版本(生产者:'902.0.39.2_0'阅读器:'900.0.37_0')',使用libLTO 适用于架构arm64的版本'LLVM版本9.0.0,(clang-900.0.37)' clang:错误:链接器命令失败,退出代码为1(使用-v查看 调用)
我阅读了许多有关此问题的文章,但无法解决。我指的是this,是的,请注意,我要使用
构建项目存档configuration = Debug
ENABLE_BITCODE = YES
configuration = Release
ENABLE_BITCODE = YES
completeSettings = some
ENABLE_BITCODE = YES
有什么建议吗?
答案 0 :(得分:8)
解决此问题的步骤:
答案 1 :(得分:2)
这是因为您在使用较新版本的Xcode构建的项目(框架)中具有某些依赖项。
您必须更新Xcode版本或禁用项目中的位代码(“项目”>“构建设置”>“启用位代码=否”)
答案 2 :(得分:1)
如果您并排安装了两个不同的Xcode版本,然后使用一个指向错误的命令行工具的版本进行构建,则也可能发生这种情况。 在(更新的)Xcode 10.2旁边安装Xcode 10.1之后,我遇到了这个问题。我的Xcode 10.1指向Xcode 10.2命令行工具,因此使用无效位码版本的链接失败,与您的情况相同。 解决方法是:
以上内容对其他Xcode版本也有效。
答案 3 :(得分:0)
您使用的某些库期望使用Xcode 10(可能是Firebase)。使用Xcode 10。
答案 4 :(得分:0)
正如里维拉所说,您使用的某些库期望使用Xcode 10(可能是Firebase)。因此,解决方法是降级库的版本。对我来说,这些版本可以与Xcode 9和启用了位码的选项一起很好地工作:
pod 'Firebase/Core', '~> 4.13.0'
pod 'Fabric', '~> 1.7.0'
pod 'Crashlytics', '~> 3.9.0'
也许您还应该研究要使用哪个旧版本的 Firebase / Messaging 。
BTW,这就是开发人员应避免在未指定特定版本的情况下避免使用Pod的原因之一(这将导致始终下载Pod的最新版本)。使用pod功能的代码也可能导致版本不兼容。
答案 5 :(得分:0)
编译pod sdk的Xcode版本比您使用的版本更高的可能性很大。
下一个可能的原因是构建设置中的位码。检查是否在您的应用程序目标和框架目标上启用了它。如果添加了可视可可豆,请单击“豆荚”项目,在“目标”部分下,向下滚动到出现此错误的sdk,打开构建设置并检查位码状态。
在我的情况下,Main项目禁用了位码,而pods项目内部的sdk启用了它。禁用它,一切正常。