TestFlight的测试方式分为两种:
一种是内部测试;
一种是外部测试。
从功能上讲,这两种方式都可以为测试人员在测试阶段对你的App进行测试。但是既然分了内部测试和外部测试,他们肯定还是有区别的,所谓的内部主要是指iTunes Connect上在你的开发团队里参与技术开发或者管理的成员。最多可以邀请25个内部成员,而与之相对的外部测试,指的是那些不属于你的团队或者公司的测试者,外部测试人员的上限是10000人。这里有一点需要注意的是,在你邀请外部成员参与测试之前,需要先通过苹果的审核,一般审核会在一天左右。而这一限制在内部成员上就没有,也就是说只要你把你的App上传到iTunes Connect上之后内部成员就可以开始进行内部测试了,无需审核。在邀请发出后,有效测试时间为60天。
APP内部跳转邀请参加内部测试的实现流程:
1.邀请用户参加内部测试用户
2.点击后进行判断,如果已安装TestFlight,则直接只用scheme打开连接;如果用户没有安装,则连接定位到AppStore的TestFlight下载页面。(这一步是必须进行的,没有TestFlight无法完成后面的流程)。
//通过itms-bata:// 来判断TestFlight是否安装
NSURL *customAppURL = [NSURL URLWithString:@"itms-beta://"];
if ([[UIApplication sharedApplication] canOpenURL:customAppURL]) {
// TestFlight 已经安装
// Special link that includes the app's Apple ID
// https://beta.itunes.apple.com/v1/invite/some_key
customAppURL = [NSURL URLWithString:@"https://beta.itunes.apple.com/v1/invite/d255efaec0a54ce7a03ac173dd0dfec767869fdf64414b76aba90bbf976da2ec4a59a353?ct=3BH2YRLSPK&advp=10000&platform=ios"];
[[UIApplication sharedApplication] openURL:customAppURL options:@{} completionHandler:nil];
} else {
// TestFlight 没有安装,打开AppStore的TestFlight下载页面
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"https://itunes.apple.com/cn/app/testflight/id899247664?mt=8"] options:@{} completionHandler:nil];
}
安装TestFlight后,点击连接可以跳转到测试App的安装页面,点击安装即可下载内测版本app。
这里面有一点需要注意的是,外部测试的邀请需要邀请码。在itunesConnect中,添加外部测试人员必须要填写有效邮箱,而后会把一个带有邀请码的邮件发到指定邮箱,邮箱里面有一个链接。打开连接后会出现邀请码。
正常流程是赋值邀请码,在TestFlight中输入获取app,
经过测试点击邮件里面的url,可以直接访问到TestFlight的测试App的页面,点击即可下载,免去输入邀请码的步骤,所以在代码中给出了邮件中的url。
ps:
发布测试APP的流程步骤较多,在itunesConnect可以很方便的进行,故不提供具体的步骤。
实现此功能的重点部分在于:在不要用户主动点击邮件获取邀请码的前提下,我们需要自己准备测试用邮箱,获取邮箱中的邀请码链接,汇总并分发给测试用户。测试链接的获取和管理规则是这个系统的重点难点。