-
Project
: 包含了項目所有的代碼,資源文件,所有信息。 -
Target
:對指定代碼和資源文件的具體構(gòu)建方式。 -
Scheme
:對指定Target的環(huán)境配置。
多環(huán)境配置的三種方式:
- 多tagert模擬多環(huán)境配置
- 會生成多個 info.plist文件,配置繁瑣,容易出錯
- 多 scheme + 多 configuration(Debug、Beta、Release)
- 多 scheme + xcconfig文件配置 (
推薦使用
)- 通過把配置寫到對應(yīng)的文件,管理起來更加清晰
多Target配置
- 選中一個
Target
,右擊,復(fù)制一個Target
image
復(fù)制之后,會多出來一個Target
和對應(yīng)的info.plist文件
image - 修改
Target
和info.plist文件
,對應(yīng)的Build Settings—> Packaging—>Info.plist File
也需要寫成修改后的名稱,否則編譯器會報錯
image - 修改完成后,就可以通過
Scheme
選擇不同的 Target編譯運行
image
image
多 scheme + 多 configuration
-
創(chuàng)建
Beta
configuration
image -
新建兩個 Scheme,分別命名為
Debug
、Beta
image 給
Scheme
設(shè)置對應(yīng)的configuration
-
創(chuàng)建自定義參數(shù)
HOST_URL
image -
在info.plist文件中添加
HOST_URL
參數(shù)
image 通過讀取
Info.list
就可以得到 相應(yīng)的HOST_URL
NSString *path = [NSBundle.mainBundle pathForResource:@"Info" ofType:@"plist"];
NSDictionary *infoDic = [[NSDictionary alloc] initWithContentsOfFile:path];
NSLog(@"====%@", infoDic[@"HOST_URL"]);
image
image
多 scheme + xcconfig文件配置
通過下圖發(fā)現(xiàn),pod
就是通過 xcconfig文件
進(jìn)行配置的
image
-
創(chuàng)建自己的
xcconfig文件
, 注意保存的名稱Config-LoginApp.debug.xcconfig
,參考pod命名規(guī)則,文件名 - app名 . 環(huán)境 .xcconfig
image
image 在
xcconfig文件
中自定義參數(shù)HOST_URL
,以鍵值對形式設(shè)置
HOST_URL = www.debug.com
image
-
在info.plist文件中添加
HOST_URL
參數(shù)
image 通過讀取
Info.list
就可以得到 相應(yīng)的HOST_URL
NSString *path = [NSBundle.mainBundle pathForResource:@"Info" ofType:@"plist"];
NSDictionary *infoDic = [[NSDictionary alloc] initWithContentsOfFile:path];
NSLog(@"====%@", infoDic[@"HOST_URL"]);
image
-
xcconfig
還可以修改Target
中的設(shè)置,下列以Other Linker Flags
舉例
HOST_URL = www.debug.com
// OTHER_LDFLAGS 是 Other Linker Flags 的縮寫
OTHER_LDFLAGS = -framework "AFNetworking"
image
【注意】
Xcode Build Settings
更多縮寫內(nèi)容,可以通過這個網(wǎng)址查詢地址
xcconfig文件沖突解決
使用自己的 xcconfig文件,運行pod install
時,報錯如下:
image
-
通過
#include
引入其他 xcconfig文件
image -
通過
#include
導(dǎo)入的其他xcconfig文件,設(shè)置了一個配置,在自定義的xcconfig設(shè)置該配置,會覆蓋導(dǎo)入的其他xcconfig文件的配置,此時需要添加$(inherited)
(代表繼承)
image