原文链接

目录

  • 1. 真机调试
  • 2. adhoc 方式
  • 3. Enterprise(企业级证书)方式
  • 4. TestFlight,公开链接

我们做APP开发的,开发出来的APP还未上线,又要想给别人用一下,该怎么做?实际上这是我们每个做APP开发的人都会遇到的,但是并不是每个人都清楚怎么做,有哪些方式。今天我们就来讲一讲。

在将iOS的APP如何给别人使用和测试前,先说一下安卓APP开发是怎么做的。安卓端是很简单的,你只要先生成一个证书文件keystone,然后用这个文件给apk签名,就可以将apk发给任意一个人安装使用了。这很简单,也很方便。可是iOS的就没那么容易了。我们还是从最简单的开发人员如何用真机测试开始说起。

1. 真机调试

我们有了一个想法,并开始写代码,模拟器调试很方便,要在iPhone上看效果怎么办了。你直接将iPhone连上电脑是不行的。现在的情况至少你需要一个Apple ID,在Xcode上登录你的账号,在调试前Xcode会自动帮你初始化一些东西,然后就可以将APP安装到你的iPhone上了。在以前,你这个AppleID不能是普通的账号,必须是付了前的开发者账号才行。现在苹果放宽限制了。

这种方式的做法是你的手机必须连上你的电脑,在Xcode上选择你的iPhone来调试,Xcode会自动帮你注册设备的UDID。如果你没办法把iPhone连接到电脑上呢?或者不方便把iPhone连接到电脑上,毕竟如果是老板的手机的话,不方便那种做的。那我们需要一种把安装包提供给别人安装,或者一个地址给别人安装的方式。

2. adhoc 方式

我们将项目archive后,在导出(现在Xcode叫distribution)的时候,有个选项是adhoc,就是专门来做这个的。我们可以将APP导出成一个IPA,然后把这个IPA丢给别人,对方可以通过将iPhone连接到电脑,打开iTunes,通过iTunes来安装这个IPA到手机上。这还是有点麻烦,普遍做法都是放到一个网页上,别人通过这个网页来安装这个IPA。我一般都是借助第三方来做这步,例如蒲公英网站就是专门做种业务的。把你的IPA上传到蒲公英上,还会生成网址二维码,很方便分发。

但是这个IPA并不是每个人都可以安装的,能安装的前提是他/她的手机必须先注册过,即他/她的手机的UDID必须先注册到苹果的网站上,最终在打包IPA的时候苹果会把这些UDID写入证书里,只有注册过的手机才能安装成功。

如何注册手机UDID呢?最简单的方法是将手机连接到开发电脑,Xcode会自动帮你注册这个设备。但是并这很不方便,因为别人的手机你不能预先拿到的。当然还有别的方法,例如你放手机拥有这连接电脑,在iTunes上可以看到那部手机的UDID,让他把UDID发给你。这样的操作成本也很高。还是借助别人第三方来做这个事情比较好。蒲公英在这方面做得不错,他们专门做了个网站来帮你获取UDID。网站地址是:https://www.pgyer.com/udid。我一般都是把这个网址发给对方,对方按照网址的做法就可以获取到他手机的UDID,通过微信发给我。然后我到itunesconnect网站上,把这个UDID注册好。有一点特别需要的是,你注册好UDID后,要重新导出IPA。之前已经导出的IPA还是不能装的,要重新打包和导出IPA。并且要特别注意,在导出IPA之前,要把本地的profiles文件先删掉,让Xcode去苹果服务器同步最新的已注册设备列表。profiles文件一般是存放在 /Users/用户名/Library/MobileDevice/Provisioning Profiles 这个目录下。将这个目录下的文件都删掉,在下次打包导出的时候,会自动重新下载最新的。

adhoc方式还是有UDID这个前提,还是不是很方便,有没有不需要任何登记,直接给个安装地址,就能安装的呢?还是有的,下面介绍。

3. Enterprise(企业级证书)方式

有一种证书叫企业级开发证书,这种证书跟普通的开发者证书不一样。企业级开发证书是299美刀每年,普通的开发证书是99刀每年。而且不要跟99刀每年的开发证书里面的企业开发者混淆。在99刀每年的开发证书里,分个人开发者和企业开发者两种,企业开发者要提交的资料多一些。企业级开发证书是专门用户处理APP不需要上架App Store的情况。也就是说你用这个证书开发的APP,可以不经过Apple审核,不上App Store,自己发布,别人就能安装。

