dyld:未加载库。原因:找不到合适的图像

时间:2014-11-24 23:50:19

标签: xcode cocoa frameworks dylib

我在这里看了一堆答案,没有人解决我的问题。

我有一个带有自定义框架和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

我整天都在尝试构建设置而且我完全迷失了。

8 个答案:

答案 0 :(得分:12)

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

直到我注意到在Keychain访问中我的Apple WWDR和iOS发行版证书被设置为"Always Trust"而不是“使用系统默认”时,我的生活无法找出问题所在。将我的证书转回"Use Systems Defaults",一切都恢复正常。我不知道为什么以及如何运作,但确实如此。

答案 1 :(得分:11)

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

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

答案 2 :(得分:7)

事实证明,如果您在多个设备上运行应用程序,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

答案 3 :(得分:1)

清理Xcode的派生数据

启动Finder>去>转到文件夹>粘贴下面的行

~/Library/Developer/Xcode/DerivedData

现在重启Xcode。

答案 4 :(得分:0)

对于像我这样的其他人来说,最近遇到这个问题并且想知道在哪里以及如何正确撤销哪个代码签名实体(它在首选项>帐户中):

早上一切都对我很好。我在其他地方读到有关重启的信息。因此,在进行另一个冗长的签名 - 身份 - 配置 - 配置文件会话之前,我刚刚重启了我的机器。而这显然是在没有任何进一步努力的情况下解决的。

Swift,OS X 10.11.4上的Xcode 7.3。

答案 5 :(得分:0)

只需更改代码签名配置文件即可解决问题。转到目标。然后在General-> Signing-> Team

中选择了不同的选项

答案 6 :(得分:0)

好吧,在我的情况下,我正在使用可可足类,并从pod文件中进行更改:

target 'CoreMotionExample' do
# Comment the next line if you don't want to use dynamic frameworks
use_frameworks!

# Pods for CoreMotionExample
pod 'Firebase/Analytics'

target 'CoreMotionExample' do
# Comment the next line if you don't want to use dynamic frameworks
# use_frameworks!

# Pods for CoreMotionExample
pod 'Firebase/Analytics'

然后事情开始起作用...我不知道为什么

答案 7 :(得分:0)

我的问题已通过删除“ use_frameworks!”得以解决。并将其替换为“ use_modular_headers!”在Podfile中进行,并在终端中进行pod更新和pod安装。

希望这个问题在解决问题上花了我一周的时间后,会对您有所帮助。