微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何访问适用于 CocoaPods 和 Swift Package Manager 的资产资源?

如何解决如何访问适用于 CocoaPods 和 Swift Package Manager 的资产资源?

根据我目前的经验以及我在 Apple 的文档 here 中读到的内容,在像这样访问 Swift Package Manager 中的资源时,我们必须始终使用 Bundle.module:

let colorAsset = UIColor(named: "Example",in: Bundle.module,compatibleWith: nil)

但这在创建框架时就不一样了。对于框架,我们应该像这样使用包标识符:

let bundleID = Bundle.init(identifier: "shadow.co.Example")
let colorAsset = UIColor(named: "Example",in: bundleID,compatibleWith: nil)

编译器甚至无法识别 SPM 范围之外的 Bundle.module,所以如果我想创建一个可以使用 CocoaPods SPM 安装的框架(这就是我我正在尝试实现)我无法使用 Bundle.module 因为 Pod 无法识别它并且我无法使用包标识符导致 SPM 无法识别它。

那么我应该在这里做什么?如何在两种情况下访问相同的资源?

在 SPM 中包含资产相对较新,因此我找不到任何资源来向我解释这一点,如果有人能解释如何进行此操作,我将不胜感激:)

与此同时,我会继续研究和尝试不同的东西,所以如果我找到答案,我会在这里发布我的发现。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。