iOS实现OTA无线安装App

作者 : 开心源码 本文共3230个字,预计阅读时间需要9分钟 发布时间: 2022-05-12 共152人阅读

引使用Apple说明:
您可以用 Apple Developer Enterprise Program(Apple 开发者企> 业级计划)开发 iOS 和 macOS 应使用,对于开发、测试应使用以及将> > 其分发给使用户,此计划提供了完整的流程。您可以通过将应使用托管> > 在您创立的安全网站服务器上来分发应使用,或者通过用移动设施管> > 理 (MDM) 处理方案或者其余应使用管了解决方案来进行分发。

参考链接: Apple – 创立企业内部应使用

一、概念详情

1、什么是ipa文件?

IPA 既 iPhone application archive ,是 iOS 系统的软件包,ipa 文件都是用苹果的 FairPlayDRM 技术进行加密保护的。

每个 ipa 文件都是 ARM 架构的可执行文件以及该应使用的资源文件的打包文件,只能安装在 iPhone,iPod Touch 或者 iPad 上。

ipa 文件可以通过修改后缀名为 zip 后,进行解压缩,查看其软件包中的内容。

2、什么是OTA?

OTA 即 Over-the-Air,是 Apple 在 iOS4 中新加的一项技术,目的是让开发者能够脱离 Appstore,实现从服务器下载并安装 iOS 应使用。

使用户只要要在 iOS 设施的浏览器中,打开itms-services://协议链接,即可以直接安装App。(注意:此处的安装是指,个人账号需要注册设施,企业账号无需注册设施)

3、如何通过OTA安装?

OTA方式安装,是通过 WebKit 解析链接中的itms-services://来实现的。

例如: <a href="itms-services://?action=download-manifest&url=https://coding.net/u/richluisx/p/talent-shop/git/raw/master/manifest.plist">点击安装</a>

iOS 浏览器会去读取 manifest.plist 中的信息,如:iOS应使用的名称、版本、安装地址等。

4、IPA打包方式
打包方式开发者账号类型发布App Store安装设施证书
App Store公司账号、个人账号YES无限制发布证书
Ad Hoc公司账号、个人账号NO100发布证书
Enterprise企业账号NO无限制发布证书
Development公司账号、个人账号NO100开发证书
5、Apple开发者账号类型
账号类型价格发布AppStore安装设施数量证书类型
个人账号$99YES100Ad Hoc, App Store
公司账号$99YES100Ad Hoc, App Store
企业账号$299NO无限制Ad Hoc, In House
教育账号$0YES100Ad Hoc, App Store

二、分发App准备

项目说明
支持HTTPS的服务器本文选择coding托管,也可以放到自己的服务器,原理相同
ipa文件本文中用企业签名的.ipa文件,蒲公英企业签名服务
manifest.plist文件包含.ipa的下载地址、图片地址
icon文件(2张)尺寸:512×512、57×57

三、生成manifest.plist

1、打开Xcode,Targets选中Generic iOS Device,而后选择Product,选择Archive打包。
2、进入Archives,选择Export,下边三种方法都可以选。(区别参考1.4)

3、勾选,包含 manifest.plist 文件使用于 OTA 安装。

4、填写相关信息,生成 manifest.plist 文件。(随意填写,后面可以修改)

5、选择,自动管理签名,而后导出。

6、获取到 manifest.plist 文件。

四、上传服务器

本文用 coding 服务器来演示,也可以放到自己的服务器中,原理相同。

1、将文件推送到coding仓库,目录结构如下

2、获取.ipa文件下载链接

3、获取57×75、512×512图片链接

4、获取manifest.plist链接,先选择“原始数据”,而后“复制浏览器中的链接”

五、修改manifest.plist

1、将第四章的获取的链接,以及App信息等数据,替换到【xxxxx】标记的对应内容中,而后重新推送到coding远程仓库。
<?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>【xxxxx】</string>                </dict>                <dict>                    <key>kind</key>                    <string>display-image</string>                    <key>url</key>                    <string>【xxxxx】</string>                </dict>                <dict>                    <key>kind</key>                    <string>full-size-image</string>                    <key>url</key>                    <string>【xxxxx】</string>                </dict>            </array>            <key>metadata</key>            <dict>                <key>bundle-identifier</key>                <string>【xxxxx】</string>                <key>bundle-version</key>                <string>【xxxxx】</string>                <key>kind</key>                <string>software</string>                <key>title</key>                <string>【xxxxx】</string>            </dict>        </dict>    </array></dict></plist>

字段参考:

字段说明
software-packagehttps://coding.net/u/richluisx/p/talent-shop/git/raw/master/talent-shop.ipa.ipa 安装包地址
display-imagehttps://coding.net/u/richluisx/p/talent-shop/git/raw/master/talent-logo.512x512.png.57×57 图片地址
full-size-imagehttps://coding.net/u/richluisx/p/talent-shop/git/raw/master/talent-logo.57x57.png.512×512 图片地址
bundle-identifiercom.xxx.xxx包标识
bundle-version1.2.1版本号
title达人店应使用名称

六、生成下载App的html

1、通过<a>标签,跳转itms-services协议链接的方式,来下载安装App。

OTA安装协议参考:

itms-services://?action=download-manifest&url=【替换为 manifest.plist 文件地址】

示例代码:

<!DOCTYPE html><html lang="en"><head>   <meta charset="UTF-8">   <title>达人店App下载</title></head><body><a href="itms-services://?action=download-manifest&url=https://coding.net/u/richluisx/p/talent-shop/git/raw/master/manifest.plist">点击安装</a></body></html>

七、安装App

说明
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » iOS实现OTA无线安装App

发表回复