全部产品
云市场

使用 SDK

更新时间:2020-03-12 09:52:00

添加 SDK 后,要将实时发布接入 iOS 客户端,还需完成以下步骤:

  1. 使用 SDK:在代码中调用 SDK 接口方法检查是否有新版本可升级。
  2. 配置灰度白名单:设置更新提示、灰度等选项。
  3. 线上发布:在 mPaaS 控制台生成 ipa 文件,并发布新版本。

操作步骤

使用 SDK

升级检测 SDK 提供检查应用是否更新的接口文件,方法头文件在 AliUpgradeCheckService.framework > Headers > MPCheckUpgradeInterface.h 文件中。

  1. typedef NS_ENUM(NSUInteger, AliUpdateType) {
  2. AliUpgradeNewVersion = 201, /*当前使用的已是最新版本*/
  3. AliUpgradeOneTime, /*客户端已有新版本,单次提醒*/
  4. AliUpgradeForceUpdate, /*客户端已有新版本,强制升级(已废弃)*/
  5. AliUpgradeEveryTime, /*客户端已有新版本,多次提醒*/
  6. AliUpgradeRejectLogin, /*限制登录(已废弃)*/
  7. AliUpgradeForceUpdateWithLogin /*客户端已有新版本,强制升级*/
  8. };
  9. /**
  10. 自定义 UI 时调用检测升级的成功回调
  11. @param upgradeInfos 升级信息
  12. @{upgradeType:202,
  13. downloadURL:@"itunes://downLoader.xxxcom/xxx",
  14. message:@"新版本更新,请升级",
  15. upgradeShortVersion:@"9.9.0",
  16. upgradeFullVersion:@"9.9.0.0000001"
  17. needClientNetType:@"4G,WIFI",
  18. userId:@"admin"
  19. }
  20. */
  21. typedef void(^AliCheckUpgradeComplete)(NSDictionary *upgradeInfos);
  22. typedef void(^AliCheckUpgradeFailure)(NSException *exception);
  23. @interface MPCheckUpgradeInterface : NSObject
  24. /**
  25. 单次提醒时的时间间隔,单位为天,默认为 3
  26. */
  27. @property(nonatomic, assign) NSTimeInterval defaultUpdateInterval;
  28. /**
  29. 修改默认弹框提示 UI 的代理
  30. */
  31. @property (nonatomic, weak) id<AliUpgradeViewDelegate> viewDelegate;
  32. /**
  33. * 初始化实例
  34. */
  35. + (instancetype)sharedService;
  36. /**
  37. 主动检查是否有更新,若有更新,使用 mPaaS 默认提示 UI 自动弹框显示
  38. *
  39. */
  40. - (void)checkNewVersion;
  41. /**
  42. 主动检查是否有更新。不会自动弹框提示,一般用于自定义 UI、检查是否有更新、提醒红点等情况
  43. @param complete 成功回调,返回升级信息字典
  44. @param failure 失败回调
  45. */
  46. - (void)checkUpgradeWith:(AliCheckUpgradeComplete)complete
  47. failure:(AliCheckUpgradeFailure)failure;
  48. @end

开发者可在应用启动完成后调用相应接口检查应用是否更新,建议在首页出现后调用,以免影响 APP 启动速度。根据展示升级提示信息的 UI 需求不同,提供以下三种调用方式:

  • 使用 mPaaS 默认弹框展示升级提示信息:

    1. - (void)checkUpgradeDefault {
    2. [[MPCheckUpgradeInterface sharedService] checkNewVersion];
    3. }
  • 在 mPaaS 默认弹框 UI 的基础上,自定义弹框图片、网络提示 toast 或网络请求组进度条等内容:

    1. - (void)checkUpgradeWithHeaderImage {
    2. MPCheckUpgradeInterface *upgradeInterface = [MPCheckUpgradeInterface sharedService];
    3. upgradeInterface.viewDelegate = self;
    4. [upgradeInterface checkNewVersion];
    5. }
    6. - (UIImage *)upgradeImageViewHeader{
    7. return APCommonUILoadImage(@"ilustration_ap_expection_alert");
    8. }
    9. - (void)showToastViewWith:(NSString *)message duration:(NSTimeInterval)timeInterval {
    10. [self showAlert:message];
    11. }
    12. - (void)showAlert:(NSString*)message {
    13. AUNoticeDialog* alertView = [[AUNoticeDialog alloc] initWithTitle:@"Information" message:message delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
    14. [alertView show];
    15. }
  • 若 mPaaS 提供的弹框样式不满足您的需求,可调用以下接口获取升级信息,自定义 UI 进行展示:

    1. - (void)checkUpgradeWIthCustomUI {
    2. [[MPCheckUpgradeInterface sharedService] checkUpgradeWith:^(NSDictionary *upgradeInfos) {
    3. [self showAlert:[upgradeInfos JSONString]];
    4. } failure:^(NSException *exception) {
    5. }];
    6. }

配置灰度白名单

要使用发布管理中的白名单灰度功能,确保服务端已获取客户端的唯一标识。客户端需要在 MPaaSInterface 的 category 中配置用户唯一标识,根据应用实际情况,在 userId 方法中返回 App 的唯一标识,例如用户名、手机号、邮箱等。

  1. @implementation MPaaSInterface (Portal)
  2. - (NSString *)userId
  3. {
  4. return @"mPaaS";
  5. }
  6. @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 控制台创建发布任务时,可选择升级模式,主要分为 3 种:

  • 单次提醒:当 mPaaS 控制台发布新版后,客户端调用一次版本升级接口,在静默周期内只弹框一次,以避免打扰用户。

    • 此升级模式适用于新版本刚上线引导用户升级的场景。
    • 默认的静默期为 3 天,即 3 天内只能提醒用户一次;若需修改此静默值,可在调用升级检测接口前设置以下属性:

      1. - (void)checkUpgradeDefault {
      2. [MPCheckUpgradeInterface sharedService].defaultUpdateInterval = 7;
      3. [[MPCheckUpgradeInterface sharedService] checkNewVersion];
      4. }
  • 多次提醒:当 mPaaS 控制台发布新版后,客户端调用一次版本升级接口,就弹框一次。此升级模式适用于新版本上线一段时间后,尽快引导用户升级到新版的场景。
  • 强制提醒:当 mPaaS 控制台发布新版后,客户端调用一次版本升级接口,就弹框一次,且无取消按钮,即不升级则不可使用 APP。此升级模式适用于下线客户端旧版本、强制用户升级到新版本的场景。

相关链接

代码示例