我们基本都用过蒲公英或者fir.im做应用分发,但是可有想过他们是怎么实现的吗
如果想自己包里内测包,内部分发,或者企业包的分发,可以参考

自建和三方的优劣对比
产品

优点

缺点

1 自建 稳定
UI和功能可自定义
没有使用限制
方便内测运营 需要开发和维护,投入较大
2 三方
方便快捷,无需开发
功能完备(

版本管理,应用管理
应用合并
开放API
成员管理、统计等
)

有下载次数限制,一般为100次/天,且多款app共享该下载次数
可能需要安装密码,一些场景中不方便使用密码
可能不稳定,偶尔会挂掉
未加壳、加固的内测包上传到第三方平台,被反编译的风险增加
不方便运营,如app调起
用过的三方托管平台:

蒲公英(https://www.pgyer.com)
fir.im(https://www.betaqr.com/apps)
iOS包管理方案
概述
流程步骤:

企业包:【打包】-【配置manifest】-【上传】-【开发前端下载页面】-【下载】
内测包:【添加测试机】-【打包】-【配置manifest】-【上传】-【开发前端下载页面】-【下载】
背景原理:

Apple为了保护ipa包的安全性,不开放直接安装ipa的入口,由Safari的来触发系统命令,增加了直接拿到ipa包的难度(反变异ipa包后,开发信息泄漏的风险就很大)
开发者把ipa的下载地址写入manifest文件,然后把manifest上传到云,这样就可以通过云地址来获取app的基本信息:包地址、icon大、icon小
由Safari的命令(itms-services://?action=download-manifest&url=manifest的地址)来触发内部动作,拉取manifest,读取下载地址,然后下载ipa包,并安装到手机内
用户通过前端页面,如点击按钮,由程序执行上面操作,那么这个安装的过程就被封装起来了,用户没有看到ipa包,只要点击一安装并确定就可以了。
当然了,如果通过手段,分析前端请求和代码,抓取到manifest的云地址,就可以看到ipa的下载地址,这样就拿到了ipa包,只不过是这个过程就比直接提供ipa要复杂很多,破解成本提高了很多。
具体做法
1、准备云存储服务(七牛、阿里),打开上传文件功能,有自己的api上传也可以。

2、打包勾选Additional Options,并填写下载地址、图片地址。

一般来说,先上传图到云,拿到图片地址,然后修改文件名部分就行了,下次上传还使用同样的文件名就 OK 了

配图:

%title插图%num

%title插图%num

 

3、上传ipa到配置好的地址,上传由manifest.plist文件

这里有个tips,第二步骤就是的配置就是为了打包后多生成一个manifest.plist文件,如果你很熟练,可以跳过配置,直接打包,然后自己去修改manifest文件,再上传到云,效果是一样的。具体manifest是什么样的,自己打包生成一个看下。特别是自己开发包管理的后台管理功能时,应该熟练使用manifest文件的编辑。

4、在Safari中安装app

设manifest地址为url,则可在Safari中输入itms-services://?action=download-manifest&url=url,然后会提示是否下载,确定即可下载。这里需要主要的是,如果url中有特殊字符,需要编码。在Safari中输入的链接仅仅是测试你的配置做法是否正确,真正用的时候需要前端做个叶页面,来执行我们输入的地址命令,这样会更加友好

5、企业包和内侧包

如果打企业包,在开通企业账号的前提下,打包时选择Enterprise的方式即可

如果打内测包,需要提前把测试机的UDID倒入公司的测试名单内,倒入方法这里就不啰嗦了,打包时选择Ad Hoc即可。

 

根据企业的需要,如果大范围内测,或者安全性要求比较高,或者对下载页面要求比较高,且有一定的人力资源,那么可以自己开发;如果只是内部使用,可以做的简单一点;如果人力紧张,且只是内部测试时使用,而且安全要求不是很高(代码中没什么可泄漏的)就别瞎折腾了,还是集中精力做业务吧。