2011/09/14

翻譯:Xcode的建置設定Build Active Architecture Only(Xcode Build Active Architecture Only )by Keith Harrison

文章:Xcode Build Active Architecture Only(Xcode的建置設定Build Active Architecture Only)
日期:2010.04.21,
作者:Keith Harrison
作者的部落格:Use Your Loaf

作者簡介:
任職某IT公司,下班後在iPhone上開發,以及在mac上使用Ruby on Rails。


Xcode的建置設定Build Active Architecture Only

今天在Stackoverflow上看到某個問題,讓我想起在Xcode 3.2.2裡,有些新加入的建置設定,值得在這裡說明一下。隨著iPhone/iPod Touch新型機種推出,以及iPad的加入,你可以決定要將軟體編譯成哪一種處理器架構的格式,下面的設定,都放在target info的標籤Build之下(在target上按滑鼠右鍵然後選Get Info)。

Standard (armv6)

原先的armv6架構,現在以"Standard"字樣出現,產出的二進位檔案,可在所有機種上運行,如果你的軟體還需要在iPhone OS 2.x上跑的話,你應該選擇此設定,因為,根據一些報告指出,2.x的機子跟universal binary二進位檔有點不對頭。

Optimized (armv6 armv7)

若是選"Optimized"的話,這會建置出universal或稱為"fat"的二進位檔,裡面含有armv6與armv7兩套二進位檔,顧名思義,這樣的軟體檔會比較肥大,不過,當放到armv7機種上運作時,就能充分完整地利用處理器的能力。在實務上,使用者到底能不能感受到效能的提升,取決於應用軟體需要處理的事情與運算。如果你的目標對象是OS 3.x或之後的版本,一般來說,你應該選這個項目。

Other (armv7)

如果你的對象只有iPad的話(iPhone OS 3.2),你可以手動把架構設定為armv7,這樣就不會去建置armv6的部份。

Build Active Architecture Only

到目前為止,都很容易理解,但是,有件事要注意。在target的建置設定中,在Architectures那一部分裡有個叫"Build Active Architecture Only"的設定,這會影響二進位檔的建置方式,其預設值是,若是Debug組態,此設定值會被勾選,如下:



Xcode現在會偵測你有連接的機子,根據機型來設定此項目,所以,如果你插入iPod Touch二代的話,Xcode會將active architecture設定為armv6,此時,若你用上面的Debug組態來建置,那麼只會建置出armv6的二進位檔,以節省時間(除非你的專案很大,大到感覺不到,不過,我想你多多少少都能察覺出建置所需的秒數)。

當你新增Distribution組態來發佈軟體到App Store上時,你應該要確認一下,這個選項應該是"不勾選"的狀態,這樣才會建置出肥大的universal binary,如下:



每當蘋果公司推出新機型,建置流程就變得更加複雜,花時間留意一下Xcode裡出現的新選項設定是值得的,即使大家都有共識,Xcode在隱藏細節與複雜設定這一方面,做的還不錯。

No comments:

Post a Comment