swift - 如何访问可在 CocoaPods 和 Swift 包管理器上运行的资产资源?
问题描述
根据我目前的经验以及我在此处的苹果文档中阅读的内容,在访问 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 中包含资产相对较新,所以我找不到任何资源来向我解释这一点,如果有人能解释如何去做,我将非常感激 :)
与此同时,我会继续研究和尝试不同的东西,所以如果我找到答案,我会在这里发布我的发现。
解决方案
推荐阅读
- active-directory - Vault 的 Active Directory 秘密引擎返回“找不到服务帐户”?
- c# - Antlr4 使用 C# - ini 解析器 - 将一个键的值解析为另一个值的键
- python - 使用 PYTHON 运行 Google 数据流模板
- visual-studio - 多次评估 MSBuild 属性
- matlab - 我有频域方程;IFFT如何回到时空域?
- c++ - C ++为类中的枚举项设置值
- postgresql - Postgresql 用户定义函数创建日期或修改日期
- c# - 游戏中改变的变量只在下一场游戏生效
- php - 从 JSON-Array 中完全删除 JSON-Object
- batch-file - 批量重命名文件一个接一个