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

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

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


当前回答

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

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

其他回答

我也有同样的问题。我的解决方案是将每个pod声明移动到目标子句中。

来自:

pod 'SomePod1'
pod 'SomePod2'
pod 'SomePod3'
target 'MyAwesomeApp', :exclusive => true do

end

To:

target 'MyAwesomeApp', :exclusive => true do
    pod 'SomePod1'
    pod 'SomePod2'
    pod 'SomePod3'
end

我的猜测是,如果pod声明放在目标声明之外,CocoaPods(0.39.0)可能会使用错误的xcconfig。

Pods.debug.xcconfig (X

Pods-MyAwesomeApp.debug.xcconfig (O

同样的问题,对我来说,是Crashlytics/Fabric/Beta/Twitter/不管他们自称上传了一个缺少嵌入式框架的二进制文件。如果我做了一个存档,然后以标准的方式导出一个企业版,它们就很有魅力。

我的项目是一个Swift项目,有一些Objective-C类。 我用旧的inHouse(企业)证书签名时也遇到了同样的问题。

以下步骤为我解决了这个问题。

创建并使用一个新的证书和移动供应。 (参考AIRSIGN博客) 将Runpath Search Paths构建设置设置为:$(inherited) @executable_path/Frameworks。 (参考马特的回答)

如果你通过嵌入式二进制文件添加这三个框架,它们也会被添加到链接框架和库中。删除链接框架和库中的三个条目将解决问题。

像重新启动Xcode和重启Mac这样的神奇方法对我不起作用。

通常,如果您在构建阶段中将这个库添加到“复制文件”段,这个错误就会消失。