原因:找不到合适的图像.

Sat*_*uki 113 iphone xcode dyld ios

dyld: Library not loaded: @rpath/libswiftCore.dylib
  Referenced from: /var/mobile/Containers/Bundle/Application/3FC2DC5C-A908-42C4-8508-1320E01E0D5B/Stylist.app/Stylist
  Reason: no suitable image found.  Did find:
    /private/var/mobile/Containers/Bundle/Application/3FC2DC5C-A908-42C4-8508-1320E01E0D5B/testapp.app/Frameworks/libswiftCore.dylib: mmap() errno=1 validating first page of '/private/var/mobile/Containers/Bundle/Application/3FC2DC5C-A908-42C4-8508-1320E01E0D5B/testapp.app/Frameworks/libswiftCore.dylib'
(lldb) 
Run Code Online (Sandbox Code Playgroud)

在iPhone上构建时出现此错误.我能够在模拟器上构建.我已经重做了所有的配置文件,但是仍然无法在我的iPhone上构建.我的Xcode是这样的

在此输入图像描述

这是框架问题还是签名问题?这在Xcode 6中没有发生.谢谢.

Jie*_* Hu 378

我之前有这个问题意外撤销了我的证书.然后我所有的快速项目都有这个问题.有两种方法可以解决这个问题:

点击产品 - >清洁(或CMD-Shift-K)

或者通过手动清理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
Run Code Online (Sandbox Code Playgroud)

我不知道为什么.祝你好运,看看它是否有帮助.

  • 我认为Alt + Clean也会这样做 (9认同)
  • 清洁项目对我有用:SHIFT + CMD + K. (9认同)
  • 您是否使用非开发者 Apple ID 将应用程序安装到手机上?iOS 13.3.1 似乎破坏了使用免费 Apple ID 安装的应用程序,但前提是它们包含嵌入式框架。如果可以将所有依赖项链接为静态库而不是框架(例如,如果您使用 Cocoapods,您可以从 Podfile 中删除 use_frameworks!),那么现在应该可以解决问题。 (9认同)
  • 天啊...谢谢你刚刚工作.谢谢!!!感谢所有回答的人! (2认同)

小智 27

我在这个问题上搜索得很久.导致此问题的原因有多种.

如果您在Objectice C项目中遇到Swift代码/库,那么您应该尝试解决方案1-2-3

如果您在使用新的Swift项目时遇到此问题,解决方案4将最适合您.

解决方案1:

重启Xcode,然后重启电脑和iPhone

解决方案2:

转到项目构建设置并将Embedded Content Contains SwiftCode标志设置为YES

解决方案3:

转到项目构建设置并添加@executable_path/Frameworks到"运行路径搜索路径"选项

解决方案4:

如果以上都不起作用,这应该.如AirSign的帖子所述,Apple似乎是忍者修补证书

在InHouse证书

Subject: UID=269J2W3P2L, CN=iPhone Distribution: Company Name, O=Company Name, C=FR
Run Code Online (Sandbox Code Playgroud)

他们添加了一个名为的新字段 OU

Subject: UID=269J2W3P2L, CN=iPhone Distribution: Company Name, OU=269J2W3P2L, O=Company Name, C=FR
Run Code Online (Sandbox Code Playgroud)

所以你应该重新创建证书和配置

  • 如何编辑 InHouse 证书? (2认同)

Sea*_*ren 27

Xcode->Product->Clean + Xcode Restart
Run Code Online (Sandbox Code Playgroud)

在尝试了许多其他提到的解决方案后,为了我的永恒尴尬,做一个Xcode-> Product-> Clean并重新启动Xcode,就可以了.

  • 我也做了许多前面提到的步骤,如获得WWRD,检查运行路径等等......直到我做这个"干净"才有效.所以非常感谢你! (2认同)

War*_*blr 19

对我来说,这个问题出现了,因为WWRD证书 - 我的是最新的,但由于某种原因它被设置为'始终信任'而不是'使用系统默认',这显然有所作为.

  • 证书问题为+1.我完全尝试了一切,但后来注意到我的开发人员证书在钥匙串中设置为"始终信任".如你所说改为"使用系统默认值"工作得很好.谢谢! (4认同)
  • 救了我的一天兄弟!谢谢 (2认同)

小智 16

如果您不小心重置了钥匙串,可能会因钥匙串中缺少Apple证书而发生这种情况.我跟着就回答这个解决我的问题.

我有同样的问题,并能够通过重新下载WWDR(Apple全球开发者关系认证中心)来解决.从这里下载:http://developer.apple.com/certificationauthority/AppleWWDRCA.cer


NBo*_*nns 13

删除DerivedData对我来说很有用.

是通过Xcode - > Preferences - > Locations - >点击了DerivedData路径后面的箭头,并删除了Finder中的整个DerivedData文件夹.


Jag*_*ngh 5

通过xcodebuild和xcrun PackageApplication在命令行中构建应用程序时,我发生了这种情况,使用企业配置文件对应用程序进行签名.在我们的CI构建服务器上,证书在密钥链中设置为"始终信任"(选择证书 - >获取信息 - >信任 - >"使用系统默认值"可以更改为"始终信任").我不得不将其设置回"使用系统默认值"以使其工作.最初,我们将其设置为"始终信任",以解决在软件更新和证书更新后出现的钥匙串对话框.


小智 5

冒着造成更多混乱的风险,我在更新到 XC8 时遇到了这个问题。

这些建议或任何其他线程都没有解决这个问题。真正起作用的是从“链接二进制文件与库”构建阶段、“目标依赖项”构建阶段和“链接框架和库”常规设置中删除所有内容。

仅供参考,我正在使用 Carthage 并已添加$(PROJECT_DIR)/Carthage/Build/tvOSFRAMEWORK_SEARCH_PATHS构建设置中,以便可以找到我的框架。

仅供参考 2,这个项目和框架是 100% 快速的,框架正在构建中DEFINES_MODULE = YES