iOS 杂病论 1 - Library not loaded

刚开始用 Swift 开发就遇到的奇怪 bug - Library not loaded: @rpath/libswiftCore.dylib


iOS 杂病论的想法来自于《伤寒杂病论》,意在记录那些我学习和开发 iOS 遇到的奇奇怪怪的问题,并给出对应的解决方法。需要注意的是,因为开发环境以及语言版本可能存在的差异性,没有办法保证药到病除,仅供参考。

我当前的开发环境

  • Xcode 7.2
  • OS X 10.11.2
  • Swift 2.1
  • iOS 9.2 (iPhone 6s, iPod Touch 6th, iPad 3)

问题描述

新建一个 Swift 项目时,即使什么都不进行修改,在真机运行的时候会出现如下错误

Dyld Error Message:
Dyld Message: Library not loaded: @rpath/libswiftCore.dylib
...

但是在模拟器上可以正常运行,运行 Objective-C 的项目也没有问题。

网上常见解决办法

主要有三种思路

  1. 把 Build Setting 中的 embedded content contains swift code 以及 embed asset packs in product bundle 从默认的 No 改为 Yes
  2. 删除 Xcode 生成的缓存文件
  3. 更新证书

这几条我都尝试过,但均以失败告终。第一条其实并没有多少影响,第二条也没有用,第三条因为我是 Free 的账户所以不可行。

杂病药方

最后在这个帖子里找到了答案,最关键的是需要重新安装证书。

  1. 下载证书
  2. 安装之后重新 clean build 一下即可

总结

遇到奇怪 bug,先考虑是不是证书问题。

捧个钱场?