不通过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文件,这个文件大致如下所示

  1. <?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:协议

  1. itms-services://?action=download-manifest&url=https://plist文件的地址

接下来只要在网页(html)文件中加入

  1. <a href="itms-services://?action=download-manifest&url=https://plist文件的地址">安装</a>

这样点击手机网页上的“安装”链接就能下载安装应用了。至于这个页面要做的多花里胡哨,那就是前端美工的事了。

这里有一段比较完整的示例

  1.  1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
     2 <htmlxmlns="http://www.w3.org/1999/xhtml">
     3 <head>
     4 <metahttp-equiv="Content-Type"content="text/html; charset=utf-8"/>
     5 <title>应用名字</title>
     6 </head>
     7 <body>
     8    <h1style="font-size:80pt">如果点击无法下载安装,请复制超链接到浏览器中打开<h1/>
     9    <h1style="font-size:100pt">
    10    <a title="iPhone"href="itms-services://?action=download-manifest&url=https://dn-你的空间名字.qbox.me//你的.plist">点击下载        </a><h1/>
    11 </body>
    12 </html>
    13  

如果想手机进入页面后直接下载安装,可以在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 应用程序

原文地址:https://www.cnblogs.com/waw/p/10668921.html

时间: 2024-08-25 11:51:39

不通过App Store实现ios应用分发下载安装的相关文章

ios实现分发下载

背景:原来公司Jenkins打包后的ipa和apk都是通过第三方的平台托管,手动上传,然后去扫二维码下载.虽然第三方平台有Jenkins插件来直接上传到该平台,但是想自己进行管理.所以就自己来做安装包的分发了. (Android的比较好做,只要有下载链接就可以了,所以这里只将ios的分发) 一.存储plist文件,放在https的域名下 plist文件的格式如下: <?xml version="1.0" encoding="UTF-8"?>  <!

iOS企业包下载安装

当客户端完成开发和测试之后,准备上线给用户使用,就需要提供下载渠道,上传到「应用商店」和「App Store」是很常见的做法,但是今天我们要来聊一下 iOS 企业包的下载方式. 一.背景介绍 1.Android 软件 Android 软件打包之后的安装包后缀是「.apk」,例如:cool.apk. Android 软件打包之后,无论是直接将安装包发给用户,还是用户从应用商店下载,都可以直接安装使用. 2.iOS 软件 iOS 软件打包之后的安装包后缀是「.ipa」,例如:cool.ipa. iO

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

有时候我们需要在XX网站的主页上去扫描二维码下载,那么ios开发中如何做到这一点呢. 我给大家解答一下,这也是在最近工作中用到的部分,在网上了解了一些. 下面给大家分解一下步骤: 1.Plist 和 IPA文件 App打包我就不细说了,这个网上教程一大堆,记得真机下打包.(Xcode->Product->Archive->Export)导出ipa文件即可. Plist文件要自己创建一个(名字你喜欢就好).格式如下:(PLIST utf-8格式) 配置plist文件 , 基于下面的模版创建

mac osx App store 安装软件 发生错误

app store 安装软件时发生错误 解决办法: 1. 进入如下目录: sh-3.2# cd Library/Application\ Support/App\ Store/ sh-3.2# pwd /Users/osxlinux/Library/Application Support/App Store sh-3.2# 2. 删除目录下所有文件 sh-3.2# rm -fr * sh-3.2# 3.重启app store 找到相应得软件下载安装即可 -------------------分割

App Store成绞肉机 让创业者止步

曾几何时,苹果App Store一直被称之为创业者的天堂.似乎只要灵光一闪,创业者就能很容易地凭借一款火爆应用一夜暴富.那也被看成是App Store发展的黄金时期,各种新鲜好玩.实用大气的App层出不穷. 但目前,App Sotre再也不能顶着"创业者天堂"的光环,而是成为名副其实的绞肉机,吞噬者绝大多数创业团队的创意和作品.造成这种情况的原因有很多,无外乎内外之分而已.或许看了下面的分析,作为创业者的你就会小心翼翼地远离App Store. 竞争疯狂又残酷 创业者难出头 打开App

苹果开发——向App Store提交应用

原地址:http://zengwu3915.blog.163.com/blog/static/2783489720137410539278/ 完成一个app应用后,肯定是要提交的,下面聊一下关于向App Store提交的一些问题.我们都知道苹果审核的过程就像是在"黑箱"操作,但这并不妨碍你为这个审核过程做一些事先的准备.苹果的App Store审核指南已经告诉你哪些是允许的,哪些是不允许的.当你第一次提交你的应用到苹果的时候,这是一个令人兴奋而但又伤脑筋的过程.即使再有经验的开发者也会

App测试中ios和Android有哪些区别呢?

1 . Android长按home键呼出应用列表和切换应用,然后右滑则终止应用: 2. 多分辨率测试,Android端20多种,ios较少: 3. 手机操作系统,Android较多,ios较少且不能降级,只能单向升级:新的ios系统中的资源库不能完全兼容低版本中的ios系统中的应用,低版本ios系统中的应用调用了新的资源库,会直接导致闪退(Crash): 4.  操作习惯:Android,Back键是否被重写,测试点击Back键后的反馈是否正确:应用数据从内存移动到SD卡后能否正常运行等: 5.

APP store 官方统计工具的常见的Q&amp;A

Apple最近在iTunesConnect里最新发布了官方统计工具,提供了现有友盟统计平台和自有统计平台无法统计的数据,具有自己的独有特点,尤其是下面几个最让人头疼的流量分析转化,可以在App Analytics里得以解决,例如: 推广链接转化 网站流量来源 由于苹果自己的统计方式和其他平台有所区别,且文档只提供了英文版,故整理了常见的Q&A并翻译,其中问题的翻译,会保持和Apple自己的中文翻译一致,方便大家对照查看,在回答的翻译,有的方便理解,会改用咱们自己常说的术语.(PS:稍稍鄙视下Ap

【iOS秘籍】-下载历史版本App超详细教程

有些时候我们需要下载旧版本的 App 进行研究或者其他用途,然而在 iOS 下,苹果的 App Store 里面默认只能下载最新版本的 App,对滴,就是这么任性,不服不行.然而在 Android 里面任意一个应用商店都可以下载任意版本的 App,就是这么开放.重点来啦,今天我要教大家的就是利用 iTunes 下载任意历史版本的 App,任意哟,下面开始教程??.(为方便大家理解操作,图片较多,流量党慎入0-0) 题外话(强迫症排版.拼写): 文章排版:个人强迫症比较喜欢关注一些细节,比如博客或