Swift 和 OC 混编:The application does not have a valid signature

出现错误:

The application does not have a valid signature

这是由于使用了第三方 framework 或者自己的代码是以 framework 的形式引用的。而且直接在 Swift 文件中 import 了 OC 代码的framework。

解决办法:

  • 把 OC 的 framewrok 的引用放到桥接头文件中
    #import <HelloWorld/HelloWorld.h>
    
  • 删除 Swift 文件中对 OC framework 的引用
  • 简单说就是 Swift 不论是引用 OC 代码还是 OC 的 Framework,都必须通过桥接头文件

另外值得一提的是,如果自己的 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 的编译设置,平时只编译当前机器的指令,发布时编译所有平台的指令,这样平时调试的时候编译速度会快一点。这种设置在模拟器可以编译运行,但是真机不能通过。

以上两个表现,这也是我找了半天错误的原因。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,257评论 4 61
  • 创作年代 21世纪 文学体裁 长篇小说 作者 苏童 出版社:作家出版社 内容:《黄雀记》是苏童所作的一部长篇小说。...
    hanxuerping阅读 518评论 0 0
  • 人生会遇到很多的分岔路口,每一个路口通往的目的地不尽相同,想要什么样的生活,就会选择什么样的未来。 ...
    努力的小虫阅读 587评论 0 1
  • 夜静了,一个人躺在床上,并不是显得很是孤单。 窗外一阵又一阵的微风,如音乐般的旋律在高低起伏。客厅中传来时钟一声又...
    LooTan阅读 189评论 0 0
  • 希林独自走在树林里,他手握着步枪,不断环顾着四周。 现在已是秋天,树上的叶片基本上已经落光了。希林的皮靴踩在地面堆...
    朴领阅读 768评论 18 17