Swift App : 一个意料之外的崩溃理由

同步:ckitakishi.com

这是一个发生在去年年底的故事。背景是一个新规 Swift 应用处于准备发布阶段,证书由开发测试用更替为发布用, 这是两份 Team 不同的企业版证书。

应用功能本身十分简单,开发测试阶段也比较顺利,几乎没有发生崩溃。然而在更替证书之后,真机测试应用时却陷入了无限崩溃的境地。

Log 类似下面这样:

dyld: Library not loaded: @rpath/libswiftCore.dylib
  Referenced from: ...
  Reason: no suitable image found.  Did find:
  ...

有很多原因会导致提示这个错误,作为 Trouble Shooting 记录下来:

  • 可能存在缓存,****Clean**** 工程
  • 很多时候该问题发生在 Swift 与 Objective-C 混编的时候,所以需要检查 Building SettingEmbeedded Content Contains Swift Code 的设置是否已经为 ****YES****。
  • 依然是配置,检查 Building Setting 中的 Runpath Search Paths 是否正确,通常是:****@executable_path/Frameworks****。
  • 重置证书 (注销再新建) 。

实际的生产过程中,首先 check 了前三项,最终强烈怀疑是证书问题。关于 “libswiftCore.dylib 崩溃“这个话题,很容易能看到这篇 Q&A,其中提到要运行 Swift 应用必须使用 iOS 8 Released 之后创建的证书。对比手中的两份证书,除了 Team 不同之外,最大的差别在于创建时间,分别为 2016 年夏天,和 2014 年夏天。所以更新证书之后,问题也幸运地解决了。

关于 libswiftCore.dylib 文件还想再多扯几句,看名字就能够猜到是 Swift 动态库,具体说来它其实是 Swift 的运行时库,但是该文件和证书有什么关系呢?原因在于目前 Swift 的版本升级还不稳定,如果将这些运行时库直接放到系统中,很可能会导致每次 Swift 升级都导致应用不再能够使用,而作为这个问题的解决方案,Apple 选择将运行时库打包进应用中,这样就保证了开发与应用的 Swift 版本一致。由于 libswiftCore.dylib 属于应用的一部分,所以也是需要签名的,而像上一段所说,能够为 Swift 的运行时库签名的证书必须创建于 iOS 8 Released 之后。这一切,都是为了提高 Swift 的兼容性,关于兼容性,强烈推荐这条 Tip

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,440评论 5 467
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,814评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,427评论 0 330
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,710评论 1 270
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,625评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,014评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,511评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,162评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,311评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,262评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,278评论 1 328
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,989评论 3 316
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,583评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,664评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,904评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,274评论 2 345
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,856评论 2 339

推荐阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 11,977评论 4 60
  • 这个新年也终于在各种悲喜交加的情绪中过完了。看着晚辈们一天又一天的长大,看着长辈们一年又一年的变老,看着朋友们一个...
    雷紫阅读 749评论 6 2
  • 制药173 刘莉 本文参加#我是电影迷#活动,本人承诺,文章内容为原创,且未在其他平台发表过。 开篇,雪。不洁...
    青春永不言败阅读 525评论 0 2
  • 成长新技能——微习惯。 如果你也像我一样,总是三分钟热度,却找不到“解救”的方法,那么微习惯可能是拯救你我的一个法...
    圆子浅灰阅读 127评论 0 0
  • 昨天,我终于开始跨出准备买房的第一步,虽然这么久了一直都在陆陆续续的关注买房和贷款相关的东西,但有时候它就是像卧薪...
    小宇宙_cw阅读 122评论 0 0