XcodeBuild¶
XcodeBuild
构建助手是 Xcode 命令行调用的封装。 它将抽象诸如 xcodebuild -project app.xcodeproj -configuration <config> -arch <arch> ...
之类的调用
XcodeBuild
助手可以像这样使用
from conan import conanfile
from conan.tools.apple import XcodeBuild
class App(ConanFile):
settings = "os", "arch", "compiler", "build_type"
def build(self):
xcodebuild = XcodeBuild(self)
xcodebuild.build("app.xcodeproj")
参考¶
- XcodeBuild.build(xcodeproj, target=None)¶
调用
xcodebuild
来构建 Xcode 项目。- 参数:
xcodeproj – 要构建的 xcodeproj 文件。
target – 要构建的目标,如果将此参数传递给
build()
方法,它将添加-target
参数到构建系统调用。 如果未传递,它将构建所有目标,而是传递-alltargets
参数。
- 返回值:
启动的
xcodebuild
命令的返回码。
Xcode.build()
方法在内部实现对 xcodebuild
的调用,如下所示
$ xcodebuild -project app.xcodeproj -configuration <configuration> -arch <architecture> <sdk> <verbosity> -target <target>/-alltargets
其中
configuration
是配置,通常为 *Release* 或 *Debug*,这将从settings.build_type
中获得。architecture
是构建架构,它是从settings.arch
到 Apple 定义的常见架构“i386”、“x86_64”、“armv7”、“arm64”等的映射。sdk
基于os.sdk
和os.sdk_version
的值设置,根据它们定义SDKROOT
Xcode 构建设置。 例如,设置os.sdk=iOS
和 os.sdk_version=8.3` 将会传递SDKROOT=iOS8.3
到构建系统。 如果你在 [conf] 中定义了tools.apple:sdk_path
,此值将优先,并直接传递SDKROOT=<tools.apple:sdk_path>
,所以 请注意 位于该路径中的 sdk 应该设置你的os.sdk
和os.sdk_version
设置值。verbosity
是构建的详细级别,如果由 [conf] 中的tools.build:verbosity
设置,则可以采用“verbose”或“quiet”值
配置¶
tools.build:verbosity
(或tools.compilation:verbosity
作为后备) 接受quiet
或verbose
,并在XcodeBuild.install()
中设置-verbose
或-quiet
标志tools.apple:sdk_path
sdk 位置的路径,将使用优于从os.sdk
和os.sdk_version
设置合成该值的偏好来设置SDKROOT
值。