什么情况下会用到这种证书呢,我想一种情况是企业内部的APP,因为一些问题,不需要上App Store,自己内部人士使用,采用这种方式是很好的。还有一种用法就是用作beta测试。我们开发出来的APP,需要进行多人的beta测试,可以用企业级证书来打包发布,然后把安装网址发给用户,用户就可以安装使用了。真的很方便。这种方式还是挺流行的,特别是大公司内部,都是使用这种方式来做测试,当测试完成之后,再用普通开发证书打包,提交到App Store审核,完美。

那这种方式有没有什么弊端?当然是有的,例如用企业级开发证书打包的APP,无法使用推送通知,还有一些跟App Store相关的功能。如果你是内部使用的APP,还无法使用App Store来更新APP,只有你们自己实现APP更新的功能。还有一个缺点,一般来说用企业级开发证书打包APP,使用的BundleID跟正式要发布到App Store的BundleID是不一样的(普通做法都是在正式的bundleID后面加Enterprise后者.enterprise),这样安装到手机上就是两个不同的APP了。对应普通用户来说,你不知道怎么给他解释这个。如果企业版和正式版都用同一个BundleID,也有不好的地方。另外还有一个缺点,就是安装企业版APP的时候,需要先信任一个证书。而且是要到设置里面自己点击信任,操作有点难度,而且很多人不敢怎么信任这些。。

另外,如果你只是用企业级开发证书来打包测试的,那么要经常在企业级开发证书和普通开发证书之前切换,你用持续集成环境打包的话,还要专门设置企业版打包,我以前用Jenkins做个这个设置,挺烦,折腾了不少精力,也专门写过这方面的文章。

现在还有很多企业是用这种方式来做beta测试的。

4. TestFlight,公开链接

大公司可以申请企业级开发证书,他们不在乎那点钱。企业级开发证书打包可以随时打包随时发布,那真是比较理想的beta测试方式。但是小公司怎么办呢,小公司没那么多财力和精力做这个事情。苹果也提供了TestFlight的方式。 TestFlight最早是一个独立的公司,后来被苹果公司收购了,并整合到了iTunesconnect上。早期我们怎么用TestFlight来做beta测试呢?从iTunesconnect上可以看到,有一个内部测试和外部测试分类。内部测试,就是你可以邀请一些人(通过他们的Apple ID)来加入iTunesconnect,让他们作为内部测试人员。你只需要将你的APP上传到iTunesconnect,然后你刚刚上传的版本,加入到内部测试中,内部测试人员就可以收到邮件,邮件里会教他们如何使用TestFlight来安装测试。这种方似乎有缺陷,因为必须邀请他们加入iTunesconnect才行,显示这是针对公司内部人员的。

而外部测试的话,不需要邀请,但是需要获取他们的邮件地址。并且你的APP版本需要先提交审核人员审核,审核通过了才能通过邮件发给相关人员。后来有第三方公司专门做这个的,不再需要用户是邮件了。你只需在审核过后,导入他们提供的文件就可以愉快的发布任何用户测试了。这种方式我自己没有试过,但是我通过这种方式安装过别人的APP。如果可以省略掉手机用户的邮件这步,真是一个大进步。

不过好消息是,现在苹果已经提供了一种叫公开链接的方式,不再需要手机用户的邮件来做beta测试了。当然审核是省略不了,你仍然需要上传你构建的APP,然后建一个小组,在这个组里选中你刚构建的版本,提交审核。审核过后,会有一个叫公开连接的按钮,点击之后,会生成一个连接地址,你可以把这个链接地址发给任何人,他们打开这个链接后,会有教他们怎安装使用(当让还是通过TestFlight)。

现在我看淘宝和京东已经采用这种方式在做beta测试了。这种方式优点很明显:用户是通过苹果官方方式安装的,他们比较信任这个,比那种企业版要额外信任的方式要好。还有这种方式跟正式版是没有任何区别的,推送什么的都是正常可以用的。当然缺点就是每个版本都需要苹果先审核,有点慢,不够快捷(也许这不算缺点,因为这是必要的)。

我觉得公开链接这种方式是最好的beta测试方式,值得每个iOS开发负责人去使用。

Over,Enjoy!!!

