【问题标题】:Scheme Script vs. Build Phase Script方案脚本与构建阶段脚本
【发布时间】:2012-10-25 18:22:51
【问题描述】:

构建后,我想将一些文件复制到我的 Xcode 项目中。

我发现我可以这样做

  1. 在具有自定义构建步骤的“构建阶段”中。

  2. 我还可以在 Scheme 编辑器中执行不同“任务”之前和之后的脚本:

    • 构建(这是我可以添加脚本的地方)
    • 运行
    • 测试
    • 简介
    • 分析
    • 存档

我不完全理解这两种方法之间的差异/可能的影响,我想知道何时选择其中一种方法。感谢您的澄清。

【问题讨论】:

    标签: xcode


    【解决方案1】:

    构建完成后,我想将一些文件复制到我的 Xcode 项目中。

    我假设您想将文件复制到您的构建产品,而不是 Xcode 项目。

    方案和构建阶段脚本之间存在一些细微差别。以下是其中一些:

    • 方案脚本是方案的一部分,因此与其他开发人员共享更具可配置性。另一方面,构建阶段脚本是目标的一部分,不能简单地通过选择其他方案来跳过。
    • 方案脚本可以在依赖检查之前运行。因此,您可以使用它们来修改源文件并获得最新的结果。这对于构建阶段脚本是不可能的。
    • 环境变量中传递给脚本的信息略有不同。根据您需要的信息,您有时必须选择正确的脚本类型。
    • 构建阶段脚本仅在构建过程成功直到它们进入目标时才会有条件地运行。
    • 构建阶段脚本可以配置为仅在输入文件更改时运行。

    【讨论】:

    • 是否可以说,从方案脚本运行 SwiftLint?当您通过构建脚本执行此操作时,它会为 linting 问题提供语法高亮。我没有成功地从方案脚本中获得相同的工作。我问的原因是因为 swift 包没有构建脚本。
    【解决方案2】:

    两者之间没有太大区别,但是您可以更好地控制构建顺序中构建阶段脚本的运行位置,因此这是更可取的(例如,您可以修改已按标准复制的文件Xcode 构建阶段)。

    我自己总是使用 Build Phases 脚本,从未使用过 Scheme 脚本。它们更显眼,更易于管理。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-09-04
      • 2017-05-22
      • 2010-11-23
      • 2015-03-07
      • 2015-01-18
      • 2021-05-15
      • 1970-01-01
      • 2011-10-26
      相关资源
      最近更新 更多