- 浏览: 250195 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (174)
- android (5)
- android代码片段 (10)
- ios (102)
- 程序员 (5)
- 人生 (1)
- UITextField (2)
- UINavigationController (2)
- iPhone开发 (87)
- cocos2d (8)
- Object-c (1)
- Xcode4 (4)
- Mac (1)
- ASIHTTPRequest (1)
- UITableView (9)
- UIImageView (2)
- CATransition (1)
- CCMenu (1)
- UIView (2)
- UIScrollView (1)
- NSString (1)
- Git (2)
- UISwitch (1)
- UIImage (1)
- 拉伸 (1)
- delegate (1)
- NSTimer (1)
- Crash (1)
- Log (1)
- TabBar (1)
- UITabBarController (1)
- UITextView (1)
- iPad (1)
- app (1)
- test (1)
- 数据库 (1)
最新评论
-
cccoooccooco:
测了下,效率很高啊。谢谢分享。
字符串替换算法【java】 -
zkai309:
你好,
我们是ios手游《富豪传奇》的开发商,你开发的糗事囧 ...
如何判断自己是否到了该辞职的时候 -
xyxdasnjss:
吃饱了就饿 写道以后会用到
设备判断 iphone3? iphone4? iphone5? -
吃饱了就饿:
以后会用到
设备判断 iphone3? iphone4? iphone5? -
xyxdasnjss:
zhihaoshi 写道ios 5.0 中用什么方法判断 iO ...
ios 判断设备的GPS功能是否开启
转载本文请保留以下原作者信息:
原作:OneV http://www.onevcat.com/2012/01/testflight/
前言
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官网。
配置
- 将头文件加入工程:File->Add Files to
- 找到包含SDK的文件夹
- 勾选”Copy items into destination folder (if needed)”
- 选择”Create groups for any added folders”
- 勾上想要使用TestFlight SDK的Target
- 验证libTestFlight.a是否被加到link部件中
- 在Project Navigation里选中工程文件
- 选中想要应用SDK的Target
- 选择Build Phase栏
- 打开Link Binary With Libraries Phase
- 如果libTestFlight.a不在栏内,从Project Navigation里将其拖到栏内
- 开始使用
- 在需要用到TestFlight SDK的文件中引入头文件:#import “TestFlight.h”,方便起见,您也可以在工程的预编译文件中的#ifdef __OBJC__块中引入
- 获取团队token:在这个页面中对应的团队下选取TeamInfo,获取团队的token。
- 在AppDelegate中启动TestFlight
[crayon]
–(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// start of your application:didFinishLaunchingWithOptions
// …
[TestFlight takeOff:@“团队Token”];
// The rest of your application:didFinishLaunchingWithOptions method
// …
}
[/crayon] - 为了能得到有用的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里将会对此记录。比如测试者通过了某个关卡,或者提交了某个分数,或者向数据库加入了某条信息等。通过验证检查点,一方面可以检测代码是否正确,另一方面也可以作为游戏的平衡性调整和测试,用来检测用户的普遍水平。
[crayon]
[TestFlight passCheckpoint:@“CHECKPOINT_NAME”];
[/crayon]
检查点问题
配合检查点可以向测试者提出问题,比如“是否正确地通过了演示界面?”或者“分数榜的提交正常吗?”这样的问题。在build management下可以找到Question选项,为检查点添加问题。问题的回答分为多选,是/否以及任意回答,如果选择多选的话,还需要指出问题的可能的选项。
当测试者通过问题所对应的检查点时,一个modalViewController形式的问题和选项列表会出现供测试者选择。开发者可以在build的Question选项卡中看到反馈。
反馈
TestFlight提供了一个默认的反馈界面,测试者可以填写他们想写的任何内容并将这个反馈发送给你。调用一个反馈:
[crayon]
–(IBAction)launchFeedback {
[TestFlight openFeedbackView];
}
[/crayon]
一般来说可以在主界面或者最常见的界面上设置一个“反馈”按钮,这样测试者可以很方便地将他们的感受和意见发送给你。
远程Log
太棒了…配合TestFlight,现在开发者可以拿到远程客户端的Log。使用TFLog代替NSLog即可,任何TFLog的输出将被上传到TestFlight的服务器。如果需要详细一些的输出信息,可以用内建的参数的方式输出信息,比如:
[crayon]#define NSLog(__FORMAT__, …) TFLog((@”%s [Line %d] ” __FORMAT__), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__) [/crayon]
将会得到类似这样的输出
[crayon]-[HTFCheckpointsController showYesNoQuestion:] [Line 45] Pressed YES/NO [/crayon]
所有的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是一个很棒的工具,而且关键,它现在还是免费的~
虽然有趋势以后将会收费,但是这套方案确实是方便易用..希望多支持吧~
发表评论
-
iOS 关闭键盘 3种方式
2015-12-11 14:21 7881,明确知道 当前的UITextField,或者UITextV ... -
在webapp中判断native app是否安装并直接打开
2015-08-31 18:15 840http://www.baidufe.com/item/cc5 ... -
iOS之ARC下的Block
2015-04-15 14:37 600http://www.cnblogs.com/tekkama ... -
UITableView 隐藏多余的Cell的分割线
2015-02-02 14:39 1554- (void)setExtraCellLineHidden ... -
UILabel顶端对齐
2014-09-10 10:15 722http://shfzhzhr.iteye.com/blog ... -
iOS7滑动返回
2014-06-24 11:48 918http://blog.csdn.net/wmqi10/ar ... -
UIView (Additon)
2014-06-19 22:23 758#import <UIKit/UIKit.h> ... -
UIColor (XYCategory)
2014-06-19 22:13 492#import <UIKit/UIKit.h> ... -
OC MD5
2014-06-19 21:50 765#import <Foundation/Foundat ... -
IOS判断设备是否已越狱(isJailbroken)
2014-06-03 21:17 693@interface UIDevice (Helper) ... -
iOS6 Xcode5 去掉Icon高亮
2014-05-25 11:13 0我昨天刚遇到这个问题,已经解决。请按照下图红色矩形所圈处的信 ... -
iOS使用NSClassFromString
2014-03-07 11:24 936http://www.cocoachina.com/b/?p ... -
iOS7 开发相关
2013-10-22 10:17 12031.UITableView reloadData 之 ... -
iPad横版开发时,宽高是反的
2013-08-14 18:01 1070最近刚开始做iPad版应用,但发现横版的时候宽高是反的,很别 ... -
UITextView 带有PlaceHolder
2013-07-31 13:23 1454#import <UIKit/UIKit.h> ... -
UITableView 只更新某行
2013-07-22 10:10 1014如果全部更新的话 用reloadData方法 如果 ... -
Xcode 4.4中LLVM compiler 4.0带来的Objective-C新语法特性
2013-07-15 10:56 897http://blog.csdn.net/totogo201 ... -
new 与 alloc/init的区别
2013-07-11 14:47 714http://blog.csdn.net/abby_shee ... -
自定义UITableViewCell上的delete按钮
2013-06-28 10:35 1063//通过UITableViewDelegate方法可以实现删 ... -
判断是否是 emoji表情
2013-06-28 09:42 2321+ (BOOL)stringContainsEmoji:(N ...
相关推荐
iosTestFlight测试上架流程,APP上架,提交苹果开发者审核,上架App Store应用商城
账号申请-发布问题-证书与配置文件申请-打包流程-appstore审核-Testflight方案-itms-services方案
自动删除不实际测试您应用程序的TestFlight测试人员
IOS上 如何安裝與使用_TestFlight 详细解答。
教你如何在没有越狱的手机里下载APP,对你的手机客户端有安全作用的帮助
说明:前提是IOS版本的APP已能正常向Itunes Connect提交(怎么提交本文不详说),想使用TestFli...
plugin-clean_testflight_testers,请通过运行以下命令将其添加到您的项目中:fastlane add_plugin clean_testflight_testers关于clean_testflight_testers自动删除未实际测试您的应用程序的TestFlight测试人员只需...
open_appstore Flutter插件,用于打开AppStore或PlayStore 用法 通过导入库 import 'package:open_appstore/open_appstore.dart' ; 您可以在Dart代码中打开AppStore或PlayStore。 要打开“ App Store”页面,您...
从2018年10月3日开始,App Store Connect将要求所有新应用和应用更新的隐私政策,然后才能在App Store上提交或通过TestFlight外部测试进行分发。此外,只有在您提交应用的新版本时,您的应用的隐私权政策链接或文字...
TestFlight使用说明文档,包含开发人员部分和测试人员部分
testflight自动邀请用户的脚本
01 Build Your First App 02 Hello World App Explained 03 Introduction to Auto Layout 04 Prototyping Your App Before Writing Code 05 Creating a Simple Table Based App 06 Customize Table View Using ...
- name : ' Upload app to TestFlight ' uses : apple-actions/upload-testflight-build@v1 with : app-path : ' path/to/application.ipa ' issuer-id : ${{ secrets.APPSTORE_ISSUER_ID }} api-key-id : ${...
\----------------------------------\ \ \ __ \ The best way to build and \ | \ > deploy your iOS apps to: >------| \ ______ / www.testflightapp.com / --- \_____/**|_|_\____ | / / \_______ ...
https://www.jianshu.com/p/eafa2fa37c1b 《 iOS项目的 fastlane / jenkins 实践》这篇博客里有fastlane上传testflight并提交beta审核的命令。 补充一下文章里面的代码, 自定义文件位置 lane :build_appstore下面...
Yolo是您的移动应用程序的无线安装分销商 多平台空中安装聚合器...为多个平台(例如,iOS,Android)的一个构建生成工件 编写手动自定义脚本 默认CI工具聚合器 撰写文件 为每个平台编写说明 一份通用文档 跨平台访问
有了TestFlight beta 测试,你可以将你的app的预发布版本分发给测试者来收集反馈、并且可以为你的app在App Store发布做准备。TestFlight beta 测试是可选的;不用TestFlight beta你可以提交你的app去审核。然而;在...
动机其背后的主要动机是允许队友通过模拟器快速测试多个iOS设备,而无需使用TestFlight和物理设备,而无需配置项目并使用Xcode进行构建。 它用于与其他部门的团队成员共享概念证明,设计迭代等,这些团队成员不想...
DR :TestFlight Exporter 是一个简单的 CLI 工具,可从您的 TestFlightapp.com 帐户下载存档的构建。 经过多年的忠实服务,最初的 TestFlight 将于 2015 年 2 月 26 日关闭。为了简化向新 Beta 分发系统的过渡,...
The book culminates by showing you how to test your app using testflight and finally how to release your app on the Apple Store. It is an all-encompassing book that leaves nothing out. What you will...