【问题标题】:Adding files to an Xcode target with a script使用脚本将文件添加到 Xcode 目标
【发布时间】:2014-03-21 20:07:12
【问题描述】:

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

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

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

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

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

提前非常感谢! -KT

【问题讨论】:

    标签: xcode scripting


    【解决方案1】:

    你的工作已经为你完成了。

    可能作为最后的解决方法...

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

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

    我确实在 Dan Wright A brief look at the Xcode project format More on the Xcode project format 的这个文件中找到了一些额外的信息

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

    祝你好运

    问候

    吉姆兹

    【讨论】:

      【解决方案2】:

      向您的目标添加“运行脚本”构建阶段。

      运行脚本构建阶段将有一个文本框,您可以在其中输入脚本。此处的脚本可以访问 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
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-11-16
        • 2011-10-04
        • 2013-12-17
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多