Project:包含了項(xiàng)目所有的代碼,資源文件,所有信息。
Target:對(duì)指定代碼和資源文件的具體構(gòu)建方式。
Scheme:對(duì)指定Target的環(huán)境配置。
不同項(xiàng)目,不同的需求,不同的場景。我們可以同過多Target配置,解決同一份代碼對(duì)應(yīng)不同APP的需求。多Scheme配置,可以解決同一個(gè)APP在不同場景下運(yùn)行,比如debug,release等。Scheme+xcconfig配置,通過文件形式進(jìn)行APP的配置,達(dá)到解耦作用。下面是一些操作案例:
多Target配置:
創(chuàng)建一個(gè)新的Target后,所需修改的地方

Target-圖1.jpg

Target-圖2.jpg

Target-圖3.jpg
使用場景:
首先通過不同的Target我們可以用同一套代碼,創(chuàng)建不同的AppIcon,不同的Bundle identifier,等其它不同的配置,如下圖
圖一.jpg

圖二.jpg

圖三.jpg
我們也可以使用宏判斷:

宏-圖1.jpg

宏-圖2.jpg

宏-圖3.jpg

宏-圖4.jpg
多Scheme配置:
新建Configurations.jpg

新建Configurations.jpg

新建Scheme-圖1.jpg

新建Scheme-圖2.jpg

修改Scheme配置.jpg

配置不同環(huán)境的鏈接.jpg

綁定到info.plist上.jpg

效果圖1.jpg

效果圖2.jpg
Scheme + XConfig配置
首先我們在工程中創(chuàng)建一個(gè)Config文件夾,里面創(chuàng)建2個(gè)想xcconfig文件,然后去PROJECT --> Info --> configurations 中根據(jù)不同環(huán)境關(guān)聯(lián)不同xcconfig文件。這里的xcconfig和Pods生成的文件一樣。
xcconfig命名規(guī)則可以是 文件名+項(xiàng)目名+環(huán)境名

創(chuàng)建Xconfig并關(guān)聯(lián).jpg
這一步可以操作,也可以不操作。直接進(jìn)demoThree里面切換環(huán)境,這里方便演示創(chuàng)建2個(gè)不同環(huán)境。

創(chuàng)建不同Scheme.jpg

修改Scheme配置.jpg

綁定到info.plist上.jpg
在不同Scheme下運(yùn)行的結(jié)果:(報(bào)錯(cuò)是找不到AFNetworkingAA,注釋就可以)

運(yùn)行結(jié)果.jpg
查看Build Settings我們可以知道,通過xcconfig可以修改Build Settings中的配置。
查找Build Settings里面配置縮寫的網(wǎng)址:https://xcodebuildsettings.com/

圖1.jpg

圖2.jpg
最后項(xiàng)目中是使用Pods管理三方庫的話,這里新增的xcconfig會(huì)和Pods里面的xcconfig產(chǎn)生沖突。解決方法是,在新增的xcconfig里面用#include引入Pods的xcconfig文件
#include "/Users/XXX/Desktop/XXX/Pods/Target\ Support\ Files/XXX/Pods-DIAgent.debug.xcconfig"