The application does not have a valid signature. 的错误处理

根据领导要求,我实验了一下 Carthage 来管理我们的第三方代码。但是真机调试的时候出现了这个问题:The application does not have a valid signature.

我在网上搜了一下。找到的几种解决办法:

  1. clean,然后重新运行
  2. 删除手机上的程序,重新运行
  3. 修改证书配置:每次运行前修改一下证书的配置,再攺回来,可以有效一次,相对比较方便。

以上方法我都试了,完全不 WORK 啊

后来调试过程中我想到了,我们当前工程使用的是最新版本的 Swift,而使用的第三方框架有些是我们自己写的,而且是 OC 版本。顺着这个思路,我查到了,如果自己的 OC 代码是以 Framework 的形式引入进来,并且这个 Framework 的Build Active Architecture Only不论是 Debug 还是 Release 都选择的是 NO,也就是编译armv7,armv7s,arm64 所有平台的指令,在 Swift 中直接引用OC Framework 而不通过桥接头文件是可以通过编译的。如果该 OC Framework 的Build Active Architecture Only在 Debug模式设置为 YES,Release 设置为 NO。这也是我们通常针对 Framework 的编译设置,平时只编译当前机器的指令,发布时编译所有平台的指令,这样平时调试的时候编译速度会快一点。这种设置在模拟器可以编译运行,但是真机不能通过。

最终修改方法:

找到我们自己写的 Project,将 Build Active Architecture Only不论是 Debug 还是 Release 都设置为 NO。carthage update,然后重新 build,运行成功。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容