全部產品
Search
文件中心

Mobile Platform as a Service:使用 SDK

更新時間:Jul 13, 2024

添加 SDK 後,要將即時發布接入 iOS 用戶端,還需完成以下步驟:

  1. 檢測新版本:在代碼中調用 SDK 介面方法檢查是否有新版本可升級。

  2. 配置灰階白名單:設定更新提示、灰階等選項。

    重要

    如果移除了 UTDID 依賴會造成時間窗灰階發布無法生效。

  3. 線上發布:在 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。此升級模式適用於下線用戶端舊版本、強制使用者升級到新版本的情境。

相關連結

程式碼範例