我将Xcode更新到最新版本,现在当我尝试编译项目时,我收到错误“无效的bitcode签名”,hovewer,我的项目的bitcode被禁用。我该如何解决?我应该更改什么来正确签署我的bitcode?
我的Podfile:
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '8.0'
use_frameworks!
target 'MyProjectName' do
pod 'Realm'
pod 'CorePlot'
pod 'GoogleMaps'
end
我已经检查过,一切都很好。
要解决此问题,大多数答案都建议使用一种解决方法,即清理Xcode工作区/项目,关闭Xcode,删除Derived Data
文件夹(默认情况下保存在项目的根目录中),然后最终重新打开项目。
但是,上述步骤可能对您不起作用。这是一个提示,您的项目结构是错误的。
当你的项目的bitcode中间代表与iOS 9.0一起发布时,它是在你的整个项目(包括依赖项)完全同意使用bitcode的条款下完成的。根据我的经验,通过你所有的Pods
并包括Libraries/Frameworks
并确保他们都使用相同的设置是至关重要的;是或否。默认情况下,此选项为是。
如果单个依赖项与预期的bitcode设置不匹配,则可能抛出此错误。
当完整性检查您的依赖项和总体项目时,请务必注意项目和目标设置都有Use Bitcode
设置,因此请务必检查构建设置的两个透视图。
我正在添加静态库。我创建了相同库的胖二进制文件,包括所有体系结构,并包含在我的项目中。这解决了我的问题
就我而言,我正在使用Cordova项目。虽然使用Xcode构建它具有相同的问题,并通过删除和添加IOS平台解决了这个问题。
cordova platform remove ios
cordova platform add ios
如果你正在使用可可豆荚,那么做“pod update”
这个解决方案适合我。首先,尝试使用终端命令pod deintegrate删除所有pod,然后使用terminal命令pod install重新安装pod。
如果包含仅为ARM构建的框架(也反之亦然),那么在为模拟器构建时也会发生这种情况。
我遇到了这个错误,但它只发生在iOS 10.3 iPad上(尽管在iOS 10.3 iPhone和iOS 11.0 iPad以及所有iOS 10.3和11.0模拟器上工作)。通过消除痛苦的过程(并从头开始创建一个新项目),我发现我的Cocoapods没有错,我的代码签名设置,我的AppExtension,我的测试,也不是我的'仅针对活动架构的构建'设置,也没有任何与术语“bitcode”相关的构建设置。
在我的设置中,我有一个嵌套在我的主Swift / iOS Xcode项目中的C ++ Xcode项目。因为它从未专门用于iOS,所以从未设置过“iOS部署目标”(它保留在“默认”状态)。在明确将其设置为10.3后,它无需投诉。
嵌套C ++应用程序的项目设置(将iOS部署目标设置为您支持的最低iOS版本):
嵌套C ++应用程序的目标设置(供参考):
如果您使用pod,请检查所有库的版本,某些库可能不支持新版本,您必须更新该库的pod文件。
就我而言,我正在尝试构建iOS版本低于部署目标的设备。
当我将一个新的静态库项目链接到我的工作区时,出现了这种问题。为了解决这个问题,我尝试将库的Build Active Architecture和Bitcode设置都设置为NO但没有运气。然后我遇到了图书馆的部署目标设置为11.0的事情,因为Xcode为所有新项目设置了最新值。将设置修复为5.0后问题得以解决。
就我而言,解决方案是删除一个c ++库。
就我而言,项目中包含的小部件导致了bitcode错误。
我改变了我的pod文件:
target "App" do
pod 'A'
pod 'B'
end
target "App Widget" do
pod 'A'
end
对此:
target "App" do
pod 'A'
pod 'B'
target "App Widget" do
pod 'A'
end
end