2011-02-15 51 views
55

如何指定xcodebuild(命令行工具)是否要爲模擬器或設備構建?xcodebuild:模擬器還是設備?

+12

實際上,可執行文件是完全不同的,因此在編譯適用於x86的sim以及適用於ARM的設備時,可執行文件是完全不同的。 – 2011-02-16 00:02:34

回答

122

Xcode的建立在命令行的樣子:

xcodebuild -configuration ${BUILD_TYPE} -target ${TARGET_NAME} -arch ${CPU_ARCHITECTURE} -sdk ${SIMULATOR_OR_IOS_SDK} 

BUILD_TYPE是像「釋放」或「調試」(這些都是默認設置,你可以添加其他的項目)

TARGET_NAME是正在構建的目標的名稱(默認情況下,同一名稱的項目)

CPU_ARCHITECTURE是你正在建設,其中的CPU:

I386ARMv6的的ARMv7

使用I386爲模擬器建立,並使用任何的ARMv6或ARMv7的用於設備構建 - 注意,創建庫這是當一些其他的設備無法運行ARMv7的代碼,所以通常建立所有這些體系結構然後使用lipo將它們粘合在一起是一個好主意。

SIMULATOR_OR_IOS_SDK是你在找什麼,它是iphoneosiphonesimulator。這些值使用最新版本已安裝的XCode支持的SDK,就可以得到支持的SDK的的一個列表:

xcodebuild -showsdks 

它返回像一個列表:

Mac OS X SDKs: 
    Current Mac OS     -sdk 
    Mac OS X 10.6     -sdk macosx10.6 

iOS SDKs: 
    iOS 4.2       -sdk iphoneos4.2 

iOS Simulator SDKs: 
    Simulator - iOS 3.2    -sdk iphonesimulator3.2 
    Simulator - iOS 4.0    -sdk iphonesimulator4.0 
    Simulator - iOS 4.1    -sdk iphonesimulator4.1 
    Simulator - iOS 4.2    -sdk iphonesimulator4.2 

xcodebuild比多個標誌那些,但這些是你使用XCode設置構建屬性後通常使用的。你不必全部使用它們,但是清楚你正在構建的東西可能是一個好主意 - 否則我相信你最後的設置被使用了。

+0

我知道`-configuration`和`-target`,我只是忘記了硬件與模擬器是由SDK設置的。謝謝! – 2011-02-16 03:39:16

1

我發現-xcconfig標誌相當有用。此選項允許您指定xcconfig(構建設置文件)的路徑。在xcconfig中,您可能會使用其他xcconfig文件。