您的位置:首页 > 移动开发 > IOS开发

以无线方式安装企业内部应用-兼容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被墙后的解决方案)

点击查看
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: