iOS 支持以无线方式安装企业级应用程序,这可让您在不使用 iTunes 的情况下将内部软件分发给用户。
要求
-
已鉴定的用户可访问的安全 Web 服务器
-
.ipa 格式的 iOS 应用程序,经构建用于发布/生产(使用了企业级预置描述文件)
-
本文稿中稍后描述的 XML 清单文件
-
可让设备访问 Apple iTunes 服务器的网络配置
安装应用程序很简单。用户可以将清单文件从您的网站上下载到他们的 iOS 设备上。该清单文件会指示设备下载和安装该清单文件中所引用的应用程序。
您可以分发 URL 以便通过短信或电子邮件来下载清单文件,也可以将它嵌入您所创建的其他企业级应用程序中。
由您设计和主管用于分发应用程序的网站。确定用户已被鉴定(可能是使用基本鉴定或基于目录的鉴定),并确定网站可通过内联网或互联网进行访问。您可以将应用程序和清单文件放入隐藏的目录中,或任何可使用 HTTP 或 HTTPS 来读取的其他位置中。
准备企业级应用程序进行无线分发
若要准备企业级应用程序进行无线分发,您应该构建归档的版本(.ipa 文件),以及构建清单文件以启用应用程序的无线分发和安装。
使用 Xcode 来创建应用程序归档。使用您的分发证书给应用程序签名并在归档中包括您的企业级开发预置描述文件。有关清单文件的信息,请参阅以下内容。有关构建和归档应用程序的更多信息,请访问 iOS Dev Center(iOS 开发中心)或参阅《Xcode User Guide》(Xcode 使用手册),可通过 Xcode 中的“Help”(帮助)菜单来访问该使用手册。
关于无线清单文件
清单文件是 XML plist 格式的。iOS 设备使用它在 Web 服务器上查找应用程序,以及从 Web 服务器上下载和安装应用程序。清单文件是由 Xcode 创建的,使用您在共享归档的应用程序以进行企业级分发时所提供的信息。请参阅上一节准备应用程序进行分发。
以下栏是必填的:
项目 | 描述 |
---|---|
newsstand-image | 完整大小的 PNG 图像,用于显示在“报刊杂志”书架上。 |
UINewsstandBindingEdge UINewsstandBindingType | 这些键必须与“报刊杂志”应用程序中的 info.plist 中的键相符。 |
UINewsstandApp | 指示该应用程序是“报刊杂志”应用程序。 |
您可以使用的一些可选键如示例清单文件所述。例如,如果应用程序文件太大并且您想要在执行错误检验(TCP 通信通常会执行该操作)的基础上确保下载的完整性,则可以使用 MD5 键。
您可以使用单个清单文件安装多个应用程序,方法是指定 items 数组的附加成员。
本文稿末尾列出了示例清单文件。
构建网站
将这些项目上传到您网站上已鉴定的用户可以访问的区域:
-
应用程序 (.ipa) 文件
-
清单 (.plist) 文件
您的网站设计可以像用来链接到清单文件的单个页面那么简单。当用户轻按 Web 链接时,清单文件会被下载,并触发它所描述的应用程序的下载和安装。
以下是一个示例链接:
请勿添加归档的应用程序 (.ipa) 的 Web 链接。载入清单文件时,设备会下载该 .ipa。虽然 URL 的协议部分是 itms-services,但 iTunes Store 并不参与此过程。
设定服务器 MIME 类型
您可能需要配置您的 Web 服务器以便正确地传输清单文件和应用程序文件。
对于 OS X Server,将以下 MIME 类型添加到 Web 服务的“MIME Types”(MIME 类型)设置中:
对于 IIS,使用 IIS Manager 在服务器的“属性”页面中添加 MIME 类型:
openssl使用的是macos系统自带的版本,关键点是不同直接使用ios设备打开https的链接,需要将证书发到系统的mail里,安装到设备,
如果命令执行不成功,用sudo执行。
1.生成服务器的私钥
openssl genrsa -out server.key 1024
2.生成签署申请(注意除Common Name以外可以为空,Common Name必须为服务器的ip或域名)
openssl req -new -key server.key -out server.csr
3.生成CA私钥
openssl genrsa -out ca.key 1024
4.利用CA的私钥产生CA的自签署证书
openssl req -new -x509 -days 365 -key ca.key -out ca.crt
5.在当前目录创建demoCA,里面创建文件index.txt和serial,serial内容为01,index.txt为空,以及文件夹newcerts
openssl ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key
将ca.crt文件通过邮件发送到ios设备的Mail上,进行证书的安装
nginx https配置: