2014-11-24 93 views
11

我看过一堆答案,没有解决我的问题。dyld:库未加载。原因是:没有找到合适的图像

我有一个自定义框架和iOS应用程序项目的Xcode工作区。该项目已被做工精细,直到今天早上,现在它建立,但立即崩溃:

dyld: Library not loaded: @rpath/ONCKit.framework/ONCKit 
    Referenced from: /private/var/mobile/Containers/Bundle/Application/4DF67A3F-6255-4276-8812-8C742A363995/atero_t.app/atero_t 
    Reason: no suitable image found. Did find: 
    /private/var/mobile/Containers/Bundle/Application/4DF67A3F-6255-4276-8812-8C742A363995/atero_t.app/Frameworks/ONCKit.framework/ONCKit: mmap() error 1 at address=0x100118000, size=0x000B8000 segment=__TEXT in Segment::map() mapping /private/var/mobile/Containers/Bundle/Application/4DF67A3F-6255-4276-8812-8C742A363995/atero_t.app/Frameworks/ONCKit.framework/ONCKit 
    /private/var/mobile/Containers/Bundle/Application/4DF67A3F-6255-4276-8812-8C742A363995/atero_t.app/Frameworks/ONCKit.framework/ONCKit: mmap() error 1 at address=0x100280000, size=0x000B8000 segment=__TEXT in Segment::map() mapping /private/var/mobile/Containers/Bundle/Application/4DF67A3F-6255-4276-8812-8C742A363995/atero_t.app/Frameworks/ONCKit.framework/ONCKit 

我整天都在尝试用构建设置和我只是完全丢失。

回答

10

我今天遇到这个问题,并以相同的方式解决它。撤消并重新生成代码签名可解决此问题。但要阐明它的“为什么”部分。

Apple继续并更改证书内容。更确切地说,它在主题下添加了一个新的“OU”(组织单位)字段。通过撤销和重新生成代码签名,它添加了缺少的字段,问题就消失了。

+0

此OU字段添加在哪一部分?在发行人或主题?你能指出一下吗? – bikram990 2015-09-09 10:03:05

+0

修正了更清晰的答案。 OU是可以在主题部分下找到的组织单位。 – BlitzHiryu 2015-09-16 02:05:13

+0

感谢您更新答案 – bikram990 2015-09-18 05:21:24

0

只是为了其他任何人说,像我这样的,最近来过这个问题,但是不知道在哪里以及如何准确地撤回其代码签名实体(这是在首选项>帐户):

一切工作正常进行我也是,早上。我在其他地方读过关于重新启动的信息。因此,在经历另一个冗长的签名身份配置概要文件会话之前,我刚刚重新启动了我的机器。而且这显然不需要任何进一步的努力。

Swift,OS X 10.11.4上的Xcode 7.3。

10

Incase这可以帮助任何人,我一直在网上找到的解决方案都没有为我工作。拉我的头发两天,并尝试了一切。我吊销了内部证书,新的配置文件,添加文件到嵌入式等

不能为我的生活找出什么是错,直到我注意到在钥匙串访问我的Apple WWDR和iOS发行版证书正在设置为"Always Trust"而不是“使用系统默认值”。把我的证书交回"Use Systems Defaults",一切都恢复正常。我不知道为什么以及如何运作,但它确实如此。

+4

我其实不相信它。这也是我的问题。对于我在使用Xcode的设备上运行的本地计算机来说,这对我来说很好,但是当启动由Jenkins构建作业生成的IPA时,由于证书的信任设置配置方式不同,所以它失败。这个错误并不表示它与证书无关。你为我节省了几天的痛苦。 – 2016-09-22 14:19:11

+1

这真的解决了我的问题。我不能相信这可能会导致钥匙链中这种误导性的属性! – wilson100 2018-02-01 07:47:26

0

清洁Xcode的派生数据

启动查询>前往>前往文件夹>下方贴上

~/Library/Developer/Xcode/DerivedData 

现在重新启动的Xcode行。

3

事实证明,如果您在多个设备上运行应用程序,Xcode会缓存一些设备特定的内容,这些内容可能会混淆在一起。简单的修复就是删除Xcode缓存。以下命令为您清理它

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 
0

只是更改代码签名配置文件解决了问题。转到目标。然后在通用 - >签名 - >团队中选择不同的选项。

相关问题