添加 SDK 后,要将实时发布接入 iOS 客户端,还需完成以下步骤:
升级检测 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 控制台配置白名单的具体步骤,请查看 实时发布 > 白名单管理。
product
目录下。bundle Id
保持一致。info.plist
中的 Production Version
保持一致。bundle Id
匹配,否则会打包失败。使用发布平台的发布管理功能,发布新版本。具体流程请参考 发布管理。
升级模式:
在 mPaaS 控制台创建发布任务时,可选择升级模式,主要分为 3 种:
- (void)checkUpgradeDefault {
[MPCheckUpgradeInterface sharedService].defaultUpdateInterval = 7;
[[MPCheckUpgradeInterface sharedService] checkNewVersion];
}
在文档使用中是否遇到以下问题
更多建议
匿名提交