使用HTTPS网站搭建iOS应用内测网站(OTA分发iOS应用)
为什么要搭建应用内测网站呢?
1.AppStore的审核速度比较慢,万一被拒,还得等,而且一旦发布,任何人都可以下载,而有些时候只有老板想知道最新的修改是否符合要求,万一不符合要求呢?又要修改了。
2.Google AppStore的审核速度只需两三个小时,时间上甩了iOS审核几条街
3.搭建内测网站,我们只需要一个html文件、一个Plist文件、一个iPA安装包,它的好处是,只要配置好Plist和html,用户使用Safari浏览器打开网址,点击链接就可以安装,手机不需要越狱,只需要把手机的UUID加入到APPID中,我们更换版本更方便,也可以方便客户安装测试最新版本。
下面来介绍下步骤:
一、准备文件
1.打包iPA文件,首先Archives一下
然后先择导出的iPA的类型。
"Save for iOS App Store Deployment"选项导出的是 保存到本地 准备上传App Store 或者在越狱的iOS设备上使用 的iPA文件;
"Save for Ad Hoc Deployment"选项导出的是 保存到本地 准备在账号添加的可使用设备上使用(具体为在开发者账户下添加可用设备的udid),该app包是发布证书编译的(The app will be code signed with the distribution certificate.)
"Save for Enterprise Deployment"选项导出的是 针对企业级账户下 准备本地服务器分发的app
"Save for Development Deployment"选项导出的是 针对内部测试使用,主要给开发者的设备(具体也为在开发者账户下添加可用设备的udid)。该app包是开发证书编译的(The app will be code signed with your development certificate)
这里我们选择第二个选项"Save for Ad Hoc Deployment"导出 iPA文件。
2.准备plist文件,这里放一个Plist模板,大家拷贝代码,然后使用Sublim工具保存成xxx.plist文件,然后使用Xcode编辑修改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>这里填写.ipa文件的下载地址(例如,http://xx.com/xx.ipa)</string>
</dict>
</array>
<key>metadata</key>
<dict>
<key>bundle-identifier</key>
<string>这里填写Bundle ID</string>
<key>bundle-version</key>
<string>这里填写版本号</string>
<key>kind</key>
<string>software</string>
<key>title</key>
<string>这里填写应用标题</string>
</dict>
</dict>
</array>
</dict>
</plist>
3.准备一个HTML文件。这个HTML页面上我们需要放置一个提供itms-services协议的链接,用户只需要打开这个链接就可以进行在线安装,这里需要注意的是,这个链接指向的是plist文件的地址,例如:
<a href="itms-services://?action=download-manifest&url=https://xx.com/xx.plist">一键安装</a>
所以说,iOS应用的OTA方式安装的核心就是苹果的items-services协议,Safari可以通过解析itms-services协议来实现一键安装,在iOS7.1之前plist文件的URL地址没有限制,但是之后,苹果修改了规则,这个URL必须是可信任的https链接,至于其它的例如iPA文件的链接,没有特殊要求。
HTTPS链接如何配置,可以参考我的另一篇文章:MAC使用MAMP构建自签名HTTPS环境,好的,本篇博文到此结束。
参考链接:
http://jeepxiaozi.github.io/mian-app-storefen-fa-iosying-yong.html
http://www.jianshu.com/p/38443224ac89
使用HTTPS网站搭建iOS应用内测网站(OTA分发iOS应用)的更多相关文章
- 网站搭建-windows 系统 本地 网站搭建 - IIS
上一章有提到IIS安装,现在打开它: 点击浏览,如果没有启动的话,先点击启动. ip先选好,第一个吧,本机的(IIS自己提供了初始网页的东西). 然后可以自己去https://www.freemoba ...
- Apsara Clouder云计算专项技能认证:网站建设-简单动态网站搭建
一.课程介绍 1.课程目标 了解静态网站和动态网站的区别 掌握动态网站的不同实现方式 在阿里云上如何搭建 wordPress网站以及 wordPress 网站的管理和优化 二.网站搭建的类型 1.网站 ...
- https双向认证网站搭建
新建网站 在搭建网站证书之前,我们先搭建好我们的网站 1.网站基本搭建 为我们的项目新建一个网站,按照如下的步骤来 1,打开IIS,右键单击网站弹出菜单,选择网站(如图1.1.1) 图1.1.1 2, ...
- Tomcat双向Https验证搭建,亲自实现与主流浏览器、Android/iOS移动客户端超安全通信
紧接着<Tomcat单向Https验证搭建,亲自实现与主流浏览器.Android/iOS移动客户端安全通信>,此处演示下更安全的双向Https认证的通信机制,为了清晰明了,以下进行单独描述 ...
- Tomcat单向Https验证搭建,亲自实现与主流浏览器、Android/iOS移动客户端安全通信
众所周知,iOS9已经开始在联网方面默认强制使用Https替换原来的Http请求了,虽然Http和Https各有各的优势,但是总得来说,到了现在这个安全的信息时代,开发者已经离不开Https了. 网上 ...
- 如何在VPS上搭建WordPress博客网站(史上最全图文教程)
由于现在很多人仍然使用共享主机,所以我决定写这篇教程,教你如何设置自己的虚拟专用服务器(VPS),以便为启动一个 WordPress 网站准备好所有必要的服务. 为什么共享托管不是最好的选择? 你的 ...
- 阿里云+wordpress搭建个人博客网站【小白专用的图文教程】
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...
- 阿里云+wordpress搭建个人博客网站
[正文] 在阿里云上搭建使用个人博客主要分为以下几个步骤: 1.购买阿里云ECS主机 2.购买域名 3.申请备案 4.环境配置 5.安装wordpress 6.域名解析 声明一下,本人对服务器端的知识 ...
- ios开发相关网站
1.苹果开发者中心(ios Dev Center):最权威的学习ios开发的地方,提供ios开发所能用到的所有内容(包含文档.指南以及实例代码). https://developer.apple.co ...
随机推荐
- 去掉移动端页面 input, textarea, button, a 标签获取焦点时显示的黑影
input, textarea, button, a{ -webkit-tap-highlight-color:rgba(0,0,0,0); }
- Linux crontab 命令格式与详细例子
基本格式 :* * * * * command分 时 日 月 周 命令 第1列表示分钟1-59 每分钟用*或者 */1表示第2列表示小时1-23(0表示0点)第3列表示日期1-31第4列表示月份1-1 ...
- Velocity 语法(转)
一.基本语法 1."#"用来标识Velocity的脚本语句,包括#set.#if .#else.#end.#foreach.#end.#iinclude.#parse.#macro ...
- java分享第九天-01(抽象类)
1 为什么需要抽象类?如何定义抽象类 是一种模板模式,抽象类为所有子类提供了一个通用模板,子类可以在这个模版基础上进行扩展: 通过抽象类,可以避免子类设计的随意性.通过抽象类,我们就可以做到严格限制子 ...
- easyUI-增删改查
页面整体效果 首先是页面层: 因为数据中涉及到Date类型的字段,所以在一开始先做了一个拼装装换日期格式的方法 因为在easyUI的JSON解析的Data是一个long型的数字长串,关于解析的数字长串 ...
- 检测计算机已经安装的NetFramework版本(摘录)
/// /// 检测计算机已经安装的NetFramework版本 /// internal void GetVersionFromRegistry() { using (RegistryKey ndp ...
- PHP的变量
1.可变变量 一个变量的变量名可以动态地设置和使用.一个普通的变量通过声明来设置,而一个可变变量获取了一个普通变量的值作为这个可变变量的变量名,如下所示: <?php $hi = "h ...
- eclipse从下载到使用
经常遇到有同学问我: 为啥我的eclipse没有你说的那个东西? 那是咱两选择的平台不一样 我的eclipse为啥和你的那个长的不一样? 那是咱两选择的版本不一样 为什么我的打开报XXX错误? ... ...
- DS实验题 融合软泥怪-1
题目 思路 很容易想到第一种做法,用Huffman算法,从森林中找出两个值最小的节点,合并再加入森林,在这个过程中不断记录. 但是每一次需要sort一遍,将最小的两个值节点置于头两个节点,最坏情况下复 ...
- can't resolve symbol 'R' ...
in android studio IDE: 解决: Tools -> Android -> Sync Project with Gradle Files