iOS OTA无线安装App

4,667 阅读3分钟

今天使用蒲公英给别人发测试 APP(一个游戏的重签名包) 的时候被封禁了,在寻找其他的分发方法的时候顺便也探讨了下蒲公英的这个 app 分发机制.

1.OTA 概念

OTA 即 Over-the-Air,是 Apple 在 iOS4 中新加的一项技术,目的是让开发者能够脱离 Appstore,实现从服务器下载并安装 iOS 应用。 用户只需要在 iOS 设备的浏览器中,打开itms-services://协议链接,就可以直接安装App。(注意:此处的安装是指,个人账号需要注册设备,企业账号无需注册设备)

2.所需资源

    1. ipa 包
    • 企业账号签名包,用户只需信任企业开发者就能安装
    • ad hoc包,需要描述文件中包含的设备才能安装
    1. manifest.plist
    1. icon文件,(2张)尺寸:512x512、57x57 (不重要)
    1. 一个简单的 html 静态页面

manifest.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>xxx.ipa</string>
				</dict>
				<dict>
					<key>kind</key>
					<string>display-image</string>
					<key>url</key>
					<string>xxx/icon-57.png</string>
				</dict>
				<dict>
					<key>kind</key>
					<string>full-size-image</string>
					<key>url</key>
					<string>xxx/icon-1024.png</string>
				</dict>
			</array>
			<key>metadata</key>
			<dict>
				<key>bundle-identifier</key>
				<string>xxx.xxx.xxx</string>
				<key>bundle-version</key>
				<string>1.0.x</string>
				<key>kind</key>
				<string>software</string>
				<key>title</key>
				<string>xxxx</string>
			</dict>
		</dict>
	</array>
</dict>
</plist>
字段 描述
software-package ipa 文件所在地址
display-image 图标缩略图
full-size-image 图标全尺寸
bundle-identifier 包名 com.xxx.xx
bundle-version 版本 1.0.x
title 应用名

静态 html 页面 页面长啥样不重要,重要的是要有以下代码

<!DOCTYPE html>
<html lang="en">
<head>
   <meta charset="UTF-8">
   <title>标题</title>
</head>
<body>
<a href="itms-services://?action=download-manifest&url=manifest.plist的地址">点击安装</a>
</body>
</html>

3.操作步骤

如果 ipa 包本身小于100MB 的话,用 gitee 或者 github 也可以,有能力的可以自己搭建服务器. 我以腾讯云为例,新用户可以免费领取6个月的对象存储 COS

把我们之前准备好的文件都传到服务器上

正确顺序应该是先传 ipa 和两个图片,有了具体地址后填好 manifest.plist,上传,最后上传我们的 down.html

然后在浏览器中访问 down.html,点击"点击安装"就可以了

4. 主意事项

    1. 正常导出 ipa 包的时候选择 adhoc,或者有企业开发者账号的打企业包
    1. 重签名的话要提前在苹果开发者中心生成 adhoc 的配置文件,使用这个配置文件重签名.