科普:iOS开发如何做外部测试相关推荐

  1. iOS 开发之使用苹果测试工具 TestFlight (进行内部和外部测试)

    一.测试工具介绍: 1.TestFlight是苹果公司在iOS8,Xcode6推出来的新工具,用于将App beta版本进行流水化测试.TestFlight整合进了Appstore Connect,你 ...

  2. iOS 开发:真机测试

    真机测试 在成功加入iOS Developer Program之后,对于开发者来说,首先要实现的就是真机测试.下面详细介绍实现真机测试的过程. 先总体介绍一下实现真机测试的步骤,如下图所示: 总的来说 ...

  3. iOS开发关于真机测试_skybeauty_新浪博客

    1.  iOS 开发证书: 开发证书 (Development Certificate) 是一个后缀为 .p12 的文件(Certificates.p12): 在Mac 系统下, 双击这个文件,这个证 ...

  4. iOS开发之弱网测试

    前言 有时候我们需要对APP进行捉包.弱网测试等等,相信大家对弱网测试并不陌生,下面记录一下. 一.捉包 分享之前写个的两篇文章: 抓包工具Charles下载以及简单使用 iOS Charles捉取正 ...

  5. iOS开发证书申请教程(udid真机调试测试)

    iOS证书的类型和作用 1.iOS开发证书 iOS开发证书是用于测试APP,在开发过程中安装到苹果手机真机测试APP的运行情况. 2.iOS发布证书 当APP开发测试好后上线就需要用到iOS发布证书, ...

  6. 芒果iOS开发UI课程第一节UIWindow

    主要内容: 1.iOS介绍 2.iOS主要做什么 3.UI介绍 4.UIWindow 这是UI阶段的第一节课主要介绍iOS系统,以及相关的一些知识.还有做为iOS开发者我们应该如何创建我们的第一个UI ...

  7. iOS 平台 TestFlight 外部测试邀请码优化方案

    1 背景 iOS 应用版本灰度测试是一个越来越令人头疼的一件事. 在 iOS9.0 之后,iOS 越狱设备越来越少,想要找到参与灰度测试的越狱用户越来越难.现在苹果企业签名的包外发控制越来越严格,这条 ...

  8. iOS开发-平台使用TestFlight进行Beta测试

    使用 TestFlight,你可以向测试人员发布你 App 的 prerelease 版本来收集反馈信息,为将来发布 App 的正式版做准备.现在 TestFlight 是一个可选功能,你也可以不使用 ...

  9. 重读《从菜鸟到测试架构师》-- 开发团队做的远不仅是开发

    上回说到小艾跟着导师修炼了一段基本功之后,也明确了自己的专业技能学习道路,却在几次转头的瞬间发现身边的每一个人都似乎在做着不同的事情,不是说好的一个团队嘛,为什么你做这个,他做那个呢?小艾还真是疑惑, ...

最新文章

  1. MATLAB Simulink中如何实现锁相环
  2. DeepID:Python基于Caffe的DeepID2实现人脸识别的简介、实现之详细攻略
  3. mysql支持的平台和操作系统_MySQL 数据库所支持的操作系统_MySQL
  4. golang 解决 TCP 粘包问题
  5. MFC中onmouseover与onmousemove的区别
  6. CISSP工资百万, 认证培训2899美元,是不是太高?
  7. FreeCAD源码分析:Assembly3模块
  8. 服务器浏览器怎么打不开网页,电脑能上qq打不开网页怎么回事?
  9. ts 修饰符_TS4 新特性一览
  10. 一个人的精神结构和他的精神资源
  11. Kafka kafka-reassign-partitions.sh 命令使用
  12. AUTOEXEC.BAT及CONFIG.SYS文件用法
  13. 【高等数学】(底数>1和底数<1的)幂函数的图像
  14. 【软件工程】-软件过程
  15. 八核版三星Galaxy S4(I9500)root教程
  16. Web端如何引用iconfont,iconfont所有的引用方式。
  17. 2013新春奉送:Android摄像头开发完美demo---(循环聚焦,缩放大小,旋转picture,查询支持的picturesize, ImageButton按键效果)
  18. OpenWrt的多WAN和静态路由设置
  19. java 如何定时_Java怎么实现定时提醒功能
  20. 软件测试肖sir___面试题总结

热门文章

  1. echarts双Y轴,左右Y轴数据一一对齐
  2. 蓝桥杯2020年第十一届国赛真题-皮亚诺曲线距离
  3. 色彩理论学习-摘自百度百科
  4. 【Python画蜘蛛侠】你的DNA动了吗?
  5. USB转串口线无法正常工作解决
  6. 元器件降额规范(第二部分)持续更新
  7. C# async/awit 嵌套异步 执行顺序 分析
  8. Unity 2D游戏:Rigidbody 2D(2D刚体)
  9. 把本地厂库提交到远程厂库
  10. 初学JAVA,使用Eclipse的快捷键(非常实用哦)