无法在设备上运行应用:iOS 9框架无法进行协同设计

时间:2015-09-02 00:14:31

标签: ios code-signing ios9 xcode7 ios-frameworks

我正在使用部署目标iOS 7更新应用,以便它可以与iOS 9一起使用。此外,我还添加了一些很酷的iOS 8和9功能。我已经阅读了很多关于向后版本兼容性的文章,现在Swift 2.0让它变得更容易了。我到目前为止所做的事情是:

  • 将Base SDK设置为iOS 9,部署目标设置为版本7
  • 使用新API时,使用if #available(iOS 9.0, *)检查运行时的版本
  • 可选择链接唯一的iOS9框架,如下所示:Frameworks

正如您所看到的,我使用的两个新框架是ContactsUICoreSpotlight。当我在模拟器中运行应用程序时它运行得很好,但是当我尝试在我的设备上构建并运行它时(显然运行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 个答案:

答案 0 :(得分:2)

我通过从嵌入式二进制文件列表中删除框架来修复此问题。现在我只在 Linked Frameworks And Libraries 列表中拥有我的所有框架:

enter image description here

答案 1 :(得分:0)

建议您按照以下步骤操作

退出你的xcode, 清除派生数据文件夹, 打开xcode, 清理你的项目文件夹, 重新执行设备上的构建