iOS实现灰度发布App

TestFlight

TestFlight 是一款在 2014 年被苹果收购的 iOS 测试工具。

开发者可以通过 TestFlight 来邀请用户协助测试 App,待 App 完善之后,再提交正式版到 App Store,这对于开发者和用户来说都是有益处的。

2018 年 9 月 26 日,支持通过 App Store Connect 生成一个公开的链接,邀请 TestFlight 测试者。

TestFlight 的限制和特点:

  • 需要运行在 iOS8 及以上版本的设备上
  • 需要安装 TestFlight App
  • 有效时间(90天)
  • 测试人员有最大上限(最多10000)
  • TestFlight版本,可以提交反馈
  • TestFlight版本,需要审核(1天左右)
  • TestFlight版本,可以生成公开链接(https://testflight.apple.com/join/xxxxxx
  • TestFlight版本,可以修改公开链接直接跳转 TestFlight 安装 App(itms-beta://testflight.apple.com/join/xxxxxx

1. 如何安装 Beta 版 App?

  1. 在要用于测试的 iOS 设备上安装 TestFlight。
  2. 在 iOS 设备上打开您的邀请电子邮件或轻点公开链接。
  3. 轻点 View in TestFlight(在 TestFlight 中查看)或 Start Testing(开始测试);或者,针对您想要测试的 App 轻点 Accept(接受)、Install(安装)或 Update(更新)。

2. 如何判断是否已经安装了 TestFlight ?

通常我们会用 UIApplicationcanOpenURL: 方法判断其他 App 是否安装。

iOS9 限制了 openURL:canOpenURL: 方法的使用,如果我们要调起第三方 App,需要在 Info.plistLSApplicationQueriesSchemes Key 中添加相应 App 的 Scheme 才行,且添加的 Scheme 个数不能超过 50 个。

// iOS 原生代码
// 通过itms-bata://来判断TestFlight是否安装
NSString *customAppString = @"itms-beta://";
if ([[UIApplication sharedApplication] canOpenURL:customAppURL]) {
    // TestFlight 已经安装
} else {
    // TestFlight 没有安装
}

3. 如何实现点击 App 内邀请按钮,跳转 TestFlight 安装 Beta 版 App ?

虽然有了TestFlight公开链接,大大减少了以往TestFlight安装App的复杂度,但是还是不够简化,我们要做的是通过在App内,给灰度用户一个提示框,用户点击之后跳转TestFlight直接安装App。

1、进入 App Store Content ,输入 Apple 开发者账号登录。
2、登录成功之后,选择"我的 App",进入 App 列表。(如果没有 App,需要创建 App)
3、选择"TestFlight",“新群组”,“构建版本”,“选择要测试的构建版本”,“测试信息”,提交审核。
4、审核通过之后,选择“开启链接”,将“https”替换成“itms-beta”即可。

TestFlight 公开链接】 转 【TestFlight 安装链接

// TestFlight 公开链接
https://testflight.apple.com/join/xxxxxx

// TestFlight 安装链接
itms-beta://testflight.apple.com/join/xxxxxx

iOS 跳转 TestFlight 实现

// iOS 原生代码
NSString *customAppString = @"itms-beta://";
if ([[UIApplication sharedApplication] canOpenURL:customAppURL]) {
    // TestFlight 已经安装,打开TestFlight安装App页面
    customAppString = @"itms-beta://testflight.apple.com/join/xxxxxx";
} else {
    // TestFlight 没有安装,打开AppStore安装TestFlight页面
    customAppString = @"https://itunes.apple.com/cn/app/testflight/id899247664?mt=8";
}
NSURL *customAppURL = [NSURL URLWithString:customAppString];
[[UIApplication sharedApplication] openURL:customAppURL 
                                       options:@{} 
                             completionHandler:nil];

4.实现发起灰度发布邀请

前台:
邀请弹框
  1. 检测用户是否为灰度用户
  2. 检测灰度版本是否忽略
  3. 检测灰度版本是否可用(多个条取最高版本)
// 前端页面 JavaScript 部分代码
// 点击下载灰度App
// 说明:
// Android链接:http://darendian.showjoy.com/appgray/xxxxxx.apk
// iOS链接:itms-beta://testflight.apple.com/join/xxxxxx
clickPublicBetaBtn() {
    const self = this;
    if (self.isWeb) {
        shopModal.toast({ message: '请在App内打开' });
        return;
    }
    const downloadURL = self.isIOS ? self.betaData.iOS : self.betaData.android;
    if (self.isAndroid) {
        // weex Android接口(打开系统浏览器)
        shopBase.openBrowser(downloadURL);
    } else {
        // weex iOS接口(调用openURL)
        shopBase.openApp(downloadURL);
    }
},
后台:

后台配置邀请信息,下载链接,目标用户,以及灰度App版本号,配置多项目时,取最高的App版本,且高版本灰度App包含低版本的所有内容。

配置平台
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,444评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,421评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,036评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,363评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,460评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,502评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,511评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,280评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,736评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,014评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,190评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,848评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,531评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,159评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,411评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,067评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,078评论 2 352

推荐阅读更多精彩内容