我正在试着在我的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

当前回答

我在Xcode 11中使用的是通用->框架,库和嵌入式内容,并将框架的“嵌入”选项更改为“嵌入&签名”

其他回答

好的,在这里分享这个错误的另一个原因。我花了几个小时才弄明白。

在我的情况下,我的证书在钥匙串访问的信任策略是始终信任,将其更改回默认值解决了问题。

要打开证书设置窗口,请在证书的Keychain Access列表中双击该证书。

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

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

两年后还是一样的问题。我认为这篇文章解释了我得到的原因(但可能不是这个问题的原因)。使用订阅的开发人员帐户或静态库可能会有所帮助。比如remove use_frameworks!在你的Podfile里。

对于设备,您还需要将动态框架添加到项目的General选项卡中的Embedded binaries部分。

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

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

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

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

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

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