Xcode中的Bitcode签名失败

时间:2017-04-03 08:51:25

标签: objective-c xcode8 bitcode

我将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

我已经检查过,一切都很好。

15 个答案:

答案 0 :(得分:31)

我不确定你和我有同样的情况。当我尝试使用iPhone设备进行测试时,我只有这个问题。事实证明,仅使用Build Active Architecture的调试配置设置为NO。设置为YES后,我可以用我的iPhone进行测试。 enter image description here

答案 1 :(得分:7)

我遇到了这个错误,但它只发生在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版本):

Nested C++ app's project settings

嵌套C ++应用程序的目标设置(供参考):

Nested C++ app's target settings

答案 2 :(得分:3)

如果您使用pod,请检查所有库的版本,某些库可能不支持新版本,您必须更新该库的pod文件。

答案 3 :(得分:3)

就我而言,我正在尝试构建iOS版本低于部署目标的设备。

答案 4 :(得分:2)

我的案例问题发生是因为我使用的是第三方静态库,每个架构都有不同的文件

我通过删除无效体系结构的二进制文件来解决问题。 相反,我为第三方静态库添加了多拱FAT binary

希望帮助

答案 5 :(得分:2)

当我将新的静态库项目链接到我的工作区时,出现了这种问题。为了解决这个问题,我尝试将库的Build Active Architecture和Bitcode设置都设置为NO但没有运气。然后,当Xcode为所有新项目设置最新值时,我遇到了库的部署目标设置为11.0的问题。将设置修复为5.0后,问题就解决了。

答案 6 :(得分:1)

就我而言,解决方案是删除c ++库。

答案 7 :(得分:1)

我发现我的问题是使用'模块'。

刚刚关闭模块(必须更新一些头文件),但这解决了我的问题。

Enable Modules In Settings

答案 8 :(得分:1)

要解决此问题,大多数答案都建议一种解决方法,先清理Xcode工作区/项目,再关闭Xcode,删除Derived Data文件夹(默认情况下,该文件夹保留在项目的根目录中),最后重新打开您的项目。

但是,上述步骤可能对您不起作用。这表明您的项目结构有误。

在iOS 9.0中发布项目的中间代码表示形式时,前提是您的整个项目(包括依赖项)完全同意使用或不同意使用比特代码。根据我的经验,至关重要的是要遍历您的所有Pods并包含Libraries/Frameworks,并确保它们都使用相同的设置; 。默认情况下,此选择为

如果单个依赖项与预期的位码设置不匹配,则可能引发此错误。

在理智地检查您的依赖项和总体项目时,请务必注意,项目和目标设置均两者都有Use Bitcode设置,因此请务必同时检查两个方面构建设置”。

答案 9 :(得分:0)

我正在添加静态库。我创建了相同库的胖二进制文件,包括所有体系结构,并包含在我的项目中。这解决了我的问题

答案 10 :(得分:0)

就我而言,我正在使用 Cordova项目。使用Xcode构建它时遇到了同样的问题,并通过删除和添加IOS平台解决了这个问题。

cordova platform remove ios

cordova platform add ios

答案 11 :(得分:0)

如果您正在使用可可豆荚,请执行" pod update"

答案 12 :(得分:0)

目标->构建设置->仅构建活动架构

调试->是 释放-> 从否到是

我仅在存档应用程序时遇到相同的问题。

谁能告诉我原因?您可以教所有开发人员。太棒了。

enter image description here

答案 13 :(得分:0)

此解决方案对我有用。首先,尝试使用终端命令 pod deintegrate 删除所有pod,然后使用终端命令 pod install 重新安装pod。

答案 14 :(得分:0)

在构建模拟器时,如果仅包含仅针对ARM构建的框架(我也认为相反),也会发生这种情况。