怎么通過 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!