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’。
conf¶
tools.build:verbosity
(或作为备选的tools.compilation:verbosity
)接受quiet
或verbose
,并在XcodeBuild.build()
中设置-verbose
或-quiet
标志。tools.apple:sdk_path
SDK 位置的路径,将优先于通过os.sdk
和os.sdk_version
设置组合值来设置SDKROOT
值。