根据我目前的经验以及我在此处的苹果文档中阅读的内容,在访问 Swift 包管理器中的资源时,我们必须始终使用 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 中包含资产相对较新,所以我找不到任何资源来向我解释这一点,如果有人能解释如何去做,我将非常感激 :)
与此同时,我会继续研究和尝试不同的东西,所以如果我找到答案,我会在这里发布我的发现。