由於客戶端需要針對不同的後臺環境,提供不同的ipa安裝包,(供內測、演示和上線使用);現整理如下一套完整的打多個版本ad hoc的ipa包流程。
1、首先,給不同的渠道包確定對應的Bundle Identifier
內測: xxxxxxxxx.debug
演示: xxxxxxxxx.show
上線: xxxxxxxxx
2 、需要生成對應的Provisioning Profile文件:
a、開發者證書,(肯定是有的)
b、生成多個Identifiers (也沒啥說的)
c、生成Provisioning Profiles
唯一需要注意的是,每個profiles對應的App ID別弄錯了
生成的Provisioning Profiles:
d、最後將這些profile文件下載到本機,然後雙擊就行了。
3、配置XCode工程
3.1 、 增加Configurations,在Project的Info條目中;
系統創建的時候已經提供了debug和release版本了, 可以直接拿來用,此處只需要增加一個Show的分支。直接Duplicate一個,然後改下名字;
3.2、如果不同版本需要設置不同圖標的話,在Assets.xcassets裏面設置:
我這裏只改了應用的桌面圖標。
然後去Build Settings裏面修改不同Configuration對應的AppIcon;
3.3、 修改應用app ID
先看一下Info.plist裏面默認的參數:
Bundle identifier 、Bundle name 後面的值都是在Build Settings中配置的。改app id 和 應用名,只需要改Bundle identifier和Bundle display name就行了。(Bundle name好像沒用到,Bundler display name默認值不是引用的變量,這裏的Bundle_Name是我加的配置);
ChannelKey、GroupKey 是我自己加的,用來區分不同後臺環境的參數,後面再講怎麼用。
3.4、增加自定義渠道配置參數:
在Build Settings 工具欄最右邊的加號。點擊後會在最下面生成一欄新的數據,已經包含了3個不同Configuration分支了。只需要改參數名然後給不同的Configuration設置不同的值就行了。
3.5、裝載自定義渠道配置參數:
回到Info.plist文件中。直接在字典中加變量就行了,變量後面的值,使用 $(Param_Name) 的形式引用。
4、打包ipa的Scheme配置
入口在 Product ->Scheme->Manager Schemes
默認是有一個Sheme了,這裏點擊“+”增加兩個Sheme,先只需要寫一下Sheme的名字就可以了, 然後選中一個,點擊左下的“Edit ....”;
以-Show的渠道版本爲例,左側的Run \Test 就不改了,主要改一下Profile和Archive,選中Archive後,Build Configuration下拉菜單包含了我們設置的3中Configuration,這裏就選擇Show,Archive Name也改一下,後面再Archive的時候好區分。
同樣的方式,修改Debug分支和Release分支中的Profile 、 Archive。保證每個Sheme中的Profile、Arichive 對應不同的Configuration。
(我這裏Debug版本對應的Sheme直接用了默認的,就沒加後綴了,正式上線的sheme加了release的後綴,configuration中debug版本是加了後綴的,release版本沒加,懶得改了)
5、打包生成ipa文件
首先,需要選擇要執行的Archive Sheme,入口還在Product -> Sheme中,
勾選-show的Sheme,執行Archive。入口在 Product->Archive;
在Archive的窗口中可以發現,嘴邊的應用名稱已經是對應Configuration中配置的應用名了,點擊右邊的Export導出 ipa文件。
在導包的引導流程界面中有一步可以看到加載的Profiles對不對,
導包流程其他的步驟就不說了。
然後在選擇其他的Sheme,再執行Archive和Export,導出debug和release版本的ipa文件。
印象中好像是沒有主動設置每個Configuration對應的Profile,感覺在Archive的過程中會主動根據Bundle identifier加載了不同Profiles.