美文网首页
CLI编译iOS项目

CLI编译iOS项目

作者: tom__zhu | 来源:发表于2022-02-05 21:34 被阅读0次

    一直对用CLI编译工程有兴趣,趁着春节假期跟着苹果文档玩一玩。
    How do I build my projects from the command line?

    基本介绍

    xcodebuild是一个CLI工具,可以用来对iOS工程执行编译、查询工程信息、分析、执行测试用例以及打包。这个命令的作用对象有两个,一个是project中的target或是workspace中的scheme。

    一级操作对象 二级操作对象
    workspace scheme
    project target

    xcodebuild对输出结果的保存路径保持与Xcode中一致,也就是Xcode > Preferences > Locations
    这些执行任务时用的参数可以在man page中查看详细,不过这篇文档中的参数很简单,字面意思就可以理解。
    在执行xcodebuild命令前,记得先切换到你的project或是workspace目录中。

    编译workspace中的scheme

    首先可以通过下面的命令查看有哪些scheme可以执行

    xcodebuild -list -workspace <your_workspace_name>.xcworkspace
    
    xcodebuild -list -workspace <your_workspace_name>.xcworkspace

    然后选择一个需要的scheme就可以编译了

    xcodebuild -scheme <your_scheme_name> build
    

    编译project中的target

    首先查看有哪些target可以被执行

    xcodebuild -list -project <your_project_name>. xcodeproj
    
    xcodebuild -list -project <your_project_name>. xcodeproj

    然后选择一个需要的target和xcconfig就可以编译了
    xcodebuild -target pag-ios -xcconfig Debug.xcconfig build

    声明:
    xcodebuild支持build/analyze/archive指令,它们可以被用在target或是scheme,但是如果什么指令都没有被传入,那么默认只是build指令。

    构建系统#

    编译系统的组织关系

    上图展示了工程构建的管理和组织关系,workspace的构建由project和scheme管理和组织。

    • workspace 管理project
    • projects 管理工程源代码和资源
    • schemes scheme是针对target,用来指定target的构建行为(编译、运行、测试、性能诊断、分析、出包)的,target和scheme是一对多或一对一的关系。
      -action 指定构建、运行、测试、性能分析、静态分析、出包的配置以及其他环境变量。如下图


      action
    • target 描述如何构建、构建阶段编译器的参数配置以及构建规则的制定。一个project可以包含多个target,比如包含了iOS和watchOS以及extension。
    • build setting 指定构建阶段所需要的各个参数信息
    • build phase 指定构建target的任务,例如哪些源码需要加入编译、源码编译顺序、以及决定拷贝哪些文件、执行编译结束后launch前的自定义脚本等
    • build configurations 提供给各个ation指定各种变量的声明,默认情况下有debug和release两种。


      build configurations

      默认情况下,工程会有debug和release两种configuration。当然可以做增删改操作。


      action中选择build configuration
      action中选择build configuration,并针对各个不同configuration设置不同环境变量。
    • build rules 这个配置通常比较少用。他用来指定编译特定文件的规则,大多数常见文件类型都存在于默认构建规则中,当然可以自定义这些构建规则。配置构建规则时需要处理文件类型;编译器、工具或是自定义脚本;当然还有编译文件的输出位置。


      build rules
    • build configurations files(xcconfig) 配置文件也成为构建配置文件,是一个纯文本文件,用于定义项目或目标的特定构建配置的构建设置。这种类型的文件可以在 Xcode 之外进行编辑,并且可以很好地与源代码控制系统集成。

    相关文章

      网友评论

          本文标题:CLI编译iOS项目

          本文链接:https://www.haomeiwen.com/subject/fbxykrtx.html