不通过AppStore,在iOS设备上直接安装应用程序的原理
本文转载至 http://mobile.51cto.com/hot-439095.htm
通过itms-services协议,可以通过safari浏览器直接在iOS设备上安装应用程序。利用这种方式,只要在内网布置一个服务器,测试人员只需要通过测试设备的safari浏览器访问特定的url既可以实现安装,然后测试了。
AD:WOT2015 互联网运维与开发者大会 热销抢票
通过itms-services协议,可以通过safari浏览器直接在iOS设备上安装应用程序。利用这种方式,只要在内网布置一个服务器,测试人员只需要通过测试设备的safari浏览器访问特定的url既可以实现安装,然后测试了。(PS:越狱设备也可以)
itms- services协议需要一个plist配置文件。如果要实现上面图示的功能,需要的文件有:一个ipa文件,一个plist文件,一个html文件和一 个图片文件。其中,最主要的,就是plist文件。通过shell脚本,我们可以让其自动为我们生成plist文件和html文件,并且在xcode工程 中的ipa文件和程序图标文件复制一份,放到一起。
《xcode自动打ipa包脚本》学习地址:http://webfrogs.me/2012/09/19/buildipa/
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://www.tammy.com:450/static/ios/(targetname)_(version)_build(buildversion)_yyyyMMdd.ipa</string>
- </dict>
- </array>
- <key>metadata</key>
- <dict>
- <key>bundle-identifier</key>
- <string>应用程序中的<span style="font-family:FangSong_GB2312">bundle-identifier</span><span style="font-family:FangSong_GB2312"></string></span>
- <key>bundle-version</key>
- <string>版本号</string>
- <key>kind</key>
- <string>software</string>
- <key>subtitle</key>
- <string>子标题</string>
- <key>title</key>
- <string>软件名称</string>
- </dict>
- </dict>
- </array>
- </dict>
- </plist>
html文件范例如下:
- <span style="font-size:12px"><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
- <html>
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
- <meta http-equiv="Content-Style-Type" content="text/css">
- <title>测试包安装</title>
- </head>
- <body>
- <br>
- <div style="position:absolute;left:200px" width=400><a href="../index.html">返回</a></div>
- <h1 align="center">开发版(TRUNK)</h1>
- <table align="center" border=1 width=400>
- <tr height=60>
- <th colspan=2><h2>标题</h2></th>
- </tr>
- <tr height=60 align="center">
- <td width=200><a href="itms-services://?action=download-manifest&url=</span><span style="font-size:10px"><span style="font-family:FangSong_GB2312">http://www.tammy.com:450/static/ios/****.plist</span><span style="font-family:FangSong_GB2312">"><h2>Install</h2></a></td></span></span><span style="font-size:12px">
- <td width=200><a href="</span><pre name="code" class="html" style="color:rgb(34,34,34); line-height:22px">http://www.tammy.com:450/static/ios/(targetname)_(version)_build(buildversion)_yyyyMMdd.ipa</pre>"><h2>Download</h2></a></td></tr> </table><br></body></html>
不通过App Store,直接安装应用程序的实现步骤:
1、设置签名
利用developer profile或者adhoc distribution profile签名app,注意,不能使用distribution profile方式签名;个人开发者证书只能在100个设备中实现无线安装。
2、生成arichive
菜单:product->archive,完成后可以在organizer中看到生成的arichive。
3、生成ipa
选择刚刚生成的arichive,点击“Distribute...",弹出如下图界面,选择第二个,点“next”,设置相关参数,一 定要勾选“save for enterprise distribution”。application url,是生成的ipa在服务器的位置;title是安装过程中出现的标题;large image url 和 smal image url是安装过程中出现的图标。点击保存,将生成两个文件:***.ipa和***.plist。
4、服务器部署
将生成的***.ipa和***.plist文件部署到服务器,同时在服务器生成一个html文件,目的是点击后打开一个链接,这样ios设备就会执行指令自动安装app了。要打开的链接内容如下:
itms-services://?action=download-manifest&url=http://www.tammy.com:450/static/ios/****.plist
不通过AppStore,在iOS设备上直接安装应用程序的原理相关推荐
- IOS企业版app部署到自己服务器,不通过AppStore,在iOS设备上直接安装应用程序
IOS企业版app部署到服务器上说明 正对ios升级得ios7 以后,plist文件必须放到 https得服务器上了,http不可以用了. 解决方式: 找一个第三方https外链的网盘(推荐:七牛云存 ...
- 不通过App Store,在iOS设备上直接安装应用程序
今天在iOS设备上安装天翼云存储app,在safari上直接打开http://cloud.189.cn/wap/index.jsp,点击"点击免费安装",如下图: 神奇的事情发生了 ...
- 在iOS设备上如何使用Chrome浏览器的书签
核心提示:谷歌Chrome浏览器iOS版正式登陆AppStore.不过有很多人安装以后没有找到书签工具,以为没有.其实不然.iOS设备上的Chrome浏览器是内置有书签工具的,和Safari相比,不是 ...
- 如何在未越狱的iOS 设备上安装 ipa
如果你是 iOS 开发者, 给客户开发的app, 在发布到appstore 前,需经过客户的测试. 如果客户的iOS设备不是越狱的,你只好通过 ad-hoc 模式,将生产的 ad-hoc profil ...
- 使用 Xcode 在越狱 iOS 设备上进行开发调试
1 目的 2 iOS 设备的设置 3 生成私有签名 4 设置 Xcode 4.1 告诉 Xcode 不需要签名 4.2 告诉 Xcode 不用做签发动作 4.3 指示 Xcode 使用私有签名签发 A ...
- 神器面世:让你快速在 iOS 设备上安装 Windows、Linux 等操作系统!
今天我想跟大家分享下,最近连续几天,持续霸榜 GitHub Trending 的一款开源神器:UTM. https://github.com/utmapp/UTM/ 相信在座的各位,多多少少都有过给电 ...
- 【转】使IFRAME在iOS设备上支持滚动
原文链接:Scroll IFRAMEs on iOS 原文日期: 2014年07月02日 翻译日期: 2014年07月10日 翻译人员:铁锚 很长时间以来, iOS设备上Safari中超出边界的元素 ...
- 在Windows笔记本上调试运行在iOS设备上的前端应用
我在每天工作中需要在不同的移动设备上测试我们开发的前端应用是否正常工作,比如iOS设备和Android设备.我用的工作笔记本电脑又是Lenovo的,安装的是Windows操作系统. 有的时候一个开发好 ...
- 《CCNA安全640-554认证考试指南》——第6章在Cisco IOS设备上保护管理层
本节书摘来自异步社区<CCNA安全640-554认证考试指南>一书中的第6章在Cisco IOS设备上保护管理层,作者 [美]Keith Barker , Scott Morris,更多章 ...
最新文章
- 添加打印机还显示脱机_win7系统电脑连接打印机后显示脱机怎么办
- arm linux下 chkntfs,XPE开机自动扫描相关_Windows Embedded Standard 7 嵌入式定制的技术博客_51CTO博客...
- C之 #pragma(二十二)
- VS条件断点学习总结
- mfc 饼图绘画_绘画技能干货 | 【人体头颈】的绘画技巧(三)(内含母亲节抽奖公布)...
- openwrt多wan限上下行速脚本,基于qosv4,imq模块替换成ifb模块[ZT]
- linq中的castT()及OfTypeT()
- JAVA程序设计:接受数字并求和
- 面试小结170308
- android alertdialog_Android进阶:Activity设置主题背景后AlertDialog的背景随之改变的问题分析
- vc中操作Xml--使用CMarkup类
- ligerui php mysql_ligerui中3级联动的数据库例子
- [运维笔记] PowerShell (模块).模块的查找、安装、卸载、更新、保存、发布
- linux下添加vnc
- 调度工具之Azkaban 介绍
- 求救 关于ORA-01115的错误
- 疯狂的上网本意义何在?
- weblogic 12c 打补丁
- 高中数学必修3知识点总结归纳:第三章概率
- 【微信小程序】开发入门篇(二)
热门文章
- Django 各类配置选项全集
- winform模拟登陆网页_【教程】模拟登陆网站 之 C#版(内含两种版本的完整的可运行的代码)...
- Python基础编程——字典的创建
- 你还在这样学习Python吗?真的不可以
- oracle sql 平均分配 分组_SQL学习二
- java char 相等_Java程序员须知Java字符串的十大问题
- 关于学习Python的一点学习总结(51)
- PTA团体程序设计天梯赛-L2-021 点赞狂魔
- 期望dp ---- B. Tree Array 思维+期望dp 逆序对期望数
- Codeforces 1300E. Water Balance[单调栈]