概念
-
workspace(工作區)
workspace是一個文檔,用于對 projcet和其他文檔進行分組,以便可以一起處理它們。workspace可以包含任意數量的 projcet,以及任何其他要包含的文件。除了組織每個 projcet中的所有文件之外,工作區還提供所包含 projcet及其 target之間的隱式和顯式關系。
-
project(項目)
project是構建一個或多個 product所需的所有文件、資源和信息的存儲庫。project包含用于構建 product的所有元素,并維護這些元素之間的關系。它包含一個或多個 target,這些 target指定如何生成 product。project為 project中的所有 target定義默認 build settings(每個 target還可以指定自己的 build settings,這些 build settings將覆蓋 project生成的 build settings)。
-
target(目標)
target指定要生成的 product,并包含從 project或 workspace中的一組文件構建 product的說明。target定義單個 product;它將輸入組織到構建 product所需的構建系統(源文件和處理這些源文件的說明)中。project可以包含一個或多個 target,每個 target生成一個 product。
product(軟件產品)
-
build settings(生成設置)
build settings是一個變量,其中包含有關如何執行product生成過程的特定方面的信息。例如,build settings中的信息可以指定 Xcode 傳遞給編譯器的選項。
-
scheme(方案)
scheme定義了要生成的 target集合、生成時要使用的 build settings以及要執行的測試集合。
配置
配置設計
環境變量
工程環境配置中涉及到的變量主要有:
-
log打印
打印
不打印
-
服務器環境
測試環境
正式環境
-
推送環境
調試環境
線上環境
-
證書&&描述文件
開發證書&&開發描述文件
發布證書&&臨時描述文件
發布證書&&發布描述文件
工程環境
考慮到開發調試、測試(使用testflight)、發布的需求,故設計三種工程環境:
-
debug調試環境
debug調試環境提供給開發人員開發調試使用。
-
test測試環境
test測試環境用來給測試人員打測試包。
-
release發布環境
release發布環境用來發布。
工程環境、環境變量
工程環境及環境變量關系:
工程環境 | log打印 | 服務器環境 | 推送環境 | 證書&&描述文件 |
---|---|---|---|---|
debug | 打印 | 測試環境 | 調試環境 | 開發證書&&開發描述文件 |
test | 不打印 | 測試環境 | 調試環境 | 發布證書&&發布描述文件 |
release | 不打印 | 正式環境 | 線上環境 | 發布證書&&發布描述文件 |
配置實踐
工程環境編輯
porject->info->configurations
環境變量控制定義
targets->build settings->preprocessor macros
環境變量定義
#ifdef DEBUG
#define PSLog(fmt, ...) NSLog((@"%s [Line %d]" fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__);
#else
#define PSLog(...)
#endif
#pragma mark -服務器配置
#ifdef NETWORK_TEST
#define PSDomain @""
#else
#define PSDomain @""
#endif