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

当前回答

简单地说,你有没有试着检查“启用Bitcode=NO”。这对我很管用。

以我为例,我的项目是用Object-C编写的,包括一个用swift编写的第三方框架。我可以在模拟器和真实设备上以开发者模式运行我的应用程序。然而,一旦我实现了Ad-hoc provision profile的APP,并在真实设备上安装了这个ipa OTA,它就崩溃了。更不用说上传到存储了。希望这些信息能有所帮助。

其他回答

换了新mac后,我也遇到了同样的问题,几个小时后,我尝试了问题中所有建议的答案,但没有一个对我有效。

我的解决方案是安装这个丢失的证书。 http://developer.apple.com/certificationauthority/AppleWWDRCA.cer

在这里找到了答案。 https://stackoverflow.com/a/14495100/976628

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

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

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

在我的例子中,我的一个测试目标是工作的,但另一个不是。它给出了上面的错误与一个丢失的库或其他。我比较了两个测试目标的设置,发现其中一个缺少“测试主机”的配置,所以我从工作测试目标中复制了它,它修复了我破碎的测试目标!

假设项目P正在导入自定义库L,那么必须将L添加进去

P ->构建阶段->嵌入框架-> +。这对我很有用。

我认为直接从Xcode生成证书是一个错误。要解析(至少在Xcode 6.1 / 6A1052d中):

go to the Apple Developer website where certificates are managed: https://developer.apple.com/account/ios/certificate/certificateList.action select your certificate(s) (which should show "Managed by Xcode" under "Status") and "Revoke" it follow instructions here to manually generate a new certificate: https://developer.apple.com/library/ios/documentation/IDEs/Conceptual/AppDistributionGuide/MaintainingCertificates/MaintainingCertificates.html#//apple_ref/doc/uid/TP40012582-CH31-SW32 go to Xcode > Preferences > Accounts > [your Apple ID] > double-click your team name > hit refresh button to update certificates and provisioning profiles