Xcode真机调试中活久见的BUG——【code signature invalid for Framework】

因为疫情的原因,春节至今只能在家用自己的非付费开发人员账号进行真机调试,从而发现这个问题,新建的简单项目一直无法进行真机调试,断断续续卡了我好几天。

关键词:

dyld: Library not loaded: @rpath/xx.framework/xxcode signature invalid for xx.framework

遇到错误的共同条件:

  • 真机调试
  • Xcode 11.3.1 + iOS 13.3.1
  • 非付费开发人员账号和证书
  • 使用Cocoa Pods引入过第三方framework

场景:

满足上述条件下,无论是老项目还是新建一个OC/Swift的空白项目,在模拟器上可以正常运行;但是当使用真机进行调试时,Xcode直接奔溃,控制台输出如上图

解决

依据关键词 dyld: Library not loaded: @rpath/xx.framework/xx 搜索,大部分的解答都认为是没有找到对应框架,需要嵌入操作(embed),然后进行过如下几种尝试:

  1. cmd + shift + k清理工程

  2. 清空 /Users/xx/Library/Developer/Xcode/DerivedData 目录

  3. general – embeded binaries 嵌入文件(这一步由于Xcode11的更新,新的做法如下图)

  4. 在 Build Phases 里添加 Copy Files

  5. 修改mach-O Type中的Dynam Library为Static Library

  6. 在keychain中将使用的调试证书的信任改为“使用系统默认”

  7. 重装rvm、Cocoa Pods、Xcode

但以上所有的方式皆未解决问题,于是改变思路为搜索 code signature invalid for xx.framework ,终于在苹果开发者论坛找到相关提问,并一路链接到GitHub上几个开源框架的issues(flutter和Alamofire无故中招:joy:)和Stack Overflow,最终找到:

code signature invalid for Framework

Running iOS apps causes runtime error for frameworks “code signature invalid”

App crashes on iPhone but works fine with android emulator, android device and iOS simulator

我来评几句
登录后评论

已发表评论数()

相关站点

+订阅
热门文章