Xcode Swift:使用使用 pod (CocoaPods) 的框架时出错

Posted

技术标签:

【中文标题】Xcode Swift:使用使用 pod (CocoaPods) 的框架时出错【英文标题】:Xcode Swift: Error using a framework that uses a pod (CocoaPods) 【发布时间】:2016-11-04 09:38:42 【问题描述】:

我制作了一个使用 pod (SCrypto) 的 Swift 框架。我可以毫无错误地构建框架和宿主项目。

但是当我(从使用框架的项目)运行 iPhone 模拟器时,我收到以下错误:

dyld:库未加载:@rpath/SCrypto.framework/SCrypto

引用自:...

原因:图片未找到

如果有人帮助我解决这个问题,我将非常感激。

详情:

已经尝试清理和构建,没有工作。

项目和框架都使用 Swift 编写,适用于 ios。我正在使用最新版本的 Swift 和 Xcode。

我的 pod 文件包括 use_frameworks!。我没有在我的项目目录中运行“pot init” - 只是在框架目录中。

在项目的构建阶段,框架列在 Link Binary with Libraries 下。

还有一些关于堆栈溢出的其他页面关于此错误,但那里的解决方案已过时或对我不起作用。它不允许我评论那些(说它对我不起作用)。对于简单的事情(使用使用 pod 的框架),其他一些似乎很复杂,这让我怀疑它们是否会起作用。同样,我不能在那里发表评论并提出这个问题。所以我不得不改用这个页面。

【问题讨论】:

pod 安装后你在运行什么?我是说 Xproj 还是 Workspace? 所以你的库本身也是一个 pod?您如何使用您的图书馆? UmairAfzal:工作区。问题出在使用使用 pod (SCrypto) 的框架的项目中。框架本身构建成功。 Prine:不,它不是图书馆。这是一个框架。将框架的项目文件拖到宿主项目中 尝试更新 CocoaPods。 'sudo gem install cocoapods' 大约 2 小时前已经这样做了 【参考方案1】:

你需要在你的项目目录中运行 pod init ,这样当你运行 pod install 时它会安装到你的项目中,然后在安装后关闭所有东西并再次打开你的项目,只有这一次使用 yourprojectname.xcsworkspace。确保它不是 yourprojectname.xcodeproject 否则它会给你 No such module 错误

【讨论】:

做到了。现在我得到:“无法为 'SCrypto' 加载底层模块” 这通常会发生,但是在您构建项目后它会自动消失。你试过这样做吗? 是的,我在构建时遇到错误。也尝试过清理和构建,但没有用。 你试过cmd+shift+K吗?也可以尝试右键单击 SCrypto 资源文件夹并搜索模块并将其拖到您的项目中。 我的意思是捆绑

以上是关于Xcode Swift:使用使用 pod (CocoaPods) 的框架时出错的主要内容,如果未能解决你的问题,请参考以下文章

Xcode/Cocoapods 为啥我不能从 Pod 实现 Swift 协议?

如何使用 Swift 5 在 Xcode 10.2.1 中添加 alamofire

Fabric 和 Digits pod 在 Xcode 7 和 Swift 2.0 中的工作区失败

使用 Swift 不工作的 pod 解析崩溃报告导入

Swift 2.3 pod 更新后使用未解析的标识符 Firebase 'FIR'

Xcode 8 - 缺少文件警告