首先贴出来问题报错控制台log:
dyld: Library not loaded: @rpath/libswiftCore.dylib
Referenced from: /var/containers/Bundle/Application/44636055-0091-4E33-BDED-xxxxxxxxxxxx/Swift_Test.app/Swift_Test
Reason: no suitable image found. Did find:
/private/var/containers/Bundle/Application/44636055-0091-4E33-BDED-xxxxxxxxxxxx/Swift_Test.app/Frameworks/libswiftCore.dylib: code signing blocked mmap() of '/private/var/containers/Bundle/Application/44636055-0091-4E33-BDED-xxxxxxxxxxxx/Swift_Test.app/Frameworks/libswiftCore.dylib'
春节上班我新建了一个工程Swift_Test.swift
噩梦持续了300分钟。。。
自动签名 真机运行开始后 出现如上错误--------👆
第一眼看到这个错我心情是很舒畅的no suitable image found 一看就觉得应该是缺少图片?or Library not loaded库没加载到?
接下来马不停蹄的查探这两个地方 emmmm... 首先排除图片问题(刚建的工程 dev环境下图片什么的问题9.9成可能不会直接把程序弄死(0.1的概率是给Xcode的 编译器越来越不走心了 差评))0.1的概率 我找度娘谈了二十分钟 度娘给出了一堆解决办法,最终表示GG;
接下来就是库没加载到 这个问题八成是手机的问题 真机运行用的是手机的系统库 (这个后来也被排除掉(为什么是后来,因为测试MM的测试机已经刚好被我借了好几次,男人太频繁不好。我打算上午没搞定下午再问她们借))(当然我也顺便查了Xcode的库 Xcode表示并没有libswiftCore.dylib这个库)
下面开始简书、Stack Overflow、csdn、阿里云的表演
1、
最先查到的是一个操作 一些神经大条的同志(比如说我)可以先试试这样 command + shift + K 清除Xcode缓存 然后再运行
(升级版操作 command + shift + K之后关闭Xcode重新运行 ==> 再升级 清缓后删除App在运行 )-------(楼主想到这个操作之后亲自下手摁了二十多次K 然而我这次痛点不是它 K键灰擦干净了也并不好使) 要是有的同学问题在这一步就解决了 那恭喜恭喜 (其实这个方法可以解决很大一部分莫名其妙的小毛病)
2、
第二种办法是清缓再进阶 这个是在Stack Overflow找到的一个歪果仁的解决方案
rm -rf "$(getconf DARWIN_USER_CACHE_DIR)/org.llvm.clang/ModuleCache"
rm -rf ~/Library/Developer/Xcode/DerivedData
rm -rf ~/Library/Caches/com.apple.dt.Xcode
删除编译预编译和Xcode缓存文件 (这几个文件删除后还会自动生成的 放心大胆的删)
上两步的操作无非就是怀疑证书这类方面的问题 担心正在使用之前的无效证书 or缓存方面毛病 下面第三步直接看钥匙串证书问题
3、
到这一步其实已经搞了半天了 ,像这样的问题搞了半天我已经快没自暴自弃了。。。 我跑到开发者账号上 恭恭敬敬的专门生成了一个测试用的Apple ID 双证书 配置文件 下载下来给这个新建的写了三行代码的工程装了上去 然而。。。 下面是这个证书方面相关解决办法
简书上看到了一个解决方案可能是证书上的问题 如果你是写了一部分代码的工程 已经配置好了证书等东西 ,有可能你的证书已经过期无效了 比如这样
----------------
----------------
那赶紧把这个给删了 重新(生成)下载有效的证书 配置文件 为安全起见 建议顺便走下方案1
保证钥匙串里都是类似这样的有效证书
(显然我新生成的证书不是这个办法能解决的。。。)
4、
这个解决办法我看是之前Xcode版本问题的解决办法 不知道现在还有没有 码下来再说
步骤1.在targets ==> build settings栏目下搜索runpath ,增加一个@executable_path/Frameworks(这个可能有 也可能没有 有的话删除再添加再走下方案1)
步骤2:target ==> build settings ==> embedded content contains swift code 把这个设置成YES (Xcode8之后这里已经变成
它了)
5、
这个解决办法貌似是解决库乱添加的问题 具体办法就是删除问题库 (或者把required修改为Optional试试)
emmm...我的并没有这些库
6、
重点来了,经过长时间的轮番上演方案1-5未果 终于到了下午骚扰测试MM的时候 我弄来了两部不同版本手机 。 心想着 如果这次测出来是手机系统升级的问题 我一定写个一万字问候一下苹果爸爸 信心满满运行了起来--->>所有版本都不好使???!!! 心中瞬间万马奔腾。十万伏特要跟我说再见了么??? 瞬间感觉周围无边的恶意...
怎么办。。。
我怀着沉痛的心情继续行尸走肉的浏览着各种论坛平台解决办法。。。
终于 我看到一篇不起眼的文章(其实这篇文章已经看了好几遍 我自认为不是那个原因,因为不敢相信好不好!!)
话不多说 先说办法
我的证书是这样子的 我自己的习惯 把证书下载下来之后先导出顺便始终信任 证书嘛 省得麻烦
请把你所用的证书修改为 系统默认 !👇👇👇
现在好了 成功运行 but 问题还在...
为什么 证书始终信任与使用默认里面到底做了什么 系统默认可以访问某些库而始终信任不能吗 ? 照道理说始终信任的权限应该比系统默认要大很多吧? 各位看官谁能解惑 感激不尽!