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

当前回答

你必须设置Runpath搜索路径为@executable_path/Frameworks,如下面的Build Settings截图所示:

如果你有任何Swift内置框架,那么你可以将Build Options embedded Content Contains Swift Code设置为YES。

其他回答

我认为直接从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

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

在尝试了所有东西之后,我终于发现,构建似乎并不总是一次又一次地包含所有细节。也许是为了加快进程…… 为了确保在设备上运行前包装完整,请先进行清洁:Shift-Cmd-K。 然后使用Cmd-B构建。 然后在你的设备上运行它。 一件容易的事。 向你们所有在那个地方的好人致以亲切的问候!

当Xcode要求你重置certs时,你重置它。应用程序可以在实际设备上运行,而不会因错误消息而崩溃。一旦在一个swift项目中解决了这个问题。其他swift项目也解决了这个问题。

我已经为此奋斗了大约半天,我发现在配置门户中一次又一次地重置certs并没有帮助。

就我而言,

我设置了@executable_path/Frameworks

但是我还要设置框架搜索路径

$(PROJECT_DIR)/Frameworks

递归变化

这对我来说很管用。