寫在前面:
多套 build configration 可以方便我們編譯成不同的版本垮卓,其中可以 不同bundle id 不同 Displa namey峭跳,并以此 分化功能上的差異猎唁。
常見用處:
- 調(diào)試版 可能會需要加入 Reveal SDK, 方便調(diào)試視圖 調(diào)試版可能需要需要使用測試的API接口,而正式版是不能含有此SDK误证,且使用正式版的API倔幼。
- Lite盖腿,pro 版本 功能上的分化。大部分核心功能相同但仍有部分不同
此處以我的項目為例损同。需要新建一個內(nèi)部測試版(Alpha)和一個企業(yè)版(Enterprise)翩腐,相對于正式版(release),內(nèi)部測試版需要可以使用測試API地址和新增使用自動更新功能膏燃,企業(yè)版需要新增使用自動更新功能茂卦。
版本 | 測試版地址 | 更新提示 |
---|---|---|
Release | X | X |
Debug | O | X |
Enterprise | X | O |
project 配置
-
新增build configration
這樣便新增一套配置文件 例如我自己命名為“Alpha” 和 “Enterprise”。
-
新建自定義設(shè)置項
比如第一個設(shè)置項我對應(yīng)不同版本設(shè)置了 不同的 bundle id (這樣就可以幾個版本的app 同時共存)组哩,并把設(shè)置項命名為“BUNDLE_IDENTIFIER” 等龙。
-
設(shè)置 bundle ID
如下填入 $(BUNDLE_IDENTIFIER) ,即 $(設(shè)置項名稱)伶贰。即可完成 Build Configration 中 bundle id 的差異化
其它配置項的差異化 配置方法雷同:如Display name蛛砰,info plist path,app icon黍衙。
cocoapods 配置
其實配置很簡單泥畅,只是一部分童鞋不知道語法
pod 三方庫名稱 , :configurations => [' build名稱']
代碼控制
1.1 配置cocoapods前需要先配置 project的預(yù)處理宏
1.2 Swift 不支持預(yù)處理宏 ,需要另外配置
-
代碼
宏編譯知識看這里- 友盟統(tǒng)計 區(qū)別設(shè)置渠道
#if defined(Alpha) UMConfigInstance.channelId = @"ALPHA"; #elif defined(ENTERPRISE) UMConfigInstance.channelId = @"ENTERPRISE"; #endif
- 內(nèi)部測試版 和 企業(yè)版 使用 蒲公英SDK 的更新服務(wù)
#if defined(ALPHA) || defined(ENTERPRISE) [[PgyManager sharedPgyManager] startManagerWithAppId:PGY_APP_ID]; [[PgyManager sharedPgyManager] setEnableFeedback:NO]; [[PgyManager sharedPgyManager] setShakingThreshold:3]; [[PgyManager sharedPgyManager] setThemeColor:COLOUR_RED]; [[PgyUpdateManager sharedPgyManager] startManagerWithAppId:PGY_APP_ID]; [[PgyUpdateManager sharedPgyManager] checkUpdate]; #endif
一些效果
icon 和 display name 不同