无法在设备上运行应用程序:iOS 9框架无法进行代码签名

4
我正在更新一个应用程序,部署目标为iOS 7,以便它能与iOS 9兼容。此外,我正在添加一些很酷的iOS 8和9功能。我已经阅读了很多有关向后版本兼容性的文章,现在Swift 2.0使其更容易。到目前为止,我已经处理的事情如下:
  • 将基础SDK设置为iOS 9,并将部署目标设置为版本7
  • 在使用新API时通过if #available(iOS 9.0, *)检查版本
  • 链接仅-iOS9框架(如下所示):
  • Frameworks

正如您所看到的,我正在使用两个新的框架ContactsUI CoreSpotlight。当我在模拟器中运行应用程序时,它完美地工作,但是当我尝试在我的设备上构建和运行它(该设备显然运行iOS 9)时,我会得到以下代码签名错误:

/path/to/a/file.framework: bundle format unrecognized, invalid, or unsuitable
Command /usr/bin/codesign failed with exit code 1

这个错误出现了两次,分别是在ContactsUI框架和CoreSpotlight中。
一开始我以为这是兼容性问题,因为当我尝试在iOS 7设备上运行我的应用程序时(以检查它是否正常运行),这个错误第一次出现了,但是随后我在我的普通且最新的设备上也遇到了同样的问题。
这个问题是什么?代码签名错误与框架的兼容性有关吗?最后,当这个问题解决了,我的应用程序是否能在我想要支持的所有版本上运行?
提前感谢您的帮助,如果需要更多细节,请评论。
2个回答

2
我只需从“嵌入式二进制文件”列表中移除框架,就解决了这个问题。现在我的所有框架都只在“链接的框架和库”列表中:

enter image description here


这只在你运行应用程序并尝试动态链接这些框架之前起作用。当它发现它们不存在时,它会变得非常愤怒。 - aroth

0
建议您按照以下步骤操作:
1. 退出Xcode; 2. 清除派生数据文件夹; 3. 打开Xcode; 4. 对项目文件夹进行清理; 5. 在设备上重新执行构建。

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