【问题标题】:Asset Catalog Compile Error with On-Demand Resources: has no output specification按需资源的资产目录编译错误:没有输出规范
【发布时间】:2018-07-17 10:23:19
【问题描述】:

我一直在尝试让 On-Demand Resource 工作,但我不断收到此编译错误:

/* com.apple.actool.errors */

:错误:“xxx.imageset/xxx@3x.png”的标签组合“tagName”没有输出规范。

我查看了actool man page 并且有一个选项:

--asset-pack-output-specifications filename

上面写着:

告诉 acttool 将找到的 ODR 资源信息写入何处 在资产目录中。发出的文件将是一个 plist。

但我不确定该放什么作为参数/使用此 plist 的位置,或者即使此选项处于修复错误的正确轨道。

【问题讨论】:

    标签: swift xcode asset-catalog on-demand-resources


    【解决方案1】:

    我和我的同事为这个错误苦苦挣扎了一天多,只能通过擦除我们现有的本地存储库并使用包含按需资源的代码从我们的远程存储库安装新克隆来修复它。

    在我们的案例中,我是创建按需资源功能并为资产进行标记的人。我构建并运行了所有代码,并且在我的机器上本地一切正常。我将这些提交推送到我们的遥控器,当我的同事拉出时,他们收到了您在尝试构建时报告的资产目录编译错误。

    我将我的构建日志与同事的日志进行了比较,发现我有 --asset-pack-output-specifications 标志和文件名,而他们没有,即使我们所有的生产代码都是相同的。在开发过程中,我从来没有自己手动设置过这个标志,它是在过程中的某个时刻自动生成的,但我不知道在哪里——在发生构建失败之前我什至不知道它存在。在挣扎了几个小时后,我们注意到如果我的同事完全删除了他们的本地项目,并且基本上通过安装一个新项目并从远程重新开始重新开始,他们突然能够构建。他们已经尝试清理和核对他们的派生数据,但没有奏效。只有完全删除回购和项目才能完全奏效。不知道为什么,但是关于擦除项目和所有相关目录并从他们自己的本地机器完全构建自己的东西触发了启用 --asset-pack-output-specifications 标志的东西。

    【讨论】:

    • 我尝试手动将 --asset-pack-output-specifications $(DERIVED_FILES_DIR)/some-arbritrary-name.plist 插入到 actool 命令中(这是 Xcode 在正确编译时生成的内容) 但它给了我一个不同的编译错误。这个解决方案确实有效,但我很偏执,它可能会再次出现。我在 ODR 方面的整体体验不是很好。
    【解决方案2】:

    我刚遇到这个问题,完全反对删除我的仓库并再次克隆。

    我注意到除了这个错误,我还收到一条警告,指出我有同名的资产(因此被重复)。

    删除重复资产以消除警告,修复编译错误。

    希望这对某人有所帮助,因为不应该选择删除 repo 并再次克隆。

    【讨论】:

      【解决方案3】:

      我刚刚遇到了这个问题。

      我可以通过删除按需资源标签并重新标记它们来解决它。

      【讨论】:

        【解决方案4】:

        我只是通过重新启动 Xcode 然后成功运行来解决它。该错误似乎只出现一次...我不知道为什么。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2013-12-27
          • 2015-10-08
          • 1970-01-01
          • 2018-09-14
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多