為了保證應(yīng)用新版本上線沒(méi)有大坑缆八,在應(yīng)用正式發(fā)版之前曲掰,一般都會(huì)選擇一些渠道發(fā)布灰度版本,來(lái)觀察一些測(cè)試階段不易復(fù)現(xiàn)的錯(cuò)誤奈辰。這篇文章結(jié)合「微信讀書(shū)」詳細(xì)研究了TestFlight這一灰度機(jī)制栏妖。
簡(jiǎn)介
TestFlight是經(jīng)Apple收購(gòu)后的一種灰度測(cè)試途徑译株,旨在讓開(kāi)發(fā)者在正式上架自己的app之前臀稚,能進(jìn)行充分的測(cè)試以及快速獲得用戶反饋,以改進(jìn)應(yīng)用質(zhì)量穆碎。TestFlight的官方文檔可以看這里:https://developer.apple.com/testflight/
對(duì)于開(kāi)發(fā)者
對(duì)于開(kāi)發(fā)者來(lái)說(shuō)瑟啃,要通過(guò)TestFlight對(duì)自己的app進(jìn)行灰度測(cè)試论泛,流程如下:
上傳應(yīng)用的測(cè)試build包。
這里有幾個(gè)注意點(diǎn):
對(duì)于外部測(cè)試者(External Testers)蛹屿,測(cè)試包需要經(jīng)過(guò)Apple的「Beta App Review」審核屁奏。對(duì)于內(nèi)部測(cè)試者(Internal Testers)則無(wú)此限制。有關(guān)內(nèi)部測(cè)試者和外部測(cè)試者错负,下面會(huì)講到坟瓢。
第一次提交的版本需要進(jìn)行全面的審核,審核通過(guò)后才可以邀請(qǐng)外部測(cè)試者進(jìn)行測(cè)試犹撒。之后如果有很大更新的版本才需要再次全面審核折联,小更新的版本可以不用審核。(非官方识颊,未經(jīng)確認(rèn)崭庸。Apple文檔原話是「Only the first build for the beta version requires a full review.」)
應(yīng)用的Beta版本上傳后有90天的有效期,逾期后如果沒(méi)有發(fā)布新的版本谊囚,測(cè)試者將無(wú)法運(yùn)行測(cè)試版應(yīng)用程序怕享。
發(fā)布測(cè)試版本可以包含相關(guān)指導(dǎo)信息,例如新功能镰踏,測(cè)試點(diǎn)等函筋。每當(dāng)發(fā)布新版本,相關(guān)的測(cè)試者都能通過(guò)TestFlight獲得通知奠伪。
最多同時(shí)測(cè)試100個(gè)app跌帐。
測(cè)試版本如果經(jīng)測(cè)試沒(méi)有問(wèn)題首懈,可直接提交審核上架App Store。
使用iTunes Connect添加和邀請(qǐng)測(cè)試者谨敛。
測(cè)試者分為兩類:內(nèi)部測(cè)試者(Internal Testers)和外部測(cè)試者(External Testers):
- 內(nèi)部測(cè)試者
- 內(nèi)部測(cè)試者必須是在iTunes Connect中你的Team里注冊(cè)成為Admin, App Manager, Developer, 或者M(jìn)arketer角色的成員究履。
- 每個(gè)app最多可添加25個(gè)內(nèi)部測(cè)試者。
- 每個(gè)內(nèi)部測(cè)試者可以最多有30臺(tái)測(cè)試設(shè)備脸狸。
- 內(nèi)部測(cè)試者可以訪問(wèn)可供測(cè)試的全部Beta Builds最仑。
- 外部測(cè)試者
-
可以通過(guò)郵件邀請(qǐng)外部測(cè)試者。也可仿照微信讀書(shū)的做法炊甲,在正式版本中增加一個(gè)灰度測(cè)試的入口(新發(fā)現(xiàn)微信讀書(shū)下掉了這個(gè)入口泥彤,猜測(cè)是在發(fā)新版本之前一段時(shí)間才會(huì)開(kāi)放該入口):
- 最多可邀請(qǐng)10000名外部測(cè)試者。
- 外部測(cè)試者可以訪問(wèn)開(kāi)發(fā)者對(duì)其分發(fā)的Beta Builds卿啡。
- 在iTunes Connect中可以將外部測(cè)試者分組吟吝,并對(duì)不同的組分發(fā)不同版本的Beta Builds。(這似乎可以是一種A/B Test的手段)
對(duì)于測(cè)試者
對(duì)于外部測(cè)試者來(lái)說(shuō)颈娜,想要能夠獲得測(cè)試權(quán)限剑逃,需要來(lái)自開(kāi)發(fā)者的邀請(qǐng)郵件。如果已安裝TestFlight應(yīng)用官辽,那么會(huì)在應(yīng)用內(nèi)看到可以測(cè)試的app蛹磺;如果沒(méi)有安裝,會(huì)打開(kāi)一個(gè)網(wǎng)頁(yè)野崇,提示用戶安裝TestFlight應(yīng)用称开,并提供了一個(gè)待測(cè)試app的邀請(qǐng)碼:
其他一些注意點(diǎn):
測(cè)試者可測(cè)試的app的數(shù)量是沒(méi)有限制的亩钟。
測(cè)試者可以使用iPhone乓梨, iPad, iPod touch等設(shè)備進(jìn)行測(cè)試清酥;還可以在AppleTV上測(cè)試tvOS的app扶镀。但目前不支持Mac app。
測(cè)試者安裝測(cè)試包后焰轻,可打開(kāi)TestFlight通知權(quán)限臭觉,這樣在有新的測(cè)試版本更新的時(shí)候會(huì)收到通知。
測(cè)試者設(shè)備系統(tǒng)需在iOS8以上辱志。特殊App蝠筑,例如iMessage或stickers packs需要iOS10+。
如果測(cè)試者設(shè)備上已經(jīng)安裝有該app揩懒,那么新的測(cè)試版本會(huì)覆蓋安裝原先的版本什乙。
測(cè)試app會(huì)在名字前顯示一個(gè)橘黃色的小圓點(diǎn),以示區(qū)別已球。
測(cè)試者安裝測(cè)試包后臣镣,可以在TestFlight中的應(yīng)用詳情頁(yè)看到還剩余的天數(shù)(最多90天)辅愿。過(guò)期后,測(cè)試者將不能打開(kāi)該測(cè)試app忆某。
測(cè)試者可以在TestFlight應(yīng)用內(nèi)聯(lián)系開(kāi)發(fā)者的郵箱進(jìn)行反饋点待,反饋郵件會(huì)自動(dòng)帶上設(shè)備、版本信息等弃舒。
Crash信息會(huì)自動(dòng)上報(bào)癞埠,開(kāi)發(fā)者可以很直觀地收集到crash信息。
關(guān)于IAP
Apple文檔稱棒坏,所有的IAP在測(cè)試期間是免費(fèi)的(All in-app purchases are free during the testing period.)燕差。所有在測(cè)試期間進(jìn)行的IAP購(gòu)買均不會(huì)延續(xù)到正式版本中。
但是經(jīng)實(shí)測(cè)坝冕,微信讀書(shū)直接在測(cè)試版本中關(guān)閉了IAP購(gòu)買:
TestFlight的優(yōu)點(diǎn)和缺點(diǎn)
綜上所述整理一下徒探,TestFlight具有這些優(yōu)點(diǎn):
Apple自家的官方灰度測(cè)試渠道,相比其他應(yīng)用市場(chǎng)的渠道喂窟,不再局限于越獄用戶了测暗。
通過(guò)郵箱來(lái)邀請(qǐng)測(cè)試者,不用去管理provision和UDID(主要與ad hoc對(duì)比)磨澡。
有一套完善的測(cè)試反饋和Log收集碗啄、Crash信息收集機(jī)制。
當(dāng)然也有些缺點(diǎn):
不容易找到很多忠實(shí)的測(cè)試者稳摄,不像其他越獄市場(chǎng)有大量越獄用戶為基礎(chǔ)稚字。可行的辦法是類似微信讀書(shū)一樣在正式版本開(kāi)放接口厦酬,或在用戶QQ群等地方尋找忠實(shí)用戶作為內(nèi)測(cè)用戶胆描。
測(cè)試者需要一定步驟才能開(kāi)始使用測(cè)試包,例如下載安裝TestFlight等仗阅。
需要用戶設(shè)備系統(tǒng)為iOS8以上昌讲。
灰度測(cè)試期間IAP收入問(wèn)題。