使用脚本将文件添加到Xcode目标

时间:2012-02-22 07:20:44

标签: xcode scripting

有没有办法使用脚本将文件添加到Xcode目标?

我不是在谈论构建规则或阶段;我知道那些。我有一个项目需要将大约3500个文件导入到100多个目标中。我不想手动执行此操作,因为所述文件分布在几个目录中并且手动选择它们需要数天才能完成。

源代码最初来自我转换为Xcode的基于makefile的项目。我可以轻松地修改makefile,使用一些perl魔法轻松地创建相对于$(SRCROOT)的相关目录中的文件列表。我不知道如何处理这些清单。

如果我能以某种方式运行在列表中读取的脚本,在Xcode中找到该文件(因为文件已经作为文件引用和文件夹组添加到项目中),那将是理想的,然后将其添加到我可以定义的单个目标。只是能够做到这一点意味着为所有目标导入和配置源的整个工作需要数小时而不是几天。

这有可能以某种方式实现吗?

非常感谢提前! -KT

2 个答案:

答案 0 :(得分:3)

你的工作已经完成了。

可能作为最后的手段......

当我在添加文件后查看同一项目之间的差异时,它会对其进行更改 project.pbxproj幸运地在文本中。

如果没有其他办法,可能会适当地复制你的文件,你可能会 能够解析/编辑此文件以重建它...棘手的是,可能不受支持。

我确实在此文件中找到了Dan Wright A brief look at the Xcode project format More on the Xcode project format

的其他信息

似乎该方法的成功将取决于能够为您的文件获取PBXFileReference。

祝你好运

此致

JimZ

答案 1 :(得分:0)

添加一个'运行脚本'为你的目标建立阶段。

“运行脚本”构建阶段将有一个文本框,您可以在其中输入脚本。这里的脚本可以访问Xcode构建变量。

你可以将整个脚本放在这里,但我通常更喜欢让它调用ruby脚本。

以下是将资源复制到应用包中的示例脚本:

echo SRCROOT is ${SRCROOT}
echo so project root is ${SRCROOT}/..
echo and it contains ...
ls ${SRCROOT}/..
echo Will copy resources to ${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.app
ruby ${SOMEPROJECT}/buildscripts/copy_resources.rb ${SRCROOT}/..   ${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.app