我正在试着在我的iPhone 4s上运行Swift应用程序。它在模拟器上运行良好,我的朋友也可以在他的iPhone 4s上成功运行。我有iOS 8和官方发布的Xcode 6。

我试过了

重启Xcode, iPhone,电脑 清洁和重建 撤销并创建新的证书/供应配置文件 运行路径搜索路径是$(inherited) @executable_path/Frameworks 包含Swift代码的嵌入内容是“是” 代码签名身份是开发人员

下面是完整的错误

dyld: Library not loaded: @rpath/libswiftCore.dylib
  Referenced from: /private/var/mobile/Containers/Bundle/Application/LONGSERIALNUMBER/AppName.app/AppName
  Reason: no suitable image found.  Did find:
    /private/var/mobile/Containers/Bundle/Application/LONGSERIALNUMBER/AppName.app/Frameworks/libswiftCore.dylib: mmap() error 1 at
address=0x008A1000, size=0x001A4000 segment=__TEXT in Segment::map() mapping
/private/var/mobile/Containers/Bundle/Application/LONGSERIALNUMBER/APPLICATION_NAME/Frameworks/libswiftCore.dylib

当前回答

我在试图在一个私人pod上运行单元测试时遇到了这个问题。

每个人建议的我都做了。毫无效果。

我所要做的就是在不同的模拟器上运行单元测试。

我没有尝试重置模拟器的内容和设置,也许这也可以¯_()_/¯

其他回答

如果你得到一个这样的错误:

“YourFrameworkTests”包无法加载,因为它已经加载了 损坏或缺少必要的资源。尝试重新安装bundle。 (dlopen_preflight(/一些/道路/…/ YourFrameworkTests.xctest / YourFrameworkTests): 库未加载:@rpath/SomeOther.framework/SomeOther引用 来自:/一些/道路/…)

并在框架中使用CocoaPods,然后尝试编辑Podfile并删除继承!:search_paths从Test目标,并再次运行pod install。

详情请见https://github.com/CocoaPods/CocoaPods/issues/8868。

对我来说,之前的解决方案都没用。我们发现在构建设置中有一个“总是嵌入Swift标准库”的标志,需要设置为YES。默认是NO !

构建设置>总是嵌入Swift标准库

设置好后,在再次构建之前清理项目。

给热心的读者一些解释 最重要的部分是:

将嵌入式内容包含Swift代码(EMBEDDED_CONTENT_CONTAINS_SWIFT)构建设置设置为YES,如图2所示。这个构建设置指定了目标产品是否嵌入了Swift代码的内容,当设置为YES时,告诉Xcode将Swift标准库嵌入到你的应用程序中。

该标志以前被称为嵌入式内容包含Swift代码

对我来说,解决方法如下 禁用“在产品包中嵌入资产包”,这个问题就会消失

当升级Xcode(并随后升级到新版本的Swift)时,如果你的项目使用了用旧版本/以前版本的Swift构建/编译的框架,也会导致此错误消息。

在这种情况下,重新构建框架并重新添加它将解决问题。

我认为苹果在试图引用Swift库libswiftCore.dylib时,已经在Swift应用程序崩溃下总结了它

引自技术问答QA1886:

Swift app crashes when trying to reference Swift library libswiftCore.dylib. Q: What can I do about the libswiftCore.dylib loading error in my device's console that happens when I try to run my Swift language app? A: To correct this problem, you will need to sign your app using code signing certificates with the Subject Organizational Unit (OU) set to your Team ID. All Enterprise and standard iOS developer certificates that are created after iOS 8 was released have the new Team ID field in the proper place to allow Swift language apps to run. Usually this error appears in the device's console log with a message similar to one of the following:

[....] [deny-mmap] mapped file has no team identifier and is not a platform binary:
/private/var/mobile/Containers/Bundle/Application/5D8FB2F7-1083-4564-94B2-0CB7DC75C9D1/YourAppNameHere.app/Frameworks/libswiftCore.dylib

Dyld Error Message:
  Library not loaded: @rpath/libswiftCore.dylib

Exception Type: EXC_BREAKPOINT (SIGTRAP)
Exception Codes: 0x0000000000000001, 0x0000000120021088
Triggered by Thread: 0

Referenced from: /private/var/mobile/Containers/Bundle/Application/C3DCD586-2A40-4C7C-AA2B-64EDAE8339E2/TestApp.app/TestApp
Reason: no suitable image found. Did find:
/private/var/mobile/Containers/Bundle/Application/C3DCD586-2A40-4C7C-AA2B-64EDAE8339E2/TestApp.app/Frameworks/libswiftCore.dylib: mmap() error 1 at address=0x1001D8000, size=0x00194000 segment=__TEXT in Segment::map() mapping /private/var/mobile/Containers/Bundle/Application/C3DCD586-2A40-4C7C-AA2B-64EDAE8339E2/TestApp.app/Frameworks/libswiftCore.dylib
Dyld Version: 353.5

The new certificates are needed when building an archive and packaging your app. Even if you have one of the new certificates, just resigning an existing swift app archive won’t work. If it was built with a pre-iOS 8 certificate, you will need to build another archive. Important: Please use caution if you need to revoke and setup up a new Enterprise Distribution certificate. If you are an in-house Enterprise developer you will need to be careful that you do not revoke a distribution certificate that was used to sign an app any one of your Enterprise employees is still using as any apps that were signed with that enterprise distribution certificate will stop working immediately. The above only applies to Enterprise Distribution certificates. Development certs are safe to revoke for enterprise/standard iOS developers.

正如AirSign人员所说,问题的根源在于内部证书的主题字段中缺少OU属性。

主题:UID=269J2W3P2L, CN=iPhone分布:公司名称,OU=269J2W3P2L, O=公司名称,C=FR

我有一个企业发展证书,创建一个新的解决了这个问题。