怎么通过 Command line来创建我的工程?
xcodebuilds 是一个Command line工具,允许开发者通过它建立,分析,测试,和在工程或者工作区来 存档操作(archive operations)。他能管理在工程里一个或者多个目标(targets),或者管理工程或工作区的方案(scheme)。在以下页面里,介绍了xcodebuild提供了多个这只来管理这些操作。xcodebuild在本地应用上默认的保存了输出命令。
以下是各种xcodebuild的用法。在运行任何以下命令前,要保证导航中包含了你的项目或者工作区文件。(根目录下使用)
- 打印所有的目标(targets),生成配置(configurations),和工程中使用的方案(schemes),在终端运行以下命令
xcodebuild -list -project <your_project_name>.xcodeproj
xcodebuild -list -workspace <your_project_name>.YKTicketsApp.xcworkspace
- 项目运行一个方案(scheme)
xcodebuild -scheme <your_scheme_name> build
注意:xcodebuild提供了多个生成事件,如建立(build),分析(analyze)和存档(archive),这个事件都可以执行在你的目标(target)或者方案里(scheme)。但是,生成(build)会被执行在默认配置下,当没有特定的事件执行。
- 使用配置文件来生成目标
xcodebuild -target <your_target_name> -xcconfig <your_configuration_file>.xcconfig
your_target_name 目标名称
your_configuration_file 配置文件名称
- 使用xcodebuild命令来改变输出路径,使用SYMROOT(生成产品路径)和DSTROOT (安装生成产品本地)生成设置来分别为测试包和
.dSYM
文件和生产包定义路径。
//例1:Setting up a location for MyiOSApp's debug version
$ xcodebuild -scheme MyiOSApp SYMROOT="/Users/username/DebugLocation"
Build settings from command line:
SYMROOT = "/Users/username/DebugLocation"
.
//例2:Setting up a location for MyiOSApp's archive
$ xcodebuild -scheme MyiOSApp DSTROOT="/Users/username/ReleaseLocation" archive
Build settings from command line:
DSTROOT = /Users/username/ReleaseLocation
应用存在多个配置。怎么为xcodebuild设置一个默认的生成配置。
在xcode,项目中的配置都在配置菜单里,可以在菜单上这选一个默认配置以供xcodebuild来构建目标。使用这个菜单选一个默认配置如下图
设置默认配置
xcodebuild
BSD一般命令手册
名称(NAME)
xcodebuild -- 生成Xcode的项目和工作区
简介(SYNOPSIS)
xcodebuild [-project projectname] [-target targetname ...][-configuration configurationname]
[-sdk [sdkfullpath | sdkname]] [buildaction ...] [setting=value ...] [-userdefault=value ...]
xcodebuild [-project projectname] -scheme schemename [-destination destinationspecifier]
[-destination-timeout value] [-configuration configurationname] [-sdk [sdkfullpath | sdkname]]
[buildaction ...] [setting=value ...] [-userdefault=value ...]
xcodebuild -workspace workspacename -scheme schemename [-destination destinationspecifier]
[-destination-timeout value] [-configuration configurationname] [-sdk [sdkfullpath | sdkname]]
[buildaction ...] [setting=value ...] [-userdefault=value ...]
xcodebuild -version [-sdk [sdkfullpath | sdkname]] [infoitem]
xcodebuild -showsdks
xcodebuild -list [-project projectname | -workspace workspacename]
xcodebuild -exportArchive -exportFormat format -archivePath xcarchivepath -exportPath destination path
[-exportProvisioningProfile profilename] [-exportSigningIdentity identityname]
[-exportInstallerIdentity identityname]
选项(Options)
-
-project
projectname
明确规定根据工程名建立工程,需要的,如果有多个项目文件
同一目录。 -
-target
targetname
明确规定根据目标名建立目标 - -alltargets 建立所有的目标在明确规定的项目里
-
-workspace
workspacename
明确规定根据工作区名建立工作区 -
-scheme
schemename
明确规定根据方案名建立方案,需要的,如果建立一个工作区 -
-destination
destinationspecifier
使用指定机型,默认一个指定来兼容选定的方案 -
-destination-timeout
timeout
当搜索一个目的设备,明确规定超时时间,默认是30秒 -
-configuration
configurationname
当建立每个目标,明确规定使用的配置 -
-arch
architecture
当建立每个目标,明确规定使用的架构 -
-sdk
[<sdkfullpath> | <sdkname>]
建立一个项目或者工作区对指定的SDK,以建立适合SDK工具。参数可以是一个SDK的绝对路径,或规范名称的SDK。 -
-showsdks 显示所有可以在Xcode使用的SDKs,包括规范的名称适用于
- SDK
。不触发运行。 - -list 打印工程或者在工作区里的方案的目标(targets),不触发运行。
-
-derivedDataPath
path
当在工作区里操作运行时间,重写的文件夹,为导出数据使用。 -
-resultBundlePath
path
在工作区里执行建立事件,写一个Bundle为结果指定路径 -
-exportArchive 指定存档(archive)输出。需要
-exportFormat
,-archivePath
, 和-exportPath
. 不能只通过一个Build操作 -
-exportFormat
format
指定输出格式,有效的格式是IPA (iOS archives only),PKG (Mac archives only), 和应用。如果没有指定,xcodebuild将尝试自动检测格式为IPA或PKG。 -
-archivePath
xcarchivepath
指定路径为存档产品(archive)为存档操作,或者指定输入(当-exportArchive
没有使用) -
-exportPath
destinationpath
为输出蟾皮你指定输出路径,路径要包含名称 -
-exportProvisioningProfile
profilename
当输出存档,指定要使用的provisioning profile
-
-exportSigningIdentity
identityname
当输出存档,指定要使用签名ID,如果可以,加上-exportProvisioningProfile.
-
-exportInstallerIdentity
identity name
当输出存档,指定要使用安装程序签名ID,如果可以,加上-exportSigningIdentity or -exportProvisioningProfile
- -exportWithOriginalSigningIdentity 当输出一个存档,指定使用签名ID来创建存档
- buildaction ... 在目标上指定创建事件来执行,允许的事件为
- build,在(SYMROOT)路径下建立目标,这是默认事件
- analyze,在(SYMROOT)路径下分析目标或者方案,这需要指定一个方案。
- archive,在(SYMROOT)路径下存档方案,这需要指定方案
- test,在(SYMROOT)路径下测试方案 ,这个需要指定一个方案和任意一个目标设备
- installers,拷贝工程源到源路径(SYMROOT)
- install,建立目标和安装他到目标字典到目标源上(DSTROOT).
- clean,清除在建立源(SYMROOT)的项目和相关文件。
-
-xcconfig
filename
当运行所有目标,加载这个参数的运行设置。这些设置将覆盖所有其他设置,包括在命令行上单独设置。 - -dry-run, -n 打印将被执行的命令,但是不执行他们
-
-skipUnavailableActions 跳过不能执行的操作,并且不会失败。这个设置仅授权没有设置
-scheme
-
setting=value
设置建立的设置 setting to value. - -userdefault=value 设置用户默认 default to value.
-
-version 显示xcode版本信息。不会触发建立。当和
-sdk
使用在配置里,将会显示SDK的版本或者所有的SKDs,当有-sdk
参数。另外,一个简单的版本信息应该返回指定的infoitem - -usage 显示xcodebuild的惯例(usage)信息
例子(EXAMPLES)
-
xcodebuild clean install
清除建立字典。 -
xcodebuild -target MyTarget OBJROOT=/Build/MyProj/Obj.root SYMROOT=/Build/MyProj/Sym.root
-
xcodebuild -sdk macosx10.6
-
xcodebuild -workspace MyWorkspace.xcworkspace -scheme MyScheme
-
xcodebuild -workspace MyWorkspace.xcworkspace -scheme MyScheme archive
-
xcodebuild -workspace MyWorkspace.xcworkspace -scheme MyScheme -destination 'platform=OS X,arch=x86_64' test
-
xcodebuild -workspace MyWorkspace.xcworkspace -scheme MyScheme -destination 'platform=iOS Simulator,name=iPhone' -destination 'platform=iOS,name=My iPad' test
-
xcodebuild -workspace MyWorkspace.xcworkspace -scheme MyScheme -destination generic/platform=iOS build
-
xcodebuild -exportArchive -exportFormat IPA -archivePath MyMobileApp.xcarchive -exportPath MyMobileApp.ipa -exportProvisioningProfile 'MyMobileApp Distribution Profile'
-
xcodebuild -exportArchive -exportFormat APP -archivePath MyMacApp.xcarchive -exportPath MyMacApp.pkg -exportSigningIdentity 'Developer ID Application: My Team'
That's all,thanks!
网友评论