我正在试着在我的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 13和iOS 12手机中也得到了完全相同的错误。

这里我的项目部署信息是12.0,但我的框架部署信息在iOS 15.0。

我已经将我的框架部署信息更改为12.0。

结论:

这意味着框架和项目支持的版本问题。我们需要在创建框架后修复框架的最低支持版本。

其他回答

下面这些步骤对我很有效:

单击项目名称(在导航器的最上方) 再次点击你的项目名称,(不是目标) 单击“生成设置”选项卡 搜索跑道搜索路径 将其值更改为$(inherited)标志(删除@executable_path/Frameworks)。

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

对于我来说,构建一个依赖于第三方Swift库(例如SQLite)的MacOS命令行Swift应用程序,上面的解决方案似乎都不起作用。有效的方法是直接将以下路径添加到构建设置中的Runpath搜索路径中:

/应用程序/ xcode /内容/ /开发/工具链/ XcodeDefault.xctoolchain / usr / lib /快速/ macosx /

这样做确实会在运行时给出一个警告,说Xcode已经找到了两个版本的libswiftCore——这是有道理的。除了没有包含这一行导致Xcode找不到任何版本的libswiftCore。

无论如何,这将为我做,即使它似乎不正确-我的应用程序只是一个实用工具,我不打算分发,至少它现在运行!

从https://github.com/CocoaPods/cocoapods-integration-specs/pull/24/files的帖子来看,这意味着迅速。Dylib需要签名,但失败了。我甚至没有在cocoapod的支持下创建一个新的swift项目。

要添加到企业分发证书解决方案:您可以打开Keychain并检查证书,如果有任何红色文本表示信任链无法验证或正在撤销,那么它将不起作用!在我的电脑上,我们的分发证书显示为已撤销,尽管门户网站显示它仍然有效。我们获得了一个新的分发证书,在Keychain中是绿色的(有效的),这解决了这个问题。