首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Xcode 7+:简单地禁用Bitcode?

Xcode 7+:简单地禁用Bitcode?
EN

Stack Overflow用户
提问于 2015-09-18 07:21:41
回答 2查看 2.3K关注 0票数 12

我在我的iOS应用程序中使用已经有一段时间了。在更新到Xcode 7之后,当我试图编译项目时,我收到了以下错误:

代码语言:javascript
复制
ld: '.../Frameworks/Dropbox/iOS/DropboxSDK.framework/DropboxSDK' does not contain bitcode. 
You must rebuild it with bitcode enabled (Xcode setting ENABLE_BITCODE), obtain an updated 
library from the vendor, or disable bitcode for this target. 

我知道Bitcode是什么以及它有什么好处。可以通过简单地将目标生成设置中的Enable Bitcode选项设置为No来解决此错误。在此之后,所有的编译都没有任何错误,应用程序运行时没有任何问题。

到目前为止还不错,但这是“正确”的解决方案吗?我检查了Dropbox页面以获得SDK的更新版本,但我已经使用了最新版本。

该项目包含一些不使用Dropbox的App、Watch扩展等的其他目标。这里应该使用什么Enable Bitcode选项?是否(出于某种原因)对所有目标都使用相同的值(在我的例子中是No)?如果主应用程序目标不使用Bitcode,那么启用Watch和Widget目标的Bitcode有意义吗?

这里的最佳做法是什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-06-16 08:14:38

因为我问了这个问题,所以我简单地将Enable Bitcode设置为目标Build Settings中的No,而在Widget和Apple目标中使用Yes。这很好,我没有注意到任何问题或限制。

现在,我试图向Apple发布我的应用程序的一个新版本,当我将应用程序文件上传到苹果时,我注意到了一个复选框Include Bitcode。启用此复选框后,将收到以下错误:

无效的匹配-O格式。Match-O包"MyApp.app/PlugIns/MyApp WatchKit Extension.appex“与主包中的Match-O不一致。 主包匹配-O包含armv7(机器代码)和arm64(机器代码),而嵌套的包匹配-O包含armv7(bitcode和机器代码)和arm64(bitcode和机器代码)。 对于ENABLE_BITCODE构建设置,平台的所有目标都具有一致的值。

我不知道为什么这现在是一个问题,而我上传的所有其他版本在去年通过没有任何问题。然而,通过取消检查Include Bitcode 复选框,可以很容易地解决这个问题。然后,上传将被接受,没有任何问题。

但是有一个更好的解决方案:正如格雷格所指出的,Dropbox最终发布了一个启用Bitcode的SDK!版本。

下载 新SDK 1.3.14,将其包含在项目中,并为所有目标将ENABLE_BITCODE设置为Yes,您就完成了。至少在苹果找到一种新的方式来干扰发布工作流程之前:-)

票数 2
EN

Stack Overflow用户

发布于 2015-09-22 21:20:19

似乎他们还没有发布支持API的bitcode。下面是线程的链接在官方的Dropbox论坛上,其中包括一位来自Dropbox的支持人员,在此背景下回答其他开发者的问题。

以下是Dropbox支持人员的相关回应:

哦,太棒了!我们还没有用bitcode发布对iOS Core的更新,但是如果您需要对Core的bitcode支持,您可以直接添加源代码,因为它是开源的。这里有一个关于Core的帖子:https://www.dropboxforum.com/hc/en-us/community/posts/204352929-Need-Bitcode-Framework

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32646120

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档