【发布时间】:2017-09-26 14:27:16
【问题描述】:
我更新到 Xcode 9,现在当我构建我的捆绑目标时,它不再包含 xcasset 图像资源。
设置:
结果
在使用 Xcode 8 的不同机器上,我可以构建相同的捆绑目标,并且存在 TestCatalog 中的图像。
注意:TestImage.png(存在于任何 xcasset 之外)已按预期包含在 Xcode 9 中。这使我认为问题与 xcasset 的包含方式有关。
感谢您的帮助。
【问题讨论】:
我更新到 Xcode 9,现在当我构建我的捆绑目标时,它不再包含 xcasset 图像资源。
设置:
结果
在使用 Xcode 8 的不同机器上,我可以构建相同的捆绑目标,并且存在 TestCatalog 中的图像。
注意:TestImage.png(存在于任何 xcasset 之外)已按预期包含在 Xcode 9 中。这使我认为问题与 xcasset 的包含方式有关。
感谢您的帮助。
【问题讨论】:
它工作得很好! Assets.car 实际上是你的资产目录,你的图片就在里面。
如果 Xcode 之前将图像从资产目录中拉出并将它们放在框架的顶层,那是错误的行为!资产目录图像应该被编译成资产目录的编译版本(.car 文件)。而这正是正在发生的事情。并且没有理由不应该在编译过程中重命名资产目录(因为无论如何您都无法在代码中通过名称直接引用资产目录)。
您可以通过阅读编译期间生成的报告来确认发生了什么。但是,您不会将其包含在屏幕截图中。我会给你看。这是我的项目,和你的类似:
这是报告的相关部分:
正如您在最后几行中看到的,MyFrameworkAssets.xcassets 已被编译到名为 /MyCoolFramework.framework/Assets.car 的资产目录中,与您的项目中完全相同。
所以我认为问题仅仅是你试图“从外部”看这个(即使用终端)。真正知道这是否有效的方法是让您的框架代码引用图像并显示它,而且您似乎没有这样的代码。您还可以下载 AssetCatalogTinkerer 并查看 assets.car 文件。你会看到你的图像在那里!
【讨论】: