Xcode 方案脚本与构建阶段脚本

Xcode 方案脚本与构建阶段脚本,xcode,Xcode,在构建之后,我想将一些文件复制到我的Xcode项目中 我发现我可以在 在“构建阶段”中使用自定义构建步骤 我还可以在Scheme editor中的不同“任务”前后执行脚本: 构建(这是我可以添加脚本的地方) 跑 试验 侧面图 分析 档案馆 我不完全理解这两种方法之间的差异/可能的含义,我想知道何时选择其中一种方法。感谢您的澄清。两者之间没有太大区别,但是您可以更好地控制构建阶段脚本在构建序列中的运行位置,因此这是更好的选择(例如,您可以修改已经由标准Xcode构建阶段复制的文件) 我自己总是

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

我发现我可以在

  • 在“构建阶段”中使用自定义构建步骤

  • 我还可以在Scheme editor中的不同“任务”前后执行脚本:

    • 构建(这是我可以添加脚本的地方)
    • 试验
    • 侧面图
    • 分析
    • 档案馆

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

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

    我自己总是使用构建阶段脚本,从未使用过方案脚本。它们更容易看到和管理

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

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

    scheme脚本和构建阶段脚本之间有一些细微的区别。以下是其中一些:

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

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