首页 文章

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

提问于
浏览
4

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

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

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

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

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

提前谢谢了! -KT

2 回答

  • 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
    
  • 3

    你的工作已经完成了 .

    可能作为最后的手段解决方案......

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

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

    我确实在这个文件中找到了Dan Wright A brief look at the Xcode project formatMore on the Xcode project format的其他信息

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

    祝好运

    问候

    JimZ

相关问题