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

Ant*_*ist 203 dyld swift

将Swift类添加到旧的Xcode项目后,我收到此错误.

dyld: Library not loaded: @rpath/libswift_stdlib_core.dylib

如何让项目再次运行?

muk*_*ssi 151

对我来说,以前的解决方案都没有奏效.我们发现ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES在Build Settings 中有一个标志(在早期版本中:"Embedded Content包含Swift Code"),需要设置为YES.默认是NO!

  • 嵌入的内容包含 Swift 代码已弃用 ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES (2认同)

mat*_*att 91

如果在转换Objective-C项目期间出现问题以开始使用Swift时,可能会发生此错误.问题是链接器构建设置从未正确配置,因此您必须手动完成.查找Runpath搜索路径构建设置并将其设置为:

$(inherited) @executable_path/Frameworks
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

编辑:我还应该补充说,最近发生了一些完全由其他事情引起的错误 - 苹果公司在Swift本身做了一个改变,从Xcode 6.1或6.1.1开始.唯一的解决方案似乎是退出Xcode,在Keychain Access中销毁您的证书,转到成员中心并删除所有证书和配置文件(商店中应用程序的配置文件除外 - 您无法删除它们),然后启动整个证书申请流程从头开始.

  • 为我工作.升级到最新的Xcode版本,发现我的项目中的这个设置路径导致了旧版本. (3认同)
  • 感谢上帝!那是它! (2认同)

Ada*_*Fox 79

我不确定为什么这个问题被低估了,当我第一次尝试将Swift用于现有项目时,我也遇到了这个问题.Xcode重启也为我解决了这个问题.

  • 我正在尝试在新的iOS项目中使用swift,并且在尝试在iOS 8设备上运行时出现错误,但在模拟器中没有.重新启动Xcode,我的笔记本电脑或手机无法解决问题.还有其他解决方案吗? (20认同)
  • 不幸的是,这在Beta 4下对我不起作用,试图启动一个使用基于Swift的框架的Mac应用程序. (2认同)

acc*_*ews 54

我在这个问题上搜索得很久.导致此问题的原因有多种.

如果您在Objectice C项目中遇到Swift代码/库,那么您应该尝试解决方案1-2-3

如果您在使用新的Swift项目时遇到此问题,解决方案4将最适合您.

解决方案1:

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

解决方案2:

转到项目构建设置并将Always Embed Swift Standard Libraries(先前Embedded Content Contains Swift Code)标记设置为YES

解决方案3:

转到项目构建设置并添加@executable_path/FrameworksRunpath Search Paths选项

解决方案4:

如果以上都不起作用,这应该.如AirSign的帖子所述,Apple似乎是忍者修补证书

在InHouse证书

Subject: UID=269J2W3P2L, CN=iPhone Distribution: Company Name, O=Company Name, C=FR

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

Subject: UID=269J2W3P2L, CN=iPhone Distribution: Company Name, OU=269J2W3P2L, O=Company Name, C=FR

所以你应该重新创建证书和配置


C0D*_*0D3 40

在我的情况下,我试图导入自定义框架,并得到类似的错误.事实证明,我必须在嵌入式二进制文件中导入框架,而不是导入到链接的框架和库中.

嵌入式二进制文件位于项目设置 - > - >常规下


小智 16

对于使用Adhoc/Enterprise分发版本遇到此问题的开发人员,

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

资料来源:https://devforums.apple.com/message/1022908#1022908


Chr*_*phe 15

解决方案5:

就我而言,在回答中提到的所有解决方案accfews是非常有益的,但没有工作过.我通过在项目目标的"常规"部分的"嵌入式二进制"部分中添加我的swift库来解决我的问题.也许这是因为我在我的工作区中包含了我的快速框架?无论它现在编译什么!准备好斯威夫特,我在这里!


Ant*_*ist 10

Xcode的简单重启为我解决了这个问题.


Eri*_*ric 5

对我来说,问题是由于我的Apple全球开发者关系认证机构无效.

从这里下载:https: //developer.apple.com/certificationauthority/AppleWWDRCA.cer

将其拖放到Keychain Access中,清理项目并运行.


jly*_*ith 5

发生这种情况的原因有很多。刚刚度过了一个有趣的周末,发现了导致此问题的另一个问题(代码签名的顺序),我想创建一个总结答案,将所有可能的解决方案结合在一起:

  1. 将包含 Swift 代码的嵌入内容添加到项目中。 如果您的应用程序包含 Swift 代码,则需要设置此标志。
  2. 清洁工程。除了“项目”>“清理”之外,您还可以删除DerivedDataBuild目录。在首选项下查找的位置DerivedDataBuild应该在您的项目文件夹中。
  3. 确保运行路径搜索路径包含@executable_path/Frameworks.
  4. 确保您的证书在 OU(组织单位)字段中包含您的 Apple 团队 ID ,Apple 将为您添加此项,只需撤销您现有的分发证书并创建一个新的,下载,安装在 KeyChain 上,重新生成所有配置文件,下载这些文件并重建。
  5. Xcode 重新启动。 如果一切基本上都很好,但 Xcode 还没有达到这一点。

这是很容易的事情。如果您正在执行自己的命令行构建,则可能会创建自己的.ipa文件来上传。在这种情况下,您需要确保以下几点:

  1. 确保 中 Swift 文件的版本与 中SwiftSupport/iphoneos的版本相同Contents/YourApp.app/Frameworks 因为 Swift 版本之间尚未实现二进制兼容,所以您必须确保这些版本是您构建应用程序所使用的版本。您可以在 下找到这些库/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/iphoneos
  2. 首先签署库和框架。您需要首先对codesign库和框架文件(Frameworks.app文件夹下)进行签名,然后对整个.app树进行签名。该.app树必须使用框架进行签名,entitlements.plist不能使用框架进行签名。

希望当 Swift 3.0 出现时,我们不再需要将 Swift 与我们的应用程序捆绑在一起,整个问题就会消失。