Xcode 9不再将xcassets复制到捆绑目标中

时间:2017-09-26 14:27:16

标签: xcode bundle xcode9

我更新到Xcode 9,现在当我构建我的捆绑目标时,它不再包含xcasset图像资源。

设定:

  1. xcasset与目标相关联 Xcode 9 showing association with target

  2. xcasset包含在" Copy Bundle Resources"捆绑目标的构建阶段。

  3. Xcode 9 showing copy bundle resources

    结果

    xcassets中的图像不与捆绑产品一起出现。 Terminal showing result of build

    在使用Xcode 8的另一台机器上,我可以构建相同的捆绑目标,并且TestCatalog中的图像也存在。

    注意:TestImage.png(存在于任何xcassets之外)在Xcode 9上按预期包含。这使我认为该问题与xcassets的包含方式有关。

    感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

工作得很好! Assets.car 实际上是您的资产目录,您的图片就在其中。

如果Xcode以前将图像从资产目录中拉出来并将它们放在框架的顶层,那就错了!资产目录图像应该编译到资产目录的编译版本( .car 文件)。而这正是现在正在发生的事情。并且没有理由不在编译过程中重命名资产目录(因为无论如何都无法通过代码中的名称直接引用资产目录)。

您可以通过阅读编译期间生成的报告来确认这是发生了什么。但是,您不会在屏幕截图中包含该内容。我会给你看。这是我的项目,类似于你的项目:

enter image description here

以下是报告的相关部分:

enter image description here

正如您可以看到的最后几行,MyFrameworkAssets.xcassets已编译到名为/MyCoolFramework.framework/Assets.car的资产目录中,与项目完全相同。

所以我认为问题只是你试图从外面看“这个”(即使用终端)。真正知道这是否有效的方法是让你的框架代码引用一个图像并显示它,而你似乎没有这样的代码。您也可以下载AssetCatalogTinkerer并查看 assets.car 文件。你会看到你的形象在那里!