gpt4 book ai didi

xcode - 从脚本将文件添加到 Xcode 项目?

转载 作者:行者123 更新时间:2023-12-03 06:02:12 30 4
gpt4 key购买 nike

现在,我正在使用一些脚本来生成文件,并将这些文件作为资源包含在 Xcode 中。问题是我正在运行脚本,然后从项目中删除,然后添加回项目中。必须有一种方法来自动化最后一步,以便脚本可以生成文件并自动将它们添加到我的 xcode 项目中。

我正在使用 bash,但任何语言示例都会有帮助。

谢谢,安德鲁

最佳答案

我和安德鲁有类似的需求。我需要能够在不提前知道这些资源的情况下包含脚本中的资源。这是我想出的解决方案:

在“复制捆绑资源”之后添加一个新的运行脚本构建阶段,其中包含以下命令:

find -L ${SRCROOT}/SomeDerivedResources \
-type f -not -name ".*" \
-not -name "`basename ${INFOPLIST_FILE}`" \
| xargs -t -I {} \
cp {} ${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/

看起来很吓人,但让我们来分解一下:

find -L ${SRCROOT}/SomeDerivedResources

这会抓取我们源根目录中的 SomeDerivedResources 目录(-L 告诉它遵循符号链接(symbolic link))

-type f

仅包含常规文件

-not -name ".*"

忽略以点开头的文件

-not -name "`basename ${INFOPLIST_FILE}`"

就我而言,我的 Info plist 位于我的 SomeDerivedResources 目录中,因此我们需要排除该文件被复制到我们的产品

| xargs -t -I {}

使用-tfind的结果通过管道传输到xargs(将结果命令回显到stderr,以便它们显示在我们的构建日志中), -I(为每个输入文件运行一次命令)并使用 {} 作为参数占位符

cp {} ${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/

最后,将找到的每个文件(用 {} 表示)复制到我们产品的资源目录中。

我在输入此内容时意识到,使用 rsync 设置而不是 cp 可能会阻止我们在每次构建时复制资源。如果您的资源非常大,可能值得研究。

(此外,由于一些原因,文件夹引用无法满足我的需要。其一,我的图标位于 DerivedResources 目录中,而将它们放在 bundle 中的子目录中似乎不起作用。此外,我理想情况下希望能够使用 [UIImage imageNamed:@"MyAwesomeHappyImage.png"]-pathForResource:ofType: (我的一些文件进一步嵌套在我的 DerivedResources 目录中)。如果您的需求不包含这些限制,我强烈建议您采用文件夹引用路线。)

关于xcode - 从脚本将文件添加到 Xcode 项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1371351/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com