在Xcode中創建的應用程序需要一個“project(項目)”來組織必需的文件和資源。您可以通過選擇 File > New > New Project 來創建一個新的項目。Xcode將會打開一個新的工作區窗口並顯示一個對話框,來讓您選擇一個合適的項目模板。Xcode為iOS和Mac應用程序開發提供了許多常見樣式的內置模板。這些模板包含了必要的項目配置和文件,以幫助您快速啟動開發工作。
您可以在項目導航欄查看項目文件的名稱。當您在項目導航欄選中了一個文件,該文件的內容將會顯示在合適的編輯器或查看器中。下方的屏幕截圖展示了Adventure項目。在項目導航欄中選中一個實現文件(APAViewController.m),該文件內容則顯示在源碼編輯器中。
項目中存放著搭建應用程序所需的文件和資源
項目包含了搭建一個或多個應用(或者其他軟件產品,例如命令行工具以及插件)所需的元素。項目同樣還維護著這些元素之間的關系。這些元素包括了:
源代碼文件(包括相應的實現文件和頭文件)、庫和框架、圖片文件和用戶界面文件。
在項目導航器中負責組織文件架構的組文件夾(Groups)。
項目級別的應用編譯配置。
產生單個應用的對象(Targets)。
選中項目導航器中的項目名稱,則打開項目編輯器。您可以使用編輯器來確定如何編譯應用程序,從SDK版本到指定編譯器選項。在這張截圖中,我們選中了項目導航器中的Adventure項目並打開了項目編輯器,項目編輯器展示了Adventure項目的信息面板。
創建項目後,Xcode會提供兩個標准項目級的編譯配置:調試和發布。這些配置的不同之處主要在於它們是否包含調試信息,以及版本優化程度。這兩項編譯默認配置應該足以滿足您的產品開發需求。一般情況下,開發者不必更改編譯設置。
要添加更多的編譯配置項,可打開項目編輯器,復制項目現有配置中的某項配置,然後修改它的設置。例如,您可以配置一個包含調試信息的全面優化編譯設置,以便於調試優化代碼。
配置對象的應用特性設置
每個項目都至少包含一個對象(target)。一個target可指定構建的產品,比如是一個iOS或Mac應用。在項目編輯器中選中一個target來查看和修改其設置。在下面的截圖中,Adventure項目的Adventure iOS target在項目編輯器中被選中。該項目編輯器顯示了該對象的General面板。
對象的General面板顯示了一些您偶爾會檢查並可能修改的基本設置。在應用開發過程中,您通常在其他地方修改這些值,比如說,在創建一個新項目時出現的對話框中設置。
對於iOS應用來說,General面板中包含的對象設置有:
Bundle Identifier:包標識符,這是一個讓操作系統和App Store識別應用的字符串。
Version發布應用程序的版本號。
Build:內部版本號,它標識了應用程序的某個特定版本。
Team:加入了蘋果開發者計劃的開發團隊的名稱。
Deployment Target:即應用最低能夠運行的iOS版本。
Devices:能夠運行應用的設備
Main Interface:應用啟動時預加載的主用戶界面。
Devices Orientation:應用程序支持的用戶界面方向(縱向,上下顛倒,橫向左置,橫向右置)
對於Mac應用來說,General面板中包含的對象設置有:
應用類別,用來在Mac App Store中應用分類
包標識符
版本號
內部版本號
可選值,內容要麼是Mac App Store中的簽名代碼,或者是在Mac App Store外分發的某個開發者ID的簽名代碼,或者是未簽名符號。
部署對象,即應用最低能夠運行的OS X版本
OS X中用來讓用戶識別應用程序的icon
有關調試或發布應用的具體信息,請參閱Run Your App.
向對象(target)中加入蘋果提供的技術
要向應用中添加各種各樣的蘋果技術,比如說iCloud、游戲中心、應用內購買以及地圖等等,那需要在項目編輯器中選中對象,然後單擊Capabilities選項。通過打開功能的開關來向應用中添加功能。Xcode將會向您的項目中添加必要的權益(entitlements)文件,並將必要的框架鏈接到target上。在某些情況下,Xcode中可能會碰到激活功能失敗方面的問題。如果碰到此類問題的話,出錯信息將被顯示在該功能中的信息區域中。
您可以通過單擊功能名稱左邊的三角形按鈕來顯示或隱藏功能細節。當功能未激活時,該區域大致描述了該功能和激活該功能時的操作。當功能激活時,可使用該區域查看或更新相關的配置,並鑒定需要修復的問題。
有關添加功能的更多信息,請參見App Distribution Guide中Adding Capabilities一節。
向對象(target)中添加文件類型和服務信息
對象的Info面板顯示了和應用程序相關的屬性,以及應用程序能夠創建或打開的文件類型,並且對於OS X來說,還顯示了應用程序所能提供的服務。絕大多數的自定義對象屬性可在Xcode界面的其他部分進行修改(比如說在General面板中設置的包標識符、版本號以及內部版本號)。下面的截圖顯示了Adventure應用iOS對象的Info面板。
文檔類型設置指定了能夠在應用中創建和編輯的文檔類型,並且提供了可在iOS或Mac OS中展示的代表該文檔類型的自定義圖標。
您可以為應用程序添加輸出和導入UTI(統一類型標識符)來讓其能夠導入或者輸出任何文件類型。和專用於應用程序的文檔類型不同,UTI指定了某些通用的格式,比如說純文本或者.png。舉個例子,UTI支持在應用間使用剪貼板復制和粘貼。想獲得關於支持類型列表的相關信息,請參見Uniform Type Identifiers Reference.
URL類型設置允許您通過使用自定義協議為應用間交換的數據指定自定義schemas。例如一些現有的schemas,比如HTTP、mailto以及SMS。欲了解更多信息,請參閱App Programming Guide for iOS (iOS)中的Using URL Schemes to Communicate with App一節,或者參閱Launch Services Programming Guide(Mac OS)。
Mac OS應用使用出現在Services菜單上的Services項目來添加新的項目。欲了解更多信息,請參閱“Services Implementation Guide”。
給對象(target)重寫編譯設置
對象中包含了編譯應用的指令——以編譯設置和編譯階段的形式。target繼承了項目的編譯設置。雖然絕大多數開發者很少需要更改這些設置,但是您仍然可以通過在對象層面確定不同的設置項來重寫項目的所有編譯設置。在項目編輯器中選中一個對象,然後在Info、Build Settings或者Build Phases面板中修改項目設置。
使用工作區來處理關聯項目
工作區是項目的集合,它可以降低大型應用程序的復雜性。工作區具有以下幾個優點:
工作區的所有項目都可以訪問同一工作區的其他項目,包括編譯信息。
您可以設置項目之間的依賴關系,這樣一個簡單的編譯命令就可以編譯所有選中對象所需的片段。
您可以將靜態庫或模塊包含進工作區,無論是您自己的還是第三方的。
您可以將大項目分解成更小的項目,使功能維護和共享更加方便。
通過選擇 File > New > Workspace 來創建一個工作區。當創建一個工作區後,您可以在其中創建新項目,並且可以向其中添加現有項目。在創建工作區後,請打開工作區文件,而不是打開項目文件。
現有的項目轉換成工作區請選擇 File > Save As Workspace 。該項目的當前窗口將被轉換到工作區窗口。
以下屏幕截圖顯示了包含兩個Xcode項目文件的工作區示例。導航區最上方的那個項目是一個名為MySharedFramework的框架。另外一個項目文件是一個應用程序,名為UsesSharedFramework,其中包含了共享的框架。使用工作區可以讓應用項目能夠訪問共享的框架中的所有文件,同時也讓諸如調試之類的任務更加輕松。添加該框架到應用程序為應用程序和框架之間創建了一種依賴關系。Xcode在應用編譯之前檢查框架是否需要編譯。
有關工作區的更多信息,請參見Xcode Workspace、Creating a Workspace以及Adding an Existing Project to a Workspace
關閉並重新打開一個項目或工作區
要關閉一個項目或工作區,選擇 File > Close Project or File > Close Workspace 。Xcode將會記住您曾經打開過的窗口以及它們的配置情況,當你重新打開項目或工作區後則恢復這些配置。