【问题标题】:Most efficient way to do 22 different builds进行 22 种不同构建的最有效方法
【发布时间】:2009-11-16 17:35:46
【问题描述】:

我即将完成我的第一个相对简单的 Xcode 项目(自定义安装程序),我需要进行 22 次构建。是的,这不是错字!每个版本的不同之处在于 PRODUCT_NAME、bundle Resources 文件夹中的源文件和表示软件是否为试用版的变量。

从我目前所读到的内容来看,复制现有目标似乎是在只有几个构建时执行此操作的方法,但对于 22 仍然如此吗?这似乎是一项非常艰巨的工作。我想到的是一种更改 PRODUCT_NAME、复制到 Resources 文件夹中的源文件和试用模式布尔值的方法。但我被困住了。

谢谢

【问题讨论】:

    标签: objective-c xcode macos xcodebuild


    【解决方案1】:

    我的直觉是 22 种不同的构建,只有一个源文件不同...

    问题不能转吗?在一个构建中包含所有 22 个不同版本的应用程序,并在 .app 文件夹中提供 22 个不同的密钥/许可证文件,每个文件都可以解锁 22 个版本中的一个。

    【讨论】:

    • 很遗憾没有。这些是不可复制保护的插件,因此它们需要单独构建才能单独下载。
    • 插件 - 构建一个应用程序并提供不同的插件,每个插件都包含所需的功能。虽然这几乎带回了 22 构建问题......
    【解决方案2】:

    我过去实现此目的的一种方法是使用本地化。当您使用NSLocalizedString 风格的宏时,它们中的一些能够指定一个tableName(即,与默认值不同的字符串文件)。然后,每当我需要不同品牌的构建时,我只需使用适当的键值对创建一个新的 .strings 文件。

    然后我有一个构建目标,它使用默认值构建代码,以及第二个目标,它获取构建的代码并将适当的 .strings 文件复制到适当的位置。这工作得很好,让我们能够管理许多不同的构建风格。

    【讨论】:

      【解决方案3】:

      我可能会编写一个脚本,使用 .xcodeproj 模板和 sed 来生成所有必要的组合。

      【讨论】:

        【解决方案4】:

        您可能需要查看 CMake 以维护如此大量的构建。

        脚本当然可以完成工作,但是一旦项目增长到大量文件,或者如果您发现自己更改了构建数量,更改脚本可能会变得很麻烦。 CMake 将允许您组织这些脚本,因此将来进行修改至少会更容易一些。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-02-01
          • 1970-01-01
          • 1970-01-01
          • 2017-11-12
          • 1970-01-01
          • 2017-07-17
          相关资源
          最近更新 更多