前言
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提供了一個默認的反饋界面,測試者可以填寫他們想寫的任何內容並將這個反饋發送給你。調用一個反饋:
Objective-C
1 2 3 | –(IBAction)launchFeedback { [TestFlight openFeedbackView]; } |
一般來說可以在主界面或者最常見的界面上設置一個“反饋”按鈕,這樣測試者可以很方便地將他們的感受和意見發送給你。
遠程Log
太棒了…配合TestFlight,現在開發者可以拿到遠程客戶端的Log。使用TFLog代替NSLog即可,任何TFLog的輸出將被上傳到TestFlight的服務器。如果需要詳細一些的輸出信息,可以用內建的參數的方式輸出信息,比如:
Objective-C
1 | #define NSLog(__FORMAT__, ...) TFLog((@"%s [Line %d] " __FORMAT__), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__) |
將會得到類似這樣的輸出
Objective-C
1 | -[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,總之照着做就沒錯了
上傳測試版本
打包好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