前言
iOS開發的測試一直是令人頭疼的問題。app開發的短周期和高效率的要求注定了一款app,特别是小公司的app,不會留給開發人員很多測試的時間。而在測試時往往又遇到crash報告送出困難,測試人員與開發人員溝通不便等等問題,極大延緩了測試進度。TestFlight即是為了解決iOS開發時測試的種種困難而生的服務,使用TestFlight可以十分便利地完成版本部署,測試使用者Log送出,收集Carsh Log和收集使用者回報等工作,而這一切居然連一個iDP賬号都不需要!
基本使用
注冊
TestFlight界面友好,文檔齊全,開發者在使用上不會遇到很多問題。到TestFlight官網新增賬號即可開始使用。

注冊時記得勾選I am a developer,之後便可以以開發者身份管理開發和測試團隊,送出測試版本和檢視報告等,若沒有勾選則是以測試者身份注冊。若在注冊時沒有選上,之後在帳号設定中也可以進行更改。
确認
注冊完成以後會在注冊郵箱中收到确認郵件。使用你的iDevice用郵件内的帳号登陸,并且完成裝置注冊,加入TestFlight的描述檔案。關于裝置注冊和可能遇到的問題,可以參看這篇文章。
建立團隊
登陸TestFlight後在自己的Dashboard可以建立一個團隊。團隊包括了開發者、測試者和相應的測試版本。建立團隊後可以通過選擇團隊來檢視團隊的資訊等情況。
添加測試者
在團隊管理界面可以為團隊添加成員。填寫受邀者的郵件和簡單的說明,一封包含注冊連結的郵件将被發送到指定郵箱。受邀者通過類似的注冊和确認流程即可加入團隊,參與共同開發和測試。
上傳測試版本
上傳的版本必須是包含簽名的ipa,成功上傳版本後即可選擇給團隊内的成員發郵件或推送邀請他們進行新版本的安裝和測試。之後在版本管理中即可看到關于該版本的測試資訊。該部分具體内容參看本文最後。
收集測試資訊
在build界面中選擇需要檢視的版本的對應按鈕即可看到收集到的測試資訊,包括一般的session資訊,裝置使用TFLog進行的輸出(需要TestFlight SDK),crash報告,是否通過了預先設定的檢查點,測試人員的安裝情況等資訊。
結合SDK來使用,一切測試機仿佛都變成了你自己的終端,所有的Log和裝置的狀态盡在掌握,而這樣的便利僅僅需要點選下滑鼠和寫幾行代碼,這便是TestFlight的強大之處。
TestFlight SDK使用
下載下傳
不使用TestFlight的SDK的話,可以說就連這個強大的平台的一成功力都發揮不出來。點選這裡從官方網站下載下傳SDK,官方文檔提供了關于SDK的很全面的說明,在支援頁面也能找到很多有用的資訊。
之後将以Xcode4為例,簡介SDK的使用,更多資訊可以參考TestFlight官網。
配置
- 1)将頭檔案加入工程:File->Add Files to
- 找到包含SDK的檔案夾
- 勾選”Copy items into destination folder (if needed)”
- 選擇”Create groups for any added folders”
- 勾上想要使用TestFlight SDK的Target
- 2)驗證libTestFlight.a是否被加到link部件中
- 在Project Navigation裡選中工程檔案
- 選中想要應用SDK的Target
- 選擇Build Phase欄
- 打開Link Binary With Libraries Phase
- 如果libTestFlight.a不在欄内,從Project Navigation裡将其拖到欄内
- 3)開始使用
- 在需要用到TestFlight SDK的檔案中引入頭檔案:#import “TestFlight.h”,友善起見,您也可以在工程的預編譯檔案中的#ifdef __OBJC__塊中引入
- 擷取團隊token:在這個頁面中對應的團隊下選取TeamInfo,擷取團隊的token。
- 在AppDelegate中啟動TestFlight
-
–(BOOL)application:(UIApplication *<em>)application didFinishLaunchingWithOptions:(NSDictionary </em>*)launchOptions { // start of your application:didFinishLaunchingWithOptions // … [TestFlight takeOff:@“團隊Token”]; // The rest of your application:didFinishLaunchingWithOptions method // … }
- 為了能得到有用的crash log(挂載過的),必須在生成ipa的時候不剝離.dSYM檔案。在Project Navigation裡選中工程檔案,選中需要使用TestFlight SDK的Target,在Building Setting的Deployment塊下,将以下三項設為NO
- >>Deployment Post Processing
- >>Strip Debug Symbols During Copy
- >>Strip Linked Product
檢查點
開發者可以在代碼的任意位置設定檢查點,當測試者通過檢查點時,session裡将會對此記錄。比如測試者通過了某個關卡,或者送出了某個分數,或者向資料庫加入了某條資訊等。通過驗證檢查點,一方面可以檢測代碼是否正确,另一方面也可以作為遊戲的平衡性調整和測試,用來檢測使用者的普遍水準。
在代碼中加入一個檢查點:
Objective-C
1 | [TestFlight passCheckpoint:@“CHECKPOINT_NAME”]; |
檢查點問題
配合檢查點可以向測試者提出問題,比如“是否正确地通過了示範界面?”或者“分數榜的送出正常嗎?”這樣的問題。在build management下可以找到Question選項,為檢查點添加問題。問題的回答分為多選,是/否以及任意回答,如果選擇多選的話,還需要指出問題的可能的選項。
當測試者通過問題所對應的檢查點時,一個modalViewController形式的問題和選項清單會出現供測試者選擇。開發者可以在build的Question頁籤中看到回報。
回報
TestFlight提供了一個預設的回報界面,測試者可以填寫他們想寫的任何内容并将這個回報發送給你。調用一個回報:
2 3 | –(IBAction)launchFeedback { [TestFlight openFeedbackView]; } |
一般來說可以在主界面或者最常見的界面上設定一個“回報”按鈕,這樣測試者可以很友善地将他們的感受和意見發送給你。
遠端Log
太棒了…配合TestFlight,現在開發者可以拿到遠端用戶端的Log。使用TFLog代替NSLog即可,任何TFLog的輸出将被上傳到TestFlight的伺服器。如果需要詳細一些的輸出資訊,可以用内建的參數的方式輸出資訊,比如:
#define NSLog(__FORMAT__, ...) TFLog((@"%s [Line %d] " __FORMAT__), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__) |
将會得到類似這樣的輸出
-[HTFCheckpointsControllershowYesNoQuestion:][Line45] PressedYES/NO |
所有的TFLog都不會阻塞主線程,所有的TFLog都将完成以下三種Logger工作
- TestFlight logger
- Apple System Log logger
- STDERR logger
配合以前介紹過的NSLogger(參見這篇文章),将Log發揮到極緻,讓你永遠掌控自己的代碼吧~
Log将會在用戶端進入背景或者被退出的時候上傳到伺服器,如果沒有看到應該有的Log的話,很有可能是還在上傳中。視Log檔案大小而定,一般這個過程需要若幹分鐘。當然,巨量上幾M甚至10+M的Log可能會被TestFlight拒絕哦..畢竟沒有那麼多存儲空間..
當然,用戶端必須有可用的網絡環境這個功能才會啟用。得到的Log會存儲在Session下。
生成和上傳測試版本
打包ipa
..做過部署的童鞋對這個應該很熟了,官方也有一個詳細的guide,總之照着做就沒錯了
- XCode3如何生成ipa
- Xcode4如何生成ipa
打包好ipa後就到版本上傳界面,把做好的ipa拖過去就萬事大吉了。
最後一步是邀請團隊内的測試者進行測試。把你想邀請的測試者打上勾然後OK,包含連結的邀請郵件将會發到他們的郵箱。然後~等待測試結果和大家的回報,并且根據回報完善app吧~
寫在最後
TestFlight是一個很棒的工具,而且關鍵,它現在還是免費的~
雖然有趨勢以後将會收費,但是這套方案确實是友善易用..希望多支援吧~
- See more at: http://www.onevcat.com/2012/01/testflight/#sthash.2CrdgMtp.TU40DEGa.dpuf
TestFlight 官網:https://www.testflightapp.com
1.這是用來做什麼的?
目前我們送出ipa發給測試員或客戶的時候要先問來對方的串号,然後打包ipa,最後發給對方。但是對于非程式員來說,串号如何找?如何在itunes上安裝ipa?這兩個是非常頭疼的難題。而TestFlight就是用來解決這個問題。
2.如何使用?
2.1 首先,需要在https://testflightapp.com上注冊一個賬号。
2.2 然後建立一個team(也就是項目),然後邀請一個email。
2.3 對方在手機上使用safari打開email裡的邀請連結,注冊一個賬号,或登入。對方在手機上一步一步繼續按照提示,會要求在手機的設定裡安裝一個證書。最後這樣就是接受了要求。
2.4 而你的email裡,或在控制台上可以知道對方的串号。
2.5 接着在開發者賬号裡添加這個串号,重新打包ipa。
2.6 在TestFlight的Build界面update,上傳這個ipa,并且選擇相應的user,選擇更新。
2.7 最後對方在手機上就可以直接收到提示有新的app,點選安裝即可。
3.各種說明
3.1 友善在于省卻了測試員和客戶的繁瑣操作,但程式員的任務還是一樣多。
3.2 User會有兩種角色,一種是Developer,一種是test。test就是隻能安裝app,而Developer可以更新新的app
3.3 TestFlight 還有SDK,類似于友盟的SDK,可以知道移除日志,并且可以讓對方直接在手機上回報意見。
4.注意,越獄的手機是無法通過TestFlight安裝app的,這是一個小遺憾
以上來源于:http://www.cnblogs.com/carlosk/archive/2013/01/28/2880112.html
http://blog.csdn.net/fengsh998/article/details/8715876
http://www.onevcat.com/2012/01/testflight/#sthash.2CrdgMtp.TU40DEGa.dpuf