XCode 項目配置說明

初學XCode最讓人頭疼的就是項目各屬性設置,各類不解,這裏作個總結:ios

項目配置:xcode

基本項(Basic)app

一、Architectures(指令集)——設置你想支持的指令集,目前ios的指令集有如下幾種:iphone

(1)armv6,支持的機器iPhone,iPhone2,iPhone3G及對應的iTouch 2,ide

(2)armv7,支持的機器iPhone4,iPhone4S工具

(3)armv7s,支持的機器iPhone5,iPhone5C性能

(4)arm64,支持的機器:iPhone5S測試

機器對指令集的支持是向下兼容的,所以armv7的指令集是能夠運行在iphone5S的,只是效率沒那麼高而已~ui

Valid architectures : 指即將編譯的指令集。調試

Build Active Architecture Only : 是否只編譯當前適用的指令集。  

如今是2014年初,其實4和4S的用戶仍是蠻多的,而iphone3之類的機器幾乎沒有了,因此咱們的指令集最低必須基於armv7. 所以,Architecture的值選擇:armv7 armv7s arm64(選arm64時須要最低支持5.1.1,這塊不太明白)

一、若是想本身的app在各個機器都可以最高效率的運行,則須要將Build Active Architecture Only改成NO,Valid architectures選擇對應的指令集:armv7 armv7s arm64。這個會爲各個指令集編譯對應的代碼,所以最後的 ipa體積基本翻了3倍。(若是不在意app大小的話,應該這樣作)  

2,若是想讓app體積保持最小,則現階段應該選擇Valid architectures爲armv7,這樣Build Active Architecture Only選YES或NO就無所謂了。

Base SDK ----當前編譯用的SDK版本。

iPhone OS Deployment Target----指的是編譯出的程序將在哪一個系統版本上運行。

iPhone OS的版本衆多,不少用戶因爲各類各樣的緣由沒有升級到最新版,這就給咱們開發者帶了麻煩。做爲開發者,咱們都但願軟件的受衆越多越好。怎麼樣讓軟件儘可能適應最多的iPhone OS?

這裏咱們就應該瞭解iPhone項目的Base SDK和iPhone OS Deployment Target。 Base SDK指的是當前編譯用的SDK版本。iPhone OS Deployment Target指的是編譯出的程序將在哪一個系統版本上運行。

用更簡單實用的語句描述以下:

Base SDK設置爲當前xcode所支持的最高的sdk版本,好比"iphone Device 4.0"。iPhone OS Deployment Target設置爲你所支持的最低的iPhone OS版本,好比"iPhone OS 3.0"。

這樣設置以後,你的程序就能夠運行於從iPhone OS 3.0 到 4.0的設備之上。固然,前提是你沒有用到4.0新加的API。

二、Build Options:

validate Built Product:boolean 類型,指定是否執行產品驗證測試(就是說是否使用你的證書進行驗證測試)。通常在Debug版本設置成NO,release版本設置成Yes。

當你使用的證書無效時,常提示錯誤:

warning: Application failed codesign verification. The signature was invalid, contains disallowed entitlements, or it was not signed with an iPhone Distribution Certificate. (-19011)

固然你能夠設置成No,不進行驗證。

在targets》build setting》validate built Product裏面設置release爲NO,警告消失。

問題描述:在作ios開發過程當中,曾屢次撤銷過原證書,並頒發新的證書。原來使用xcode3也有什麼問題,自從使用xcode4以後(本人目前xcode 4.3.2)每次真機測試。連上真機以後,直接調試會報錯,提示錯誤問題就是證書不止一個。錯誤代碼以下:

Code Sign error: Certificate identity 'iPhone Developer:******************' appears more than once in the keychain. The codesign tool requires there only be one.

解決辦法:打開keychain(鑰匙串訪問)以後,發現多個證書,都是歷次請求的證書。把以前的證書所有都幹掉,就留下最後一次請求的證書(參考過時日期),以後再次調試能夠正常真機測試。

三、Code Signing 代碼簽名

Code Signing Identity-----代碼簽名的身份,即選擇簽名證書,一是開發證書,二是發佈證書。

開發的時候用Development,好比下模擬器,下真機測試。若是是上傳app store 上就應該用Distribution 設置的時候所有統一設置成同樣就行了。

Code signing 對你來講,最主要的意義就是它能讓你的App在設備上運行。不論是你本身的設備,甲方客戶的,仍是在App store上購買你的消費者。若是沒有code signing,你只能夠在模擬器上,或者一臺越獄過的機器上運行你的應用----固然,僅僅如此是不能知足咱們的。模擬器的測試僅僅是一種初步測試,模擬器不能替代真機調試,由於真正的設備會一般比模擬器慢。模擬器使用的是你的MAC機上的處理器,而一臺真正的iphone可遠遠沒有這種條件。因此若是你不在設備上真正運行,你可能就會忽略實際的性能問題。

四、Search Paths 查詢路徑

Always Search User Paths --- 是否搜索用戶路徑

Xcode Header Path的設置 Header Search Paths是必定會去搜索的。 而UserHeader Search Paths只有在Always Search User Paths爲Yes時纔會被搜索。

Header Search Paths (HEADER_SEARCH_PATHS) ------This is a list of paths to folders to be searched by the compilerfor included or imported header files when compiling C,Objective-C, C++, or Objective-C++ source files.

Library Search Paths (LIBRARY_SEARCH_PATHS) -------This is a list of paths to folders to be searched by the linker forstatic and dynamic libraries used by the product.

Framework Search Paths (FRAMEWORK_SEARCH_PATHS) -------This is a list of paths to folders containing frameworks to besearched by the compiler for both included or imported header fileswhen compiling C, Objective-C, C++, or Objective-C++, and by thelinker for frameworks used by the product.

Rez Search Paths (REZ_SEARCH_PATHS) ----This is a list of paths to search for files included by CarbonResource Manager resources and compiled with the Rez tool.

五、Apple LLVM5.0 -Language - ObjectC

其中,Objective-C Automatic Reference Counting 設置ObejctC 是否使用ARC技術。

該機能在 iOS 5/ Mac OS X 10.7 開始導入,利用 Xcode4.2 可使用該機能。簡單地理解ARC,就是經過指定的語法,讓編譯器(LLVM 3.0)在編譯代碼時,自動生成實例的引用計數管理部分代碼。有一點,ARC並非GC,它只是一種代碼靜態分析(Static Analyzer)工具。

相關文章
相關標籤/搜索