IOS 多渠道包打包方法 基於XCode8.1 AdHoc版本

由於客戶端需要針對不同的後臺環境,提供不同的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.





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章