欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

TestFlight测试踩坑

程序员文章站 2024-02-10 08:53:46
...

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可以很方便的进行,故不提供具体的步骤。
实现此功能的重点部分在于:在不要用户主动点击邮件获取邀请码的前提下,我们需要自己准备测试用邮箱,获取邮箱中的邀请码链接,汇总并分发给测试用户。测试链接的获取和管理规则是这个系统的重点难点。