苹果根证书异常删除导致 App 闪退的问题

一日,同事让帮解决一个问题,问题是:App 无法在真机上运行,控制台报错:

<code class="hljs oxygene has-numbering">dyld: <span class="hljs-keyword">Library</span> <span class="hljs-keyword">not</span> loaded: @rpath/libswiftAssetsLibrary
  Referenced <span class="hljs-keyword">from</span>: /<span class="hljs-keyword">var</span>/mobile/Containers/Bundle/Application/<span class="hljs-number">3</span>FC2DC5C-A908-<span class="hljs-number">42</span>C4-<span class="hljs-number">8508</span>-<span class="hljs-number">1320</span>E01E0D5B/test.app/test
  Reason: no suitable image found.  Did find:
    /<span class="hljs-keyword">private</span>/<span class="hljs-keyword">var</span>/mobile/Containers/Bundle/Application/<span class="hljs-number">3</span>FC2DC5C-A908-<span class="hljs-number">42</span>C4-<span class="hljs-number">8508</span>-<span class="hljs-number">1320</span>E01E0D5B/testapp.app/Frameworks/libswiftCore.dylib: mmap() errno=<span class="hljs-number">1</span> validating first page <span class="hljs-keyword">of</span> <span class="hljs-string">'/private/var/mobile/Containers/Bundle/Application/3FC2DC5C-A908-42C4-8508-1320E01E0D5B/testapp.app/Frameworks/libswiftAssetsLibrary'</span>
(lldb) 
</code><ul class="pre-numbering" style=""><li>1</li><li>2</li><li>3</li><li>4</li><li>5</li><li>6</li></ul><ul class="pre-numbering" style=""><li>1</li><li>2</li><li>3</li><li>4</li><li>5</li><li>6</li></ul>

百度了一下,主要搜到了 stackoverflow 的几篇帖子。于是参考帖子上各种招数,什么 clean、重启 Xcode/Mac,删除 DerivedData 目录,修改 target 的 “Embedded Content Contains Swift Code flag”和“Runpath Search Paths ”设置…甚至重装了 Xcode,但没一个靠谱。白白浪费了 2 个小时。

后来新建了一个工程,什么代码都不写,也是无法在真机上运行,报的错误和前面差不多的样子。

想来想去,觉得以前遇到过类似的问题,但一时想不起来了。搜了一下关键字 no suitable image found,结果搜到了一个结果,竟然是自己在去年发的老帖:苹果的又一个坑:InHouse打包后程序不能启动

这下明确了这个问题应该和证书有关。

打开同事那台 Mac 的钥匙串程序,结果让我大跌眼镜,竟然没有安装苹果根证书(Apple Worldwide Developer Relations Certification Authority)!

于是重新下载和安装了苹果根证书,问题得到解决。

注意:苹果根证书应该安装在钥匙串的”登录“下面,不要安装在“系统”下面,否则是无效的。
另外,如果开发证书(以及provisioning profile )没有更新,也会出现同样的问题,原因请参考 苹果的又一个坑:InHouse打包后程序不能启动 一文。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值