一.背景
現階段大部分公司在測試和回歸期間都是習慣使用測試包,等測試回歸沒問題了,才打正式發布包發布,由於測試包和發布包在打包時間點和打包過程上存在差異,所以特別容易出現發布包和回歸測試的測試包不一致的情況。使用自動化打包,如果打包腳本出現問題,更容易出現這種情況。
二.解決方案
所幸的是,蘋果在iOS8之后推出了TestFlight,使我們在提交前可以安裝發布包進行測試,所以我們可以把測試周期拆分
測試周期拆分:回歸階段開始前、回歸階段開始后
回歸階段開始前:主測普通測試包
回歸階段開始后:通過TestFlight 內外部測試主測Release包
三.TestFlight使用
- 首先它的出現是在iOS8的時候,在Xcode 6和iOS 8上公開發行,它被整合到了iTunes Connect,你可以通過電子郵件的形式來邀請你的Beta測試成員。
- TestFlight的測試方式分為兩種,一種是內部測試,一種是外部測試。
- 內部測試:最多可以邀請25個內部成員,成員需要在iTunes Connect里添加,構建版本無需審核,上傳build成功后即可發送測試邀請郵件。
- 外部測試:外部測試人員的上限是2000人,構建版本需要 Beta 版 App 審核部門的批准,一般審核時間為一天左右。審核成功后才可發送外部測試邀請郵件。
如下圖:
- 使用步驟:
(1)上傳構建版本到iTunes Connect
(2)發送 TestFlight 內部測試邀請,外部測試提交審核
(3)安裝TestFlight這個app,先到AppStore上搜索 TestFlight下載,使用你的Apple ID登錄,然后在手機打開你的郵箱,找到測試邀請郵件,然后點擊 Start Testing 按鈕,這個時候會直接跳轉到你的TestFlight上,最后點擊INSTALL進行下載。如圖:
TestFlight提供的管理辦法是將測試者分為內部成員和外部成員。理論上說,這兩種測試者都可以在測試階段使用你的App,不過所謂的內部主要是指iTunes Connect上在你的開發團隊里參與技術開發或者管理的成員。你最多可以邀請25個內部成員,而與之相對的外部成員,自然就是指那些不屬於你的團隊或者公司的測試者,外部測試人員的上限是2000人。這里有一點需要注意的是,在你邀請外部成員參與測試之前,需要先通過蘋果的審核。而這一限制在內部成員上就沒有,也就是說一旦你把你的App上傳到iTunes Connect上之后內部成員就可以開始進行測試了,無需審核。
准備工作
- 待測試的 ipa 包(用Application Loader上傳)或者是 xcarchive (用Xcode Upload to App Store)文件(需要上傳到 iTunes Connect );
- 到 App Store 下載安裝軟件 TestFlight;
步驟
- 將打包好的 ipa 或 xcarchive 文件上傳到 iTunes Connect;
- 登錄到 iTunes Connect 進入我的APP,選擇你的APP;
-
到 TestFlight 模塊下,如果 App Store 有提交過的版本,內部測試員就可以了,我們只需要添加內部測試員用戶即可,如圖:
TestFlight模塊.jpeg -
添加內部測試員(即添加iTunes Connect 用戶),如圖:
添加內部測試員.jpeg
添加成功.jpeg -
接下來坐等收郵件,就是剛剛添加的那個用戶郵箱,會收到郵件,如圖:
郵件.jpeg -
點擊 View in TestFlight 獲取邀請碼,如圖:
邀請碼.jpeg - 接下來打開之前下載的 TestFlight 軟件,輸入邀請碼即可,接下來就可以安裝之前構建的版本和 App Store 的歷史版本。(每個版本都有90天的有效期,時間是從你的構建版本上傳到 iTunes Connect 算起)
注意:每一個邀請碼對應一個 Apple ID ,在 TestFlight 軟件中無需收輸入Apple ID(其實也沒法輸入),它會自動獲取當前設備登錄的 Apple ID ,如果此邀請碼已經被激活(就是已綁定 Apple ID ),則無法在不同的 Apple ID 下使用了(如果多台設備都登錄的是已綁定的 Apple ID 則不會出現此問題)。不過還有一種方法就是在不同的設備登錄邀請碼綁定的 Apple ID ,這樣直接打開 TestFlight 都不需要輸入邀請碼即可下載安裝測試軟件。
溫馨提示
如果先添加了 iTunes Connect 用戶,則左側欄的添加外部測試員欄目消失了,同時出現了一個新群組欄,點擊這個其實就可以添加外部測試員,只不過給外部測試員進行了分組,起了一個組名而已,本人當時找了半天沒找到,希望后面的同學注意下,免得在這里浪費時間。


添加外部測試員基本差不多,接下來我直接上圖






填坑
在操作步驟3的時候可能會出現提示:“缺少出口合規證明”,如下圖所示:


解決方法:去Info.plist文件中添加 ITSAppUsesNonExemptEncryption 並設置為 NO ,修改 build 號,重新打包上傳。


添加了此項,在iTunes Connect 上提交審核的最后一步會有不同,少了一項:是否更改加密功能(這不會影響審核的,放心的使用吧),如圖:


小結
此方法的使用視具體情況而定,不見得就是最好的或是最壞的。今天正好有幾個特殊用戶需要用個特殊版本,所以采用了此方法。目前我們的測試包主要是通過腳本自動編譯打包后上傳到雲服務器,生成一個下載鏈接,測試的伙伴直接通過此鏈接下載安裝即可,(想學習自動化編譯打包的看這里《iOS自動化編譯打包》)上圖更容易理解,請看圖:


對於以上我今天出現的情況,還有很多種方法可以為特殊用戶提供特殊版本的APP,比如:
1.用企業賬號,打一個特殊包,上傳到蒲公英供用戶下載使用(需要一個企業賬號);
2.獲取特殊用戶的設備UDID,添加為測試設備,重新用新的配置文件編譯打包,把打好的包發給用戶安裝即可(需要用戶設備UDID);
3.用今天所講的 TestFlight 即可,至於使用內部人員測試還是外部人員測試根據具體情況而定(需要用戶下載安裝 TestFlight 軟件);