12

假设我有一个包含 100 个图像的项目,我已将这些图像导入到主 Images.xcassets 文件内的文件夹中。然后我从我的图形设计师那里获取其中 67 张图像的更新——有没有一种简单的方法可以将这些图像更新推送到 xcassets 文件夹中?

就目前而言,我在 Xcode 中打开 xcassets 文件,对于每个更改的图像,我将新图像拖到小 2x 或 1x 框中 - 我必须这样做 67 次!我不能只在 Finder 中拖放文件(旧方式),因为 xcassets 文件夹中的每个图像都有自己的子文件夹。如果我不为我的图像使用 xcassets 文件,我可以通过这样做轻松更新文件。但是 xcassets 应该“让您的资产管理变得更加简单”。

很好-那我错过了什么?

4

5 回答 5

5

不需要 Ruby,您可以运行这个 shell 脚本在源文件夹(更新图像所在的位置)中查找文件,在目标文件夹(.xcassets 文件夹)中查找具有相同名称的文件并用更新版本覆盖它们。效果很好!

find ORIGIN FOLDER PATH NAME -name '*.png'  | while read f; do   f2=$(find DESTINATION     FOLDER PATH -name "${f##*/}");   [[ $f2 ]] && cp "$f" "$f2"; done
于 2014-01-15T16:34:31.670 回答
3

我不认为你缺少任何东西。资产文件夹根本没有经过深思熟虑。它们带来了一些好处,但也带来了更多的缺陷。

以启动图像为例。如果没有 Xcode 复制文件,您无法通过资产为不同的 iOS 版本设置相同的视网膜和视网膜 4 英寸启动图像。我想我们别无选择,只能通过错误报告者提交增强请求并希望......

于 2013-09-25T13:53:18.727 回答
1

我写了一个 ruby​​ 脚本来自动化这个任务。请点击以下链接。 https://gist.github.com/shirishgone/8036382

于 2013-12-19T08:59:50.410 回答
0

我已经开始将启动图像和应用程序图标等图像放在我的 xcassets 文件中的单独文件夹中,因为这些图像很少更改。然后,每当我需要重新导入图像或添加新图像时,我都会删除现有图像(单独的文件夹除外),然后重新导入所有内容(我保留的图像除外)。它工作干净,不会破坏我的任何代码或情节提要。

或者,您可以在 Finder 中拖放,您只需在 Finder 中打开 .xcassets 文件夹并将图像放在正确的目录/图像集中。Xcode 正在更改目录结构,与过去类似,如果图像保持相同的文件名,您可以在 Finder 中覆盖它们,Xcode 会更新。您不需要在 Xcode 中为这样的简单更改而弄乱 .xcassets 文件,尽管将每个图像拖到适当的图像集中有点痛苦,并且脚本可以使这方面的事情变得更容易.

于 2013-11-14T23:18:51.593 回答
0

我没有找到快速的方法,所以我自己写了一个。基于python。享受。 https://github.com/qdvictory/happyxcasset

于 2017-07-09T02:57:22.637 回答