老实说,如果不是因为我们做自己的 APP,不会知道在应用开发完成之后,让内测用户安装测试的过程有多复杂。

一般而言,情况是这样的:先教会测试用户获取手机 UDID,然后把拿到的 UDID 添加到苹果开发者中心,生成证书文件,之后将证书文件下载到本地,导入 Xcode,再重新打包,通过 IM 等工具发给测试用户安装。这个过程不仅对开发者是个考验,单是第一步的如何获取设备 UDID,对测试用户就是个考验。而你需要几个测试用户,上述过程就需要重复几次。如果是要几十个测试用户呢?

蒲公英 的解决方案是这样的:开发者开发完成后,把应用上传到蒲公英网站托管,托管后的应用有单独的下载页面(下载链接和二维码),开发者只需要把下载链接或二维码给到测试用户,即可直接安装。

在这背后,蒲公英把开发者上传的安装包文件进行了处理,处理后的安装包,可以在任何一台 iOS 设备上安装,并且设备数量也没有限制。但这些处理过的应用并不是公开的,而是通过密码等方式,让开发者指定的内测人员才能安装。

目前蒲公英的产品包括了网站,iOS 和 Andriod 客户端以及 Mac 和 Windows 版本的客户端。开发者可以直接在客户端上传、管理自己的应用,测试用户也可以通过客户端提交反馈、上传问题截图。此外,蒲公英还开放 API,通过 API 开发者可以直接在自己的应用中上传 App,获取平台数据信息。

蒲公英项目最早源于其团队自己内部的需求,为了简化团队内部的 iOS 测试流程。创始人石瑞自己开发过十多个 App,有外包的也有自己的产品,在这个过程中,深刻感受到把应用分发给测试用户过程中的繁杂和低效。后来他发现,许多开发者对 iOS 测试应用的托管有很大的需求,所以把重心转到了蒲公英。

从蒲公英的客户,你可以侧面看到它的被需要和受欢迎程度。这份名单中包括了唱吧、滴滴打车、易信、蘑菇街、E 代驾、猿题库、天涯社区、凤凰视频等等。从 2014 年 7 月上线至今,已有近 20 万应用通过它进行测试分发,总下载量超过 5000 万次,日均下载量超过 100 万。

他们计划在未来 3 个月,推出蒲公英测试 SDK,整合测试流程,提供 App 运行情况监测、Crash 日志收集、设备信息收集、应用内提供反馈等测试服务。

商业模式上将考虑用户付费和增值服务等方式。

当然这个有需求的市场中,不止蒲公英一个玩家。和蒲公英提供类似服务的包括美国的 TestFlight 和国内的 Fir。

石瑞告诉动点科技,和 Fir 不同,蒲公英的有自己的“企业签名”,开发者采取任意账号和证书打包 ipa,递交给蒲公英后,蒲公英可以将 App 打包成企业证书签名,然后支持所有 iOS 设备安装。这种方式对没有企业账号的中小开发者更友好,他们可以则省去找测试用户获取和添加 UDID 的麻烦,更方便的进行 App 分发。

该项目目前获得千万人民币天使投资。

使用:

前言

我在 《给 iOS 工程增加 Daily Build》 一文中介绍过如何用命令行生成 IPA 文件以及通过 itms-services 协议 来让用户可以直接在网页上安装测试应用。但是这种方法虽然有效,但是还是比较麻烦,因为:

  1. 开发者需要自己写相关的 Build 脚本。
  2. 开发者需要自己搭建好应用下载的服务器。
  3. 如果要做得更友好,开发者还需要部署 CDN 服务、增加扫描二维码下载等功能。

所以本文给大家推荐一个叫 “蒲公英” 的免费服务,帮助开发者能够方便地来做 iOS 应用的测试分发工作。蒲公英于 2014 年 7 月正式上线,我自己使用过一段时间,还是挺满意的。

下面我们就来看看,如何使用 “蒲公英” 来进行测试版本应用的分发工作。

生成 IPA 文件

生成应用的 IPA 文件可以使用命令行 xcodebuild exportArchive -exportFormat ipa来完成,也可以使用 Xcode 提供的相应功能。相信大部分同学应该都用过,我就简单介绍一下。

首先将编译的目标机器设置成 “iOS Device”,然后点击”Product”–>“Archive”,Archive 成功之后,就可以在 Xcode 的 Organizer 中看到相应的文件。

接下来点击 Organizer 中的 “Export” 按钮,如下图所示:

在接下来的弹出界面中选择 “Save for Ad Hoc Deployment”。如下图所示:

选择完成后点 Next,Xcode 会自动将测试设备的签名信息附加上,并将相应的 IPA 文件导出。

上传到蒲公英

如果是第一次使用蒲公英,我们需要访问 蒲公英的网址 进行注册。注册主要是为了保护测试应用的安全和设置相应的权限(例如设置下载密码)。

注册之后,点击蒲公英网站首页的 “发布应用”,然后选择之前生成的 IPA 文件即可完成上传 IPA 的过程。蒲公英对上传速度进行了很大程度的优化,上传应用速度非常快,下图是我测试上传猿题库的过程(上传 18M 的 IPA 文件大概花了半分钟时间,平均速度应该超过了 500K 每秒):

上传成功后,蒲公英会自动分析应用的 Bundle ID 信息,将其在 App Store 上的应用介绍和截图获取下来。然后你可以选择设置一个 “安装密码”,以避免一些越狱用户非法安装你的应用。对于小范围试用的应用,建议也不要将其发布到 “应用广场”。如下所示:

设置好所有需要的信息后,点击发布应用,蒲公英会生成一个应用分发的网页。如下图所示:

