升级到Xcode 7后出现错误

7
我使用Ionic Framework开发移动应用程序,但是我收到了一个非常奇怪的错误,导致整个构建过程失败。

'myapp/Plugins/com.phonegap.plugins.facebookconnect/FacebookSDK.framework/FacebookSDK(FBLikeButtonBackgroundSelectedPNG.o)'不包含位码。您必须重新使用启用位码的Xcode设置(ENABLE_BITCODE)进行构建,从供应商处获取更新的库,或为此目标禁用位码。针对架构arm64,clang: error: 链接器命令失败,退出代码1(使用-v查看调用)

这是在升级到新的Xcode版本7.0后出现的问题。我已经尝试为项目禁用BITCODE,但是APP的Facebook功能无法正常工作。 编辑 如果我为项目禁用BITCODE,则Facebook插件会打开浏览器而不是应用程序,因此,在这种情况下,禁用BITCODE不是解决方案。
5个回答

17

从Xcode 7开始,默认启用BitCode。在您的包中所有应用程序和框架都不包含bitcode之前,您将收到此错误。

要消除此警告,可以在构建设置中禁用它。

构建设置 > 所有 > 构建选项 > 启用 Bitcode = NO 输入图像描述


1
如果我们提交的选项中启用了Bitcode = NO,苹果会拒绝应用程序吗? - Ganesh G
如果是iOS应用程序,则不应像苹果在此处所述的那样。对于iOS应用程序,位代码是默认情况下可选的。对于watchOS和tvOS应用程序,位代码是必需的。 - Gaurav Pandey

7
这是Facebook插件已知的问题。在https://github.com/Wizcorp/phonegap-facebook-plugin/issues/111614上有一个开放的工单 - 我建议你关注一下。
作为解决办法,你可以尝试:
Project > Build Settings > Build Options > Enable Bitcode = No

(在这里发现的)

更新到Xcode 7后,我遇到了以下错误:

** BUILD FAILED **

我该怎么办?


正如我所提到的,我尝试过那种方法,但是如果我将其禁用,我的应用程序就无法打开Facebook应用程序,而只能在浏览器中加载它。 - radioaktiv

4
I too face the same problem while updating the frameworks for giving iOS9 support.

1.To change In build settings:

启用位码 = “否”

Not only for your project targets, to set all of your targets including your pods(Project) targets.

2.Change the Build Architecure only:

调试 - 是

发布 - 否

问题已得到解决!


2

0

你应该更新你的Facebook SDK。对我来说,最新的Facebook SDK版本支持位码,这解决了我的问题。你不必升级到v4,因为版本3.24完美地工作。

iOS 9兼容性还需要一些其他步骤,例如将FB域名列入白名单并授权FB应用程序。

以下版本支持位码,并且可以使用设置为YES的标志进行编译:

FB文档的相关部分如下:

是否支持位码?

SDK的v4.6和v3.24版本支持位码。如果您使用早期版本,则必须禁用位码。

升级到iOS 9(传输安全/应用白名单)所需的所有步骤都可以在此处找到: https://developers.facebook.com/docs/ios/ios9

但是我必须告诉您,即使它编译/链接正常并使用“集成”的Facebook登录对话框,它仍然在您的应用程序中使用浏览器作为模态视图。对我来说,这是与以前的Facebook应用程序集成相比的退步。我不知道是否有办法恢复旧的“本机”登录对话框。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接