不通过App Store实现ios应用分发下载安装
最近公司的项目准备着手宣传工作了,宣传手册上要印制App的下载地址二维码,但是客户端应用还未上线,需要一种临时的方案解决应用分发下载问题,通常ios应用必须通过苹果应用商店才能下载安装,但是也可以看到一些应用没有通过苹果应用商店也能下载安装,比如下面的兔兔助手。
兔兔助手_苹果手机助手_兔兔助手越狱版_兔兔助手官网下载
http://www.tutuapp.com/
直接扫码或者点击手机页面的下载链接就能下载安装成功。
其实这种安装方式是利用企业证书签名app的部署方式来安装程序,直接在ios设备上安装,严格来说其实是不符合apple的相关规定的,因此一般只用于内部测试下载安装,不建议使用这种方式来进行最终的应用分发。下面具体介绍一下实现方式。
准备的文件主要是三个:
- 1、应用程序 后缀(.ipa) 文件(使用了企业级预置描述文件);
- 2、清单 (后缀.plist) 文件(xml格式的清单描述文件)。
- 3、网页(后缀.html)文件(引导用户安装的界面)
我没做过ios开发,因此.ipa文件,.plist文件怎么得到,开发人员应该很清楚,这里只介绍一下文件部署的情况。
首先APP上传到服务器有一个下载地址,比如:http://youdomain/app.ipa
然后部署.plist文件,这个文件大致如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict><key>items</key><array><dict><key>assets</key><array><dict><key>kind</key><string>software-package</string><key>url</key><string>http://cloud.189.cn/download/client/iOS/cloud189_1.1.1.ipa</string></dict></array><key>metadata</key><dict><key>bundle-identifier</key><string>请填上你的开发者证书用户名</string><key>bundle-version</key><string>版本</string><key>kind</key><string>software</string><key>title</key><string>请填上标题</string></dict></dict></array>
</dict>
</plist>
需要注意的是从ios7.1开始,http推送plist已经不能用了,只能使用https推送,因此访问这个文件的地址必须是https开头的。你可以配置自己的服务器支持https服务,也可以借助第三方工具,这里主要介绍使用第三方工具。
国外有很多网站都是支持https服务的,比如DropBox和Github,以Github为例,打开任意开源项目中的一个文件,切换到“RAW”
可以看到地址栏显示的是https,因此可以把app.plist文件上传到github生成一个https地址,不幸的是github在国内基本上属于被墙的状态,因此需要在国内找一个能提供https服务的存储方式,这里我推荐七牛云存储,注册成为标准用户后,新建一个空间,上传文件
在空间设置里可以开通https服务
这样就能得到一个https://dn-yourdomain.qbox.me/app.plist的地址,说了这么多,终于将.plist文件部署好了,其实前面的.ipa文件也可以上传到七牛云存储上供下载分流。
最后介绍如何下载安装应用,使用的是itms-services:协议
itms-services://?action=download-manifest&url=https://plist文件的地址
接下来只要在网页(html)文件中加入
<a href="itms-services://?action=download-manifest&url=https://plist文件的地址">安装</a>
这样点击手机网页上的“安装”链接就能下载安装应用了。至于这个页面要做的多花里胡哨,那就是前端美工的事了。
这里有一段比较完整的示例
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<htmlxmlns="http://www.w3.org/1999/xhtml">
<head>
<metahttp-equiv="Content-Type"content="text/html; charset=utf-8"/>
<title>应用名字</title>
</head>
<body><h1style="font-size:80pt">如果点击无法下载安装,请复制超链接到浏览器中打开<h1/><h1style="font-size:100pt"><a title="iPhone"href="itms-services://?action=download-manifest&url=https://dn-你的空间名字.qbox.me//你的.plist">点击下载 </a><h1/>
</body>
</html>
如果想手机进入页面后直接下载安装,可以在html 标签的 head 标记中加入如下的Javascript代码。
<script>var url ="https://plist文件地址";window.location ="itms-services://?action=download-manifest&url="+ url;
</script>
这样就会自动提示下载和安装了。
如果通过ios应用内安装,代码大概如下所示
iOS:
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"itms-services://?action=download-manifest&url=https://plist文件的地址"]];
最后才是重点,我们不必这么麻烦自己部署这么多文件,完全可以借助第三方应用内测分发平台,比较出名的有下面几个:
应用测试发布平台
fir.im - 免费应用内测托管平台|iOS应用Beta测试分发|Android应用内测分发
http://fir.im/
蒲公英 - 免费的应用托管平台|App应用众测分发
http://www.pgyer.com/
Pre.im - APP内测托管平台首选 - Beta测试 - 免费的应用内测托管平台
http://pre.testin.cn/
TestFlight Beta Testing - App Store - Apple Developer
https://developer.apple.com/testflight/
试用了一下蒲公英,真是相当方便,只要注册一个帐号,将ipa文件上传,就会立即生成一个下载地址以及引导下载页面
通过查看api可以看到,蒲公英也是通过上面的方式安装的,只是给开发者省了不少时间
如果你嫌蒲公英的下载引导页面不好看,你可以自己做一个html页面,直接是用上面的itms-services地址。
若有疑问,请扫描下方微信二维码,关注我的微信公众号,找我私聊!
参考资料
- 通过 itms-services 协议,发布或者分享 iOS 应用程序
- 来自为知笔记(Wiz)
不通过App Store实现ios应用分发下载安装相关推荐
- iOS:苹果企业证书通过网页分发下载安装app
iOS:苹果企业证书通过网页分发安装app 苹果的企业级证书发布的应用,是不用设备授权即可直接安装,并且不限设备上限.为了方便分发,苹果有协议实现通过网页链接直接下载安装企业级的应用. ...
- android 多开app store,原来 iOS 也有双开助手,还是上架了苹果官方 App Store 的
原标题:原来 iOS 也有双开助手,还是上架了苹果官方 App Store 的 大家都知道iOS不像安卓,可以给App双开,但是现在很多人工作需要都需要双开软件.最近堂堂发现了原来IOS在App St ...
- 八位彻底改变App Store的iOS开发者
我们与 app 交互的方式已经被一群聪明的开发者所完全改变,他们的共性是对 app 都有各自独到的见解.下面就是其中最顶尖的八位. Loren Brichter Tweeite 不是 iOS 上第一个 ...
- 苹果11显示无法连接服务器,iOS 11无法连接App store怎么办 iOS 11 App store无法连接怎么办...
有不少抢先体验了iOS 11系统的用户发现,自己的设备在升级到iOS 11系统之后,出现了App store无法连接的情况.打开App store就是一片空白或者无限转圈圈.那么iOS 11无法连接A ...
- App Store上架iOS App的详细流程
最近负责将公司某个项目的iOS应用上架到App Store,在上架的过程中,需要做的事情很多,但很多都不涉及到太多的技术问题,但是流程很多,而且对应用有很多要求,在上架的过程中也遇到一些问题,后也顺利 ...
- iOS企业包下载安装
当客户端完成开发和测试之后,准备上线给用户使用,就需要提供下载渠道,上传到「应用商店」和「App Store」是很常见的做法,但是今天我们要来聊一下 iOS 企业包的下载方式. 一.背景介绍 1.An ...
- ios mailto:// 用邮箱发邮件_英雄联盟手游公测,安卓/苹果iOS注册最新下载安装教程!...
目前安卓/iOS在 28 日开启公测的地区有:日本.韩国.泰国.越南.菲律宾.马来西亚.新加坡. 12月首周公测地区:欧洲.中国台湾.大洋洲.越南,甚至还包括 中东.北非.俄罗斯.土耳其. 2021年 ...
- 【操作系统】HarmonyOS App开发工具HUAWEI DevEco Studio下载安装及第一个HarmonyOS App实战教程
路标 DevEco Studio简介 DevEco Studio的下载安装 安装过程演示 开发第一个基于Java的TV App 微信公众号原文链接:点击查看 2020年9月10日,华为开发者大会发布了 ...
- 微信浏览器打开ios App Store 并且可以打开或下载pp
下面就是关键了 var url = "https://itunes.apple.com/cn/app/idxxxxx"; setTimeout(function() ...
- 制作IOS企业版App网页扫描二维码下载安装
有时候我们需要在XX网站的主页上去扫描二维码下载,那么ios开发中如何做到这一点呢. 我给大家解答一下,这也是在最近工作中用到的部分,在网上了解了一些. 下面给大家分解一下步骤: 1.Plist 和 ...
最新文章
- 浅谈文本词向量转换的机制embedding
- GPRS的工作原理、主要特点
- [云炬创业基础笔记]第二章创业者测试3
- jmap+MAT实战内存溢出
- 每日学习小记 11/02
- 【转载】C++ function、bind和lambda表达式
- lambda表达式学习例子
- vue 第四天 (计算属性的使用)
- rsync 全网备份企业案例
- 《深入浅出MFC》第一、二章笔记
- KVM 虚拟化技术 理论详解
- 关于一个博客系统的 整体架构与技术
- 女程序员写代码被骂,把领导萌死,成功治愈“选择困难症”
- 第二人生的源码分析(三十)UDP接收数据和Windows网络关闭
- java excel 合并单元格_java excel 合并单元格
- 壁纸最佳分辨率尺寸表
- 大一训练赛-20180929-整套代码
- 将url地址中的编码转汉字
- 如何新建一个oracle数据库,ORACLE怎么新建数据库
- win10 IE11卸载了怎么重装
热门文章
- win10 双屏 窗口显示快捷键
- 计算机系统集成过程检查规范,系统集成项目验收规范.docx
- 怎么查看计算机硬盘sn,硬盘序列号,教您怎么查看硬盘序列号
- 西部数据移动硬盘真伪测试软件,如何查询西数移动硬盘的真伪
- c 语言小游戏源程序,c/c++小游戏源代码
- ISO_7637-1/2/3/4/5标准各部分修订状态汇总(Road vehicles-Electrical disturbances from conduction and coupling)
- 专利与论文-4:专利申请流程与生命周期及费用
- 应用+技术!闪马智能惊艳亮相WAIC!斩获AIWIN双料大奖!
- bochs怎么运行Linux系统,Ubuntu上使用Bochs
- qam调制与解调matlab,QAM调制解调中如何加入软解调算法程序