Xcode中的Bitcode签名失败

问题描述 投票:10回答:16

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

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

objective-c xcode8 bitcode
16个回答
31
投票

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


1
投票

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

但是,上述步骤可能对您不起作用。这是一个提示,您的项目结构是错误的。

当你的项目的bitcode中间代表与iOS 9.0一起发布时,它是在你的整个项目(包括依赖项)完全同意使用bitcode的条款下完成的。根据我的经验,通过你所有的Pods并包括Libraries/Frameworks并确保他们都使用相同的设置是至关重要的;是或否。默认情况下,此选项为是。

如果单个依赖项与预期的bitcode设置不匹配,则可能抛出此错误。

当完整性检查您的依赖项和总体项目时,请务必注意项目和目标设置都有Use Bitcode设置,因此请务必检查构建设置的两个透视图。


0
投票

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


0
投票

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

cordova platform remove ios

cordova platform add ios

0
投票

如果你正在使用可可豆荚,那么做“pod update”


0
投票

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

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

我只在归档应用程序时面临同样的问题。

谁能告诉我原因?你可以教所有开发人员。这很棒。

enter image description here


0
投票

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


0
投票

如果包含仅为ARM构建的框架(也反之亦然),那么在为模拟器构建时也会发生这种情况。


8
投票

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


3
投票

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


3
投票

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


3
投票

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


2
投票

在我的情况下出现问题是因为我使用的是第三方静态库,每个架构都有不同的文件

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

希望有所帮助


1
投票

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


1
投票

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

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

Enable Modules In Settings


1
投票

就我而言,项目中包含的小部件导致了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
© www.soinside.com 2019 - 2024. All rights reserved.