添加 SDK 後,要將即時發布接入 iOS 用戶端,還需完成以下步驟:
檢測新版本:在代碼中調用 SDK 介面方法檢查是否有新版本可升級。
配置灰階白名單:設定更新提示、灰階等選項。
重要如果移除了 UTDID 依賴會造成時間窗灰階發布無法生效。
線上發布:在 mPaaS 控制台產生 ipa 檔案,並發布新版本。
操作步驟
檢測新版本
升級檢測 SDK 提供檢查應用是否更新的介面檔案,方法標頭檔在 AliUpgradeCheckService.framework > Headers > MPCheckUpgradeInterface.h
檔案中。
typedef NS_ENUM(NSUInteger, AliUpdateType) {
AliUpgradeNewVersion = 201, /*當前使用的已是最新版本*/
AliUpgradeOneTime, /*用戶端已有新版本,單次提醒*/
AliUpgradeForceUpdate, /*用戶端已有新版本,強制升級(已廢棄)*/
AliUpgradeEveryTime, /*用戶端已有新版本,多次提醒*/
AliUpgradeRejectLogin, /*限制登入(已廢棄)*/
AliUpgradeForceUpdateWithLogin /*用戶端已有新版本,強制升級*/
};
/**
自訂 UI 時調用檢測升級的成功回調
@param upgradeInfos 升級資訊
@{upgradeType:202,
downloadURL:@"itunes://downLoader.xxxcom/xxx",
message:@"新版本更新,請升級",
upgradeShortVersion:@"9.9.0",
upgradeFullVersion:@"9.9.0.0000001"
needClientNetType:@"4G,WIFI",
userId:@"admin"
}
*/
typedef void(^AliCheckUpgradeComplete)(NSDictionary *upgradeInfos);
typedef void(^AliCheckUpgradeFailure)(NSException *exception);
@interface MPCheckUpgradeInterface : NSObject
/**
單次提醒時的時間間隔,單位為天,預設為 3
*/
@property(nonatomic, assign) NSTimeInterval defaultUpdateInterval;
/**
修改預設彈框提示 UI 的代理
*/
@property (nonatomic, weak) id<AliUpgradeViewDelegate> viewDelegate;
/**
* 初始化執行個體
*/
+ (instancetype)sharedService;
/**
主動檢查是否有更新,若有更新,使用 mPaaS 預設提示 UI 自動彈框顯示
*
*/
- (void)checkNewVersion;
/**
主動檢查是否有更新。不會自動彈框提示,一般用於自訂 UI、檢查是否有更新、提醒紅點等情況
@param complete 成功回調,返回升級資訊字典
@param failure 失敗回調
*/
- (void)checkUpgradeWith:(AliCheckUpgradeComplete)complete
failure:(AliCheckUpgradeFailure)failure;
@end
開發人員可在應用啟動完成後調用相應介面檢查應用是否更新,建議在首頁出現後調用,以免影響 App 啟動速度。根據展示升級提示資訊的 UI 需求不同,提供以下三種調用方式:
使用 mPaaS 預設彈框展示升級提示資訊:
- (void)checkUpgradeDefault { [[MPCheckUpgradeInterface sharedService] checkNewVersion]; }
在 mPaaS 預設彈框 UI 的基礎上,自訂彈框圖片、網路提示 toast 或網路請求組進度條等內容:
- (void)checkUpgradeWithHeaderImage { MPCheckUpgradeInterface *upgradeInterface = [MPCheckUpgradeInterface sharedService]; upgradeInterface.viewDelegate = self; [upgradeInterface checkNewVersion]; } - (UIImage *)upgradeImageViewHeader{ return APCommonUILoadImage(@"ilustration_ap_expection_alert"); } - (void)showToastViewWith:(NSString *)message duration:(NSTimeInterval)timeInterval { [self showAlert:message]; } - (void)showAlert:(NSString*)message { AUNoticeDialog* alertView = [[AUNoticeDialog alloc] initWithTitle:@"Information" message:message delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil, nil]; [alertView show]; }
若 mPaaS 提供的彈框樣式不滿足您的需求,可調用以下介面擷取升級資訊,自訂 UI 進行展示:
- (void)checkUpgradeWIthCustomUI { [[MPCheckUpgradeInterface sharedService] checkUpgradeWith:^(NSDictionary *upgradeInfos) { [self showAlert:[upgradeInfos JSONString]]; } failure:^(NSException *exception) { }]; }
配置灰階白名單
要使用發行管理中的白名單灰階功能,確保服務端已擷取用戶端的唯一標識。用戶端需要在 MPaaSInterface 的 category 中配置使用者唯一標識,根據應用實際情況,在 userId
方法中返回 App 的唯一標識,例如使用者名稱、手機號、郵箱等。
@implementation MPaaSInterface (Portal)
- (NSString *)userId
{
return @"mPaaS";
}
@end
mPaaS 控制台配置白名單的具體步驟,請查看 即時發布 > 白名單管理。
線上發布
產生 ipa 檔案
您可直接使用 Xcode 產生一個 ipa 安裝包:
您也可以使用 mPaaS 外掛程式提供的打包功能,產生 ipa 安裝包,此包會放在當前工程的
product
目錄下。Bundle Identifier:必須與雲端設定檔中的
bundle Id
保持一致。Bundle Version:必須與工程
info.plist
中的Production Version
保持一致。Provisioning Profile:簽名設定檔,必須與
bundle Id
匹配,否則會打包失敗。Debug:是否產生 debug 安裝包。
App Store:是否產生 App Store 發布包。
發布新版本
使用發布平台的發行管理功能,發布新版本。具體流程請參考 發行管理。
升級模式:
在 mPaaS 控制台建立發布任務時,可選擇升級模式,主要分為三種:
單次提醒:當 mPaaS 控制台發布新版後,用戶端調用一次版本升級介面,在靜默周期內只彈框一次,以避免打擾使用者。
此升級模式適用於新版本剛上線引導使用者升級的情境。
預設的靜默期為 3 天,即 3 天內只能提醒使用者一次;若需修改此靜默值,可在調用升級檢測介面前設定以下屬性:
- (void)checkUpgradeDefault { [MPCheckUpgradeInterface sharedService].defaultUpdateInterval = 7; [[MPCheckUpgradeInterface sharedService] checkNewVersion]; }
多次提醒:當 mPaaS 控制台發布新版後,用戶端調用一次版本升級介面,就彈框一次。此升級模式適用於新版本上線一段時間後,儘快引導使用者升級到新版的情境。
強制提醒:當 mPaaS 控制台發布新版後,用戶端調用一次版本升級介面,就彈框一次,且無取消按鈕,即不升級則不可使用 App。此升級模式適用於下線用戶端舊版本、強制使用者升級到新版本的情境。