在将Swift类添加到旧的Xcode项目后,我得到这个错误。

dyld:库未加载:@rpath/libswift_stdlib_core.dylib

我怎样才能使项目再次运行?


当前回答

我在这个问题上研究了很久。有几个原因导致这个问题。

如果你在objective - C项目中使用Swift代码/库,你应该尝试解决方案1-2-3

如果你正面临这个问题,一个新的Swift项目解决方案4将最适合你。

解决方案1:

重启Xcode,然后重启电脑和iPhone

解决方案2:

转到项目构建设置,并设置始终嵌入Swift标准库(以前的嵌入式内容包含Swift代码)标志为YES

解决方案3:

进入项目构建设置,将@executable_path/Frameworks添加到Runpath搜索路径选项

解决方案4:

如果以上都不起作用,那么应该这样做。正如AirSign的帖子中提到的,苹果似乎是忍者补丁证书

At InHouse证书

主题:UID=269J2W3P2L, CN=iPhone分布:公司名称,O=公司名称,C=FR

他们添加了一个名为OU的新字段

主题:UID=269J2W3P2L, CN=iPhone分布:公司名称,OU=269J2W3P2L, O=公司名称,C=FR

因此,您应该重新创建证书和供应

其他回答

添加框架为“嵌入式二进制文件”,而不仅仅是“链接框架和库”-修正了我的问题。

我还设置嵌入内容包含Swift代码标志为YES。

对我来说,之前的解决方案都没用。我们发现在构建设置中有一个标记ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES(在早期版本中:“嵌入式内容包含Swift代码”)需要设置为YES。默认是NO !

对于在Adhoc/Enterprise发行版构建中遇到此问题的开发人员,

从开发门户创建产品证书,然后重新生成分发配置文件。下载并安装在你的Mac上。确保你在Xcode构建设置中选择了正确的配置文件,并重新构建应用程序。

来源:https://devforums.apple.com/message/1022908 1022908

我也遇到过同样的问题,设置正确的代码签名标识解决了这个问题(构建设置->代码签名标识)。

根据苹果的技术问题,“iOS 8发布后创建的所有企业和标准iOS开发者证书在适当的位置都有新的团队ID字段,以允许Swift语言应用程序运行”

在我的例子中,我试图导入一个自定义框架,并得到类似的错误。 结果我不得不在嵌入式二进制文件中导入框架,而不是在链接框架和库中。

嵌入式二进制文件在项目设置-> ->通用下