【问题标题】:ANT- How to recursively build the iOS project for different environments?ANT-如何为不同环境递归构建 iOS 项目?
【发布时间】:2016-11-25 17:06:35
【问题描述】:

我正在使用 ANT 脚本来自动化我的 iOS 构建和打包任务。根据我当前的构建脚本,我从命令行传递所需的环境,该脚本将为该特定环境生成一个 IPA 文件。

基本上,它将运行以下目标-ValidateParameters, SetupBuildProperties, SetupXcodeSettings, clean, archive & package.

我必须为Dev, QA & UAT 创建构建。所以,我必须运行脚本 3 次才能拥有 3 个不同的 IPA 文件。当我从命令行传递环境时,我将其存储在 ANT 属性中,并且将用于几乎所有目标。因为,属性是不可变的,这对我也没有帮助。

现在,有什么方法可以通过只运行一次脚本来生成所有 3 个构建?不知道如何重置环境属性!

请帮助我。

【问题讨论】:

    标签: ios ant build-automation


    【解决方案1】:

    一种解决方案是创建一个名为“buildForAllEnvs”之类的目标,您可以在其中为每个目标环境使用antcall 调用子项目构建,并将其属性作为嵌套元素传递:

    <target name="buildForAllEnvs">
        <antcall target="runBuild">
            <param name="targetEnv" value="Dev"/>
        </antcall>
        <antcall target="runBuild">
            <param name="targetEnv" value="QA"/>
        </antcall>
        <antcall target="runBuild">
            <param name="targetEnv" value="UAT"/>
        </antcall>
    </target>
    

    请注意,有很多方法可以覆盖或重置 Ant 中的属性。见How to over-write the property in Ant?:

    1. 使用 Ant-Contrib 的 var 任务(需要将 Ant-Contrib 添加到您的类路径中,这还引入了一组有用的任务,用于使用 if 进行条件执行并使用 for 进行循环)。
    2. 使用宏定义来重用具有不同参数的相同构建。
    3. 使用项目 API 手动覆盖属性(虽然很麻烦)。

    【讨论】:

      猜你喜欢
      • 2022-02-03
      • 2020-05-22
      • 2020-11-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-28
      • 1970-01-01
      相关资源
      最近更新 更多