Xcode 7.1可以编译Swift框架应用程序,但无法存档。

15

我用Swift和Xcode 7.1创建了一个样例框架。 然后将该框架构建为性能分析、发布版本。 发布的框架被添加(嵌入)到一个iOS测试应用程序中。

应用程序可以成功构建,但在尝试进行存档时,出现以下错误:

"无法生成二进制代码包,因为 '.../Test/FW.framework/FW' 是没有完整二进制代码构建的。所有的二进制代码框架和dylibs必须从Xcode Archive或Install build for architecture arm64进行生成"

框架和应用程序项目都采用默认设置,并启用了二进制代码。

为确保框架有二进制代码,对框架执行以下命令:

"otool -l FW.framework/FW | grep __LLVM"

结果为:

segname __LLVM

segname __LLVM

segname __LLVM

segname __LLVM

我错过了什么?你可以在此处下载这两个项目并尝试存档。


似乎位码格式不匹配。该框架是通过归档导出的吗? - Daij-Djan
不,只是为了进行分析而构建它,然后在“Release-iphoneos”中找到了FW.framework以及一个单独的文件“FW.framework.dSYM”。 - parveen
我该如何通过归档导出它?当我归档框架时,它会显示构建成功,但什么也不会发生。我需要寻找已归档框架输出文件吗? - parveen
2
也许构建以进行归档也可以,但为了允许将其放入存档中,请将构建设置“跳过安装”设置为“否”。 - Daij-Djan
1
做到了,谢谢!我对此疯狂了好一阵子。请按以下步骤操作,我会接受它: 在框架项目上将“跳过安装”设置为 NO,然后存档,导出并保存构建产品,启用比特代码,这个框架输出文件就可以正常使用了。 - parveen
2个回答

37

Xcode要求在打包期间生成所有嵌入式框架的位码。

仅复制框架/动态链接库的发布版本是不够的。


先将框架归档,然后从此以后始终使用已归档的框架版本。

为了使Xcode能够归档框架(通常它只归档应用程序),请针对框架目标设置构建设置“跳过安装”为NO!


它能运行,但还不够……项目现在已经成功地使用框架构建,但是在上传到iTunesConnect时出现了错误… - saltwat5r
上传档案至iTunesConnect时发生错误...附加错误信息截图你说的“检查是否有模块映射”是什么意思? - saltwat5r
错误提示说没有ipa文件?你能将归档文件导出为ipa格式吗? - Daij-Djan
1
谢谢,将SKIP INSTALL设置为NO是有效的,因为框架必须将BITCODE设置为NO才能上传到商店。然后可以将存档导出到框架中,然后复制/使用该框架用于应用程序。 - ort11
将 Build Settings 中的 enable bitcode 设置为 No 对我有帮助。 - Bohdan Savych
显示剩余7条评论

36
如果您可以构建框架(例如使用自己的框架),则可以执行以下操作: enter image description here 这将允许您的框架提供所需的位码。
另一个备选方案可能适用于没有watchOS和Apple TV的情况(根据文档):
对于iOS应用程序,默认情况下是可选的。如果提供了位码,则应用程序包中的所有应用程序和框架都需要包括位码。对于watchOS和tvOS应用程序,需要位码。
此选项需要在buildSetting中为每个目标设置ENABLE_BITCODENO,但预期会禁止使用位码功能。
有关bitcode的更多信息,请参见此处

这对我有用,但在XCode 8.3上构建存档没有成功。 - Saumitra R. Bhave
非常好的答案。在XCode 9.0上,以存档形式构建并不能起作用,但这个答案适合我。 - Sébastien
1
@Bem 我有这个问题:https://stackoverflow.com/questions/54437778/ios-mobilevlckit-archive-problems 在这种情况下添加BITCODE_GENERATION_MODE是否有帮助? - ironRoei
@ironRoei 我并不确定那种情况下它是否能够工作,但我建议你试一试。 - Baran Emre
@gbk,我添加了BITCODE_GENERATION_MODE,即使我的ENABLE_BITCODE设置为yes,它也完美地工作了。为什么你建议我将其设置为NO?我会遇到未来的问题吗? - PhillipJacobs
显示剩余2条评论

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