我正在试着在我的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(并随后升级到新版本的Swift)时,如果你的项目使用了用旧版本/以前版本的Swift构建/编译的框架,也会导致此错误消息。

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

其他回答

我使用的是Xcode 8.3.3和Xcode 9.2。我的解决方案是使用Xcode Select将默认Xcode从8切换到9:

——打印路径

$ sudo xcode-select -switch /Applications/Xcode-9.2.app

编辑:实际上,Xcode 9.2使用了来自Xcode 8.3.3的派生数据,这似乎对这里有所帮助。不是解决办法,但至少能让我继续工作。

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

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

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

就我而言,

我设置了@executable_path/Frameworks

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

$(PROJECT_DIR)/Frameworks

递归变化

这对我来说很管用。

对我来说,它只是我目标的名字:

我把它重新命名为:MyApp。同样的问题出现了。 但是我在构建设置窗口中看到,我的产品模块名称已经更改为这样的myapp -什么。 所以,我删除了点在我的目标名称(MyAppSomething)和问题消失了。