此项目是由两个目标创建的一系列脚本集合
目前,有两个重要的脚本:bootstrap
和 cibuild
。两者都是 Bash 脚本,为了最大限度地提高兼容性并消除系统配置问题(如设置可工作的 Ruby 环境)。
磁盘上脚本的结构旨在遵循典型 Ruby 项目的结构
script/
bootstrap
cibuild
此脚本负责在检出项目后引导(初始化)项目。在这里,您应该安装或克隆任何需要在可工作的构建和开发环境中使用的依赖项。
默认情况下,脚本将验证 xctool 是否已安装,然后递归地初始化和更新子模块。如果任何子模块包含 script/bootstrap
,它也将运行。
要检查是否安装了其他工具,您可以在运行 script/bootstrap
之前设置 REQUIRED_TOOLS
环境变量,或者直接在脚本中编辑它。请注意,不会自动安装,尽管这始终可以添加到您的特定项目中。
此脚本负责构建项目,就像您希望在持续集成上构建的项目一样。这比在 CI 服务器本身上放置逻辑更可取,因为它确保任何更改都与源代码版本化。
默认情况下,脚本将运行 bootstrap
,在工作目录中查找任何 Xcode workspace 或项目,然后使用 xctool 构建所有目标/方案(如 xcodebuild -list
找到的)。
您也可以通过将它们传递给脚本指定要构建的方案
script/cibuild ReactiveCocoa-Mac ReactiveCocoa-iOS
与 bootstrap
脚本一样,有几个环境变量可以用于自定义行为。它们可以在调用脚本之前在命令行上设置,也可以直接在脚本内更改默认值。
要将脚本添加到您的项目中,请将此存储库的内容读取到 script
文件夹
$ git remote add objc-build-scripts https://github.com/jspahrsummers/objc-build-scripts.git
$ git fetch objc-build-scripts
$ git read-tree --prefix=script/ -u objc-build-scripts/master
然后提交更改,以将脚本合并到您自己的存储库历史中。您还可以根据您项目的特定需求自由调整脚本。
为了合并上游更改:
$ git fetch -p objc-build-scripts
$ git merge --ff --squash -Xsubtree=script objc-build-scripts/master