iOS:苹果企业证书通过网页分发安装app



      苹果的企业级证书发布的应用,是不用设备授权即可直接安装,并且不限设备上限。为了方便分发,苹果有协议实现通过网页链接直接下载安装企业级的应用。


      基本的原理就是在生成企业证书授权的ipa的同时,要生成一个对应的plist文件,plist文件中会配置ipa的下载地址、版本信息、Bundle ID 等信息,通过网页下载的时候其实下载的是这个plist文件,然后苹果通过自己的协议根据plist文件的配置信息去自动的下载安装app。这样就可以将这个网址链接发给用户,非常方便。



1.ipa和plist的生成步骤:



选择外置设备选项(实际有无设备无关),将程序Archive。




选择Ad-Hoc用于分发。




选择自己的企业级证书。




这个地方是生成plist文件的步骤(找了好久才找到。。),注意红框的里面的选择框,就可以弹出下面的信息。这里只需要填入ipa的下载地址,和ipa的名字就可以了~~。其余信息只要在工程里设置好了就会自动生成。



2.构建网站


将这些项目上传到您网站上已鉴定的用户可以访问的区域:



应用程序 (.ipa) 文件



清单 (.plist) 文件




您的网站设计可以像用来链接到清单文件的单个页面那么简单。当用户轻按 Web 链接时,清单文件会被下载,并触发它所描述的应用程序的下载和安装。



首先要写一个html网页文件,通过网页文件来访问


这个方法需要写两个文件:


1. 一个HTML网页文件。例如:


<!DOCTYPE html>
 
<html lang="zh-cn">
 
  <head>
 
    <meta charset="UTF-8">
 
    <title>lhoa_ios</title>
 
    <meta http-equiv="Content-Type" content="text/HTML; charset=utf-8">
 
    <meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0;" name="viewport" />
 
<script type="text/javascript">
 
function doLocation(url)
 
{
 
  var a = document.createElement("a");
 
  if(!a.click) {
 
    window.location = url;
 
    return;
 
  }
 
  a.setAttribute("href", url);
 
  a.style.display = "none";
 
  document.body.appendChild(a);
 
  a.click();
 
}
 
</script>
 
  </head>
 
  <body> 
 
<script type="text/javascript">
 
doLocation('itms-services:///?action=download-manifest&url= 
 https%3A%2F%2Fapp.lxxxx%2Fxxx.plist 
 ');
 
</script>
 
  </body>
 
</html>


然后将html文件放到服务器,通过访问html文件去解析plist文件,再通过plist文件下载ipa包。(红色URL是服务器上plist文件路径变更时改动的地方,其他地方不动)。


2. 一个应用程序描述plist文件。

请勿添加归档的应用程序 (.ipa) 的 Web 链接。载入清单文件时,设备会下载该 .ipa。虽然 URL 的协议部分是 itms-services,但 iTunes Store 并不参与此过程。



以下服务器配置有服务器管理员配置,我们不做要求


设定服务器 MIME 类型



您可能需要配置您的 Web 服务器以便正确地传输清单文件和应用程序文件。



对于 OS X Server,将以下 MIME 类型添加到 Web 服务的“MIME Types”(MIME 类型)设置中:



application/octet-stream ipa
text/xml plist



对于 IIS,使用 IIS Manager 在服务器的“属性”页面中添加 MIME 类型:


.ipa application/octet-stream
.plist text/xml