你可以把这个网页发给你的测试用户:

  • 如果用户在手机上打开这个页面,则可以直接点击 “安装按钮” 来一键下载和安装测试应用。
  • 如果用户在电脑上打开这个应用,则可以用扫描二维码的方式来一键下载和安装测试应用。

一些小技巧

  • 有企业证书的同学,如果将 IPA 在本地用企业证书签名,则可以把蒲公英当作一个企业应用发布渠道,省去部署分发服务器的烦恼,但最好设置安装密码,以免被苹果认为滥用企业证书。
  • 嫌每次打开蒲公英的网页太麻烦?蒲公英提供了 Mac 客户端,所有上传和设置操作都可以在客户端上直接进行。

Posted by 唐巧 Jan 22nd, 2015  iOS

转载于:https://www.cnblogs.com/sunnyke/p/4500000.html

蒲公英——APP内测分发平台相关推荐

  1. Android使用Github Actions持续集成并自动上传apk到蒲公英App内测分发平台(含证书密码脱敏)

    目录 1.前言 2.Github Actions持续集成 3.上传apk到蒲公英 4.Gradle配合Github Actions的Secret使用 4.1设置Github Actions Secre ...

  2. 如何选择APP内测分发平台?五年开发者亲述

    Hello,大家好!我是一个Java五年工程师,因为是项目公司所以做的App比较多,测试也就比较多,对App内测分发平台的需求也更大一些,这些年试用过很多分发平台,这里面其实也有很多坑,有的平台刷刷的 ...

  3. APP内测分发平台源码|应用分发源码|开源分发平台搭建

    持续.有效的App分发开发变得越来越重要.不幸的是,它不一定会成为一个更容易实现的目标,尤其是随着设备和平台多样性的不断增加.因此,开发人员.测试人员和其他应用程序管理人员面临着尽可能多地了解简化Ap ...

  4. APP内测分发有哪些坑?如何使用蒲公英内测托管平台?

    APP内测分发是APP正式上架之前最重要的一步. 所谓APP内测分发平台,是很多APP开发的公司都会经常用到的一类工具,主要是将初步开发好的APP,上传至APP内测分发平台进行内测下载. APP内测分 ...

  5. 蒲公英内测分发平台使用体验

    大家好,我是一个java开发工程师,已经使用蒲公英内测分发平台分发App五年多了,不想替他们家吹牛逼,我找了一些网上的真实用户评价,筛了一下水军和恶意竞争者,大家自己看看就知道了. 1 APP发布首先 ...

  6. 蒲公英内测分发平台解读2022年黑灰产APP诈骗

    什么是黑灰产APP?很多朋友可能不知道,但是没准你的手机里已经主动或者被动了下载或使用着这类APP.国内活跃的专业技术黑灰产业平台多达数万个,许多个人.宝妈.学生党都在不知不觉中参与了黑灰产. 比较& ...

  7. App内测分发怎么做?蒲公英内测托管平台教程

    一个App内测是App上架前最重要的一个步骤,可以说App内测也有着完善.优化App的重要作用. 一般来说,安卓的App内测比较好实现,IOS端就比较困难了,今天我们就来讲一下IOS端的App内测具体 ...

  8. iOS应用的内测签名、分发托管平台:蒲公英内测分发平台简介

    什么是内测分发托管平台? 首先需要了解内测的概念,即内部测试,在APP还未正式被广泛应用的时候通过内部人员的测试查找出问题加以修改.分发,即将需要测试的APP版本给到测试用户进行下载使用的过程.托管平 ...

  9. 免费APP内测分发托管平台,支持应用合并、内测分发、扫码下载,下载量安装量统计,版本记录和应用在线封装打包app

    应用分发 应用分发也叫APP分发,其主要功能是方便APP的快速安装测试和推广 那么分发App选择什么平台最好呢? 这个主要是看App处于什么阶段.看看是处于应用测试阶段还是处于测试完毕没有问题的应用的 ...

最新文章

  1. 南阳833--取石子(七)
  2. 60秒,我们可以干什么?
  3. java如何消除太多的if else判断?
  4. NGUI 使用Grid自动排列UI
  5. vim trick之 vimrc更改立即生效
  6. ASP.NET AJAX + JSON 实现对象调用
  7. swift5以上版本的代理的实现,详细教你书写代理
  8. 推荐两个检索和分类小工具Carrot2 OSS
  9. css 隐藏元素 显示元素_使用CSS打印时如何隐藏元素?
  10. 动漫风格迁移——AnimeGANv2的实现【复现】
  11. SpringBoot 实现接口参数加密解密功能
  12. python继承中的参数_python 继承中的super
  13. ubuntu 18.04.1安装hadoop3.1.2
  14. 一篇文章学会er图绘制
  15. 微信小程序的开发流程有哪些?
  16. 《信任的速度》读后感
  17. 逍遥模拟器自定义默认桌面程序
  18. app推广“惊天地”的一件大事件
  19. 13.0高等数学五-幂级数的收敛域与和函数
  20. Sencha Touch 与 PhoneGap异同

热门文章

  1. 巴菲特抄底台积电,透露出哪些信号?
  2. Mac卸载postgresql
  3. 我的Qt作品(1)高仿海康威视MVS主界面
  4. 北航计算机学院复试专业课科目,2018北航自招复试经历总结
  5. 西安某1000M3浮顶油罐设计(成品油库1000m³油罐设计与制造工艺)
  6. Rtabmap 视觉建图与导航 Ubuntu 18.04 Kobuki
  7. php正则匹配preg_match,php正则表达式中preg_match函数的详解
  8. 汉语拼音的模糊音扩展(用于搜索纠错)
  9. 微信按钮翻译中英对照表
  10. springboot从ftp读取图片且根据不同的content_type在前端直接展示