在開發(fā)中經(jīng)常會針對不同環(huán)境打包,在一部手機(jī)上安裝Debug、Beta、AppStore等版本,每次打包的時(shí)候,都得去更改BundleID(一部手機(jī)想要安裝不同版本,更改BundelID是關(guān)鍵)、域名,如果需要打出來的包顯示不同的名字不同的圖標(biāo)呢,這種方法肯定是不可取,那怎樣才能最快的在這幾種版本之間切換打包呢,XCode給了我們Configuration、Schemes來快速切換
一、創(chuàng)建Build Configurations
默認(rèn)Xcode會提供2個(gè)Build配置項(xiàng)(Build Configuration):Debug和Release。一般來說這樣兩種情況就足夠了,但是在有些時(shí)候我們需要添加一個(gè)或多個(gè)新的配置項(xiàng),添加一個(gè)新的配置項(xiàng)的步驟如下:
1)、方式:選中PROJECT的名稱,然后選中Info,點(diǎn)擊Configurations下面的+選擇Duplicate "Debug"Configuration生成一個(gè)新Configuration,雙擊重命名configuration ,修改如下圖:



二、創(chuàng)建 User-Defined Setting
在Xcode中使用User-Defined Setting可以定義一些Xcode編譯使用的宏配置,以便我們?yōu)椴煌呐渲媚軌蚍峙洳煌陌麵D,圖標(biāo)名稱或AppID。
1、開啟User-Defined Setting,如下圖:

2、這里添加了兩個(gè):APP_BUNDLE_ID (APP Bundle ID)和APP_DISPLAY_NAME(APP的名稱)。
添加User-Defined Setting后,編輯里面每個(gè)設(shè)置構(gòu)建配置值效果如下圖:

3.App Icon 設(shè)置在Assets 中 ,右鍵如圖 . 然后把之前準(zhǔn)備好的圖標(biāo)分別拖進(jìn)去:

](http://upload-images.jianshu.io/upload_images/2641792-cb08e3aae93e28c5.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

將各版本和appIcon對應(yīng),顯示不同的圖標(biāo)

三、修改Info.plist文件
所有在上一步中定義的User-Defined Setting將在項(xiàng)目的info.plist中使用。修改info.plist,通過插入用戶自定義設(shè)置中定義的值。
Bundle identifiter(捆綁標(biāo)識符):$(APP_BUNDLE_ID)
Bundle display name(包顯示名稱):演示應(yīng)用$(APP_DISPLAY_NAME)
在這里說一下在模擬器/真機(jī)上顯示的名字是由Bundle Display Name決定的。默認(rèn)情況下Bundle Display Name就等同于Product Name,所以就造成了我認(rèn)為Product Name就是應(yīng)用顯示名的錯(cuò)覺。


四、設(shè)置Macros,這樣通過判斷當(dāng)前狀態(tài),選用不用域名


五、添加Scheme


記得選擇shared,以便同步

設(shè)置Scheme對應(yīng)的Configuration


六、設(shè)置完畢后,可選擇Scheme進(jìn)行Run,Debug,Beta編譯后進(jìn)入手機(jī)桌面,該工程將會有不同圖標(biāo)(這里沒有設(shè)置圖標(biāo)),名稱的App(
如果不想創(chuàng)建新的Scheme也可以不創(chuàng)建,自己手動切換就可以了)



