刚开始接触到target/scheme/project/workspace这几个概念,可能会感觉有点晕。经过研究之后,我自己的理解如下:
worksspace类似一个容器,里面有好多project和project相关的文档;默认情况下,一个workspace的所有project共享一个build的路径。
project也是一个容器,是源代码文件的容器,也可以在project里,定义多个target,每个target都可以是一个产品或者一个库,一个target也可以依赖另外一个target,根据依赖关系,决定编译顺序。
可以通过以下命令查看一个项目有哪些target和scheme:
xcodebuild -list -project MyProject.xcodeproj
build 一个project命令如下:
xcodebuild -project <project-name>
target就是第一个编译的目标,可以是一个产品,也可以是一个库。build一个target的命令如下:
xcodebuild -target <target_name>
scheme是一个容器,是一个target的集合,可以通过以下命令查看一个workspace有多少个scheme。
xcodebuild -list -workspace myapp.xcworkspace
build 一个scehme的命令如下:
xcodebuild -scheme <scheme_name> build
參考:
https://developer.apple.com/library/archive/technotes/tn2339/_index.html