以无线方式安装企业内部应用-兼容iOS9
2015-09-29 16:32
399 查看
前言
之前曾写过几篇文章介绍过以无线方式安装app,地址如下:第一篇-iOS5,6时代
第二篇-兼容iOS7.1后的文章更新
一直以来,苹果的安全规则不断的在变化,从这个app无线安装方式的变化上也可见一斑。从一开始的iOS6之前的http协议,到iOS7.1之后的plist文件的https协议。再到现在最新的iOS9的所有链接均为https协议。由此可见,苹果对于安全性方面的努力还是值得肯定的。
废话少说,此篇为之前几篇文章的重新编辑,并根据iOS9的要求作出相应的变化。
具体流程
在最新的Xcode7中,export应用的时候,可以直接勾选同时导出无线安装的配置文件。这也大大简化了无线部署的流程,不需要像上面第一篇教程的需要手动修改配置文件模版。如下图所示:
勾选,然后next,然后我们可以看到无线安装方式的几个配置参数
如图可见,iOS9需要全部文件均为https协议,这也刚好解答了我之前一直存在的疑问。在刚刚升级到iOS9之后,我用原来的方法进行版本升级,发现一直不成功,弹出“无法安装”的错误,当时逼着换成跳转到网页,然后手动点击安装的方法来迂回解决。今天刚好有空研究了一下,发现是下载协议的问题,更换了https协议后部署,重新更新应用,这次成功了。
言归正传,从export出来的plist文件,我们可以观察到,配置文件内容跟之前的是一样的,只是更换了下载协议。
完整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>https://appinstaller.sinaapp.com/xxx/xxx.ipa</string> </dict> <dict> <key>kind</key> <string>display-image</string> <key>url</key> <string>https://appinstaller.sinaapp.com/xxx/icon-57.png</string> </dict> <dict> <key>kind</key> <string>full-size-image</string> <key>url</key> <string>https://appinstaller.sinaapp.com/xxx/icon-512.png</string> </dict> </array> <key>metadata</key> <dict> <key>bundle-identifier</key> <string>com.company.appname</string> <key>bundle-version</key> <string>1.0</string> <key>kind</key> <string>software</string> <key>title</key> <string>应用名称</string> </dict> </dict> </array> </dict> </plist>
将上面步骤生成的plist文件,以及ipa文件部署到https服务器上,使用itms-services://协议可以直接进行app的无线安装。如下面应用的安装地址:
itms-services://?action=download-manifest&url=https://appinstaller.sinaapp.com/xxx/xxx.plist
我们可以将这个地址包装在一个web页面上,通过web页面上的按钮,让用户可以更直观的进行安装。
以下是我一直在用的一个简单的安装界面:
点击页面,即可进行安装。
web页面代码如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>app install</title> <meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0;" name="viewport" /> <style type="text/css"> *{ margin:0; padding:0;} body{ background:#C5CCD4;} a{ text-decoration:none;} .install{ position:relative; max-width:500px; margin:10px; padding:70px 10px 10px 100px; background:#fff; border:1px solid #d7d7d7; border-radius:10px; -webkit-box-shadow:1px 1px 2px rgba(0,0,0,.6); line-height:14px;} .icon{ position:absolute; top:10px; left:10px;border:1px solid #d7d7d7; border-radius:5px; -webkit-box-shadow:1px 1px 1px rgba(0,0,0,.6); } .install h1{ position:absolute; top:10px; left:100px; color:#333; font-weight:bold; font-size:18px;} .install h3{ position:absolute; top:10px; left:100px; color:#333; font-weight:normal; font-size:15px;} .install span{ font-size:14px; color:#999;}</style> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> </head> <body><a href="itms-services://?action=download-manifest&url=https://appinstaller.sinaapp.com/xxx/xxx.plist"> <div class="install"> <div class="icon"><img alt="" src="https://appinstaller.sinaapp.com/xxx/icon-57.png" /></div> <h1>应用名称xxx</h1><br /> <h3><br /> <br />测试版安装方法:在iPhone上用Safari打开此页面,点击图标即可安装</h3> <div><font face="wp_bogus_font">文件大小:5.8MB</font></div></div><span><br /> </span></div></a> </body> </html>
至此,完整的无线安装app的步骤已经介绍完毕,文章如有错漏,请各位不吝赐教。
后记
关于上面步骤提到的https,想必不是每个人都可以有条件或者时间去配置https服务器,幸好我们可以利用第三方提供的https服务。例如我上面使用的https服务,便是新浪sae提供的,具体设置步骤可以参考我上面提到的第二篇教程:iOS 7.1使用企业应用部署方式无法安装app(2014-09-13更新:dropbox被墙后的解决方案)
点击查看
相关文章推荐
- IOS 绘制PDF -转
- iOS开发日记27-WebView与JS的交互
- IOS开发之格式化日期时间
- iOS9适配 之 关于info.plist 第三方登录 添加URL Schemes白名单
- ios无限旋转
- iOS7之后视图被导航栏遮挡问题
- ios一些噁心记录
- iOS缓存
- iOS9 适配
- iOS9 更新
- ios D-U-N-S Number(邓白氏编码)申请
- 升级到IOS9以后,QQ授权登录和QQ分享出现问题,不能正常使用了(二)
- nagios监控报警一般搭建过程及常见问题
- 在iOS 开发中用GDataXML(DOM方式)解析xml文件
- iOS调试技巧之Log
- IOS 绘图坐标系颠倒问题
- iOS开发自学心得
- iOS 颜色选择器 仿ps 调色板
- ios身份证号正则
- "ios模拟器未能安装此应用程序" 在 xcode 5.1中