当我们在分发企业应用时,我们可以通过 OTA 进行无线安装。
准备分发应用
要分发企业内部应用,首先需要打包应用(.ipa 文件)和创建用于启用无线分发和应用安装的清单文件。
最新的 Xcode 在打包应用时能够帮助生成清单文件,只需要在导出时选择:
并填写软件基本信息,如下图:
这些信息对应:
- Name 对应清单文件中的 title 字段:下载和安装过程中显示的应用名称
- App URL 对应 URL 字段:应用 (.ipa) 文件的 HTTPS 完整 URL
- Display Image URL 对应 display-image 字段:下载和安装过程中显示的应用图标,57 x 57 像素 PNG 图像的完整 URL
- Full Size Image URL 对应 full-size-image 字段:iTunes 中显示的应用图标,512 x 512 像素 PNG 图像的完整 URL
Xcode 将会生成相应的 .ipa 和 manifest.plist 文件。完整的 manifest 可见苹果帮助[1]。
接下来就可以将页面中的 App 下载链接指向该清单文件:
<a href="itms-services://?action=download-manifest&url=https://example.com/manifest.plist">Install App</a>
一个完整的单页面网站结构可能包含如下文件:
搭建下载服务器
接下来就是将文件部署到 Web 服务器上,参考《Mac OS X 启用 Web 服务器》启动 Apache 服务,并将第一步生成的文件放到部署到站点根目录下。
在 iOS 上可以使用 Safari 访问部署服务器地址,由于 iOS 7.1 或更高版本通过无线安装企业应用时,要求使用 HTTPS 部署,当点击安装链接时,会提示服务器上的证书无效,如图:
我们可以根据《Mac OS X 启用 Web 服务器》的步骤启用 HTTPS 服务。
但由于我们的测试服务器是自签名证书,不被信任,访问时会弹出:
这时候如果选择继续或(详细信息->信任),Safari 会添加一个 SSL例外 以继续访问站点并防止警告提示,但这并不会将证书安装到 iOS 中成为可信任的证书。这时如果点击下载链接时,依然会弹出无法安装应用:
因此,我们需要将自签名证书安装到iOS中:
将证书文件 (.crt) 拷贝到站点根目录下,签名文件路径见《Mac OS X 启用 Web 服务器》。
-
将页面中添加证书文件链接:
<a href="http://example.com/server.crt">Install ssl</a>
-
在 Safari 中点击安装应用前先点击安装证书,此时 iOS 会跳到 设置 页面,并提示安装描述文件:
点击 安装 将证书安装到 iOS 中。之后可以通过 设置 -> 通用 -> 描述文件 查看和删除证书文件。 -
再次回到 Safari 点击安装链接,此时,就可以正常下载和安装了企业应用了。
小结
由于之前的例子证书是绑定的域名 local.server.com
,因此在 iOS 设备上访问时也必须使用该域名,而非 IP 地址,这里,我是通过将 Mac OS X 作为代理服务器,并设置 iOS 的 HTTP 代理之后访问的,Mac 上可以使用代理软件,iOS 设置 HTTP 代理方式如下, 设置 -> 无线局域网 -> 选择连接的局域网 -> HTTP 代理 -> 手动 输入地址和端口:
当然,也可以在生成证书时绑定直接服务器 IP 地址。
-
以无线方式安装企业内部应用:http://help.apple.com/deployment/ios/#/apda0e3426d7 ↩