最近公司的项目准备着手宣传工作了,宣传手册上要印制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应用分发下载安装相关推荐

  1. iOS:苹果企业证书通过网页分发下载安装app

    iOS:苹果企业证书通过网页分发安装app       苹果的企业级证书发布的应用,是不用设备授权即可直接安装,并且不限设备上限.为了方便分发,苹果有协议实现通过网页链接直接下载安装企业级的应用.   ...

  2. android 多开app store,原来 iOS 也有双开助手,还是上架了苹果官方 App Store 的

    原标题:原来 iOS 也有双开助手,还是上架了苹果官方 App Store 的 大家都知道iOS不像安卓,可以给App双开,但是现在很多人工作需要都需要双开软件.最近堂堂发现了原来IOS在App St ...

  3. 八位彻底改变App Store的iOS开发者

    我们与 app 交互的方式已经被一群聪明的开发者所完全改变,他们的共性是对 app 都有各自独到的见解.下面就是其中最顶尖的八位. Loren Brichter Tweeite 不是 iOS 上第一个 ...

  4. 苹果11显示无法连接服务器,iOS 11无法连接App store怎么办 iOS 11 App store无法连接怎么办...

    有不少抢先体验了iOS 11系统的用户发现,自己的设备在升级到iOS 11系统之后,出现了App store无法连接的情况.打开App store就是一片空白或者无限转圈圈.那么iOS 11无法连接A ...

  5. App Store上架iOS App的详细流程

    最近负责将公司某个项目的iOS应用上架到App Store,在上架的过程中,需要做的事情很多,但很多都不涉及到太多的技术问题,但是流程很多,而且对应用有很多要求,在上架的过程中也遇到一些问题,后也顺利 ...

  6. iOS企业包下载安装

    当客户端完成开发和测试之后,准备上线给用户使用,就需要提供下载渠道,上传到「应用商店」和「App Store」是很常见的做法,但是今天我们要来聊一下 iOS 企业包的下载方式. 一.背景介绍 1.An ...

  7. ios mailto:// 用邮箱发邮件_英雄联盟手游公测,安卓/苹果iOS注册最新下载安装教程!...

    目前安卓/iOS在 28 日开启公测的地区有:日本.韩国.泰国.越南.菲律宾.马来西亚.新加坡. 12月首周公测地区:欧洲.中国台湾.大洋洲.越南,甚至还包括 中东.北非.俄罗斯.土耳其. 2021年 ...

  8. 【操作系统】HarmonyOS App开发工具HUAWEI DevEco Studio下载安装及第一个HarmonyOS App实战教程

    路标 DevEco Studio简介 DevEco Studio的下载安装 安装过程演示 开发第一个基于Java的TV App 微信公众号原文链接:点击查看 2020年9月10日,华为开发者大会发布了 ...

  9. 微信浏览器打开ios App Store 并且可以打开或下载pp

    下面就是关键了 var url = "https://itunes.apple.com/cn/app/idxxxxx";         setTimeout(function() ...

  10. 制作IOS企业版App网页扫描二维码下载安装

    有时候我们需要在XX网站的主页上去扫描二维码下载,那么ios开发中如何做到这一点呢. 我给大家解答一下,这也是在最近工作中用到的部分,在网上了解了一些. 下面给大家分解一下步骤: 1.Plist 和 ...

最新文章

  1. 浅谈文本词向量转换的机制embedding
  2. GPRS的工作原理、主要特点
  3. [云炬创业基础笔记]第二章创业者测试3
  4. jmap+MAT实战内存溢出
  5. 每日学习小记 11/02
  6. 【转载】C++ function、bind和lambda表达式
  7. lambda表达式学习例子
  8. vue 第四天 (计算属性的使用)
  9. rsync 全网备份企业案例
  10. 《深入浅出MFC》第一、二章笔记
  11. KVM 虚拟化技术 理论详解
  12. 关于一个博客系统的 整体架构与技术
  13. 女程序员写代码被骂,把领导萌死,成功治愈“选择困难症”
  14. 第二人生的源码分析(三十)UDP接收数据和Windows网络关闭
  15. java excel 合并单元格_java excel 合并单元格
  16. 壁纸最佳分辨率尺寸表
  17. 大一训练赛-20180929-整套代码
  18. 将url地址中的编码转汉字
  19. 如何新建一个oracle数据库,ORACLE怎么新建数据库
  20. win10 IE11卸载了怎么重装

热门文章

  1. win10 双屏 窗口显示快捷键
  2. 计算机系统集成过程检查规范,系统集成项目验收规范.docx
  3. 怎么查看计算机硬盘sn,硬盘序列号,教您怎么查看硬盘序列号
  4. 西部数据移动硬盘真伪测试软件,如何查询西数移动硬盘的真伪
  5. c 语言小游戏源程序,c/c++小游戏源代码
  6. ISO_7637-1/2/3/4/5标准各部分修订状态汇总(Road vehicles-Electrical disturbances from conduction and coupling)
  7. 专利与论文-4:专利申请流程与生命周期及费用
  8. 应用+技术!闪马智能惊艳亮相WAIC!斩获AIWIN双料大奖!
  9. bochs怎么运行Linux系统,Ubuntu上使用Bochs
  10. qam调制与解调matlab,QAM调制解调中如何加入软解调算法程序