企业级证书签名APP的安装和更新

3,571 阅读2分钟

一、需求

当使用企业证书打包并导出ipa安装包之后,因为没有上架AppStore,所以需要通过iTunes等工具才能安装到手机上,且更新软件时也需要借助工具才能安装新版的APP。为了解决这个问题,需要实现脱离工具一键自动安装和更新。

希望实现的效果:

1、用户打开一个网页,点击安装按钮,手机开始安装APP。

2、当应用启动时检查到新版本,点击更新按钮,安装新版APP。

二、实现方案

1、Xcode打包

Xcode在打包导出时勾选 Include manifest for over-the-air installation

​ 下一步、填写相关的URL,其中:

App URL 为ipa文件的静态资源地址

Display Image URL 为57x57 的图标的静态资源地址

Full Size Image URL 为全尺寸512x512的图标的静态资源地址

下一步,按照正常流程导出ipa,此时会一起导出一个manifest.plist文件

2、如何部署

将导出的ipa文件和对应的两张图标的图片部署到服务器中,使之能通过刚才所填写的 URL地址访问,将manifest.plist文件也部署到服务器,使之能通过URL访问。

⚠️注意:以上所有涉及到URL都必须支持https

编写一个网页,其中包含一个安装按钮,按钮是一个 a 标签,链接到的地址如下

itms-services://?action=download-manifest&url=https://url.to/your/manifest.plist

其中 **https://url.to/your/manifest.plist**替换为实际能够访问 上一步导出的 manifest.plist文件的URL。

网页示例:

<!DOCTYPE html>
<html lang="zh_CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Download</title>
</head>
<body>
    <h1>点击安装按钮安装APP</h1>
    <a href="itms-services://?action=download-manifest&url=https://url.to/your/manifest.plist">安装</a>
</body>
</html>

用户只需要打开safari浏览器,访问此网页,点击安装按钮,即可开始下载安装APP。

也可以将 itms-services://?action=download-manifest&url=https://url.to/your/manifest.plist 作为内容生产二维码,然后使用iOS系统 相机 或系统自带的 扫码器 扫描二维码也可以下载安装APP。

3、如何在应用内更新APP

在 APP 中只需要 在需要更新时,使用一下代码,即可开始更新APP:

// 创建URL
NSURL * url = [NSURL URLWithString:[NSString stringWithFormat:@"itms-services://?action=download-manifest&url=https://url.to/your/manifest.plist"]];
if (url) { // 如果创建成功,打开URL开始更新
	[UIApplication.sharedApplication openURL:url options:@{} completionHandler:nil];
}

之后APP会退出,系统开始下载新的APP。