xcodeBuild 用例

  • 官方主页
  • OS X Man Pages\Xcode Tools

怎么通过 Command line来创建我的工程?

xcodebuilds 是一个Command line工具,允许开发者通过它建立,分析,测试,和在工程或者工作区来 存档操作(archive operations)。他能管理在工程里一个或者多个目标(targets),或者管理工程或工作区的方案(scheme)。在以下页面里,介绍了xcodebuild提供了多个这只来管理这些操作。xcodebuild在本地应用上默认的保存了输出命令。

以下是各种xcodebuild的用法。在运行任何以下命令前,要保证导航中包含了你的项目或者工作区文件。(根目录下使用)

  • 打印所有的目标(targets),生成配置(configurations),和工程中使用的方案(schemes),在终端运行以下命令
xcodebuild -list -project .xcodeproj
xcodebuild -list -workspace .YKTicketsApp.xcworkspace
  • 项目运行一个方案(scheme)
xcodebuild -scheme  build

注意:xcodebuild提供了多个生成事件,如建立(build),分析(analyze)和存档(archive),这个事件都可以执行在你的目标(target)或者方案里(scheme)。但是,生成(build)会被执行在默认配置下,当没有特定的事件执行。

  • 使用配置文件来生成目标
xcodebuild -target  -xcconfig .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 用例_第1张图片
设置默认配置

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 [ | ] 建立一个项目或者工作区对指定的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!

你可能感兴趣的:(xcodeBuild 用例)