iOS实现OTA无线安装App

本文详细介绍iOS应用的ipa文件及OTA安装流程,包括通过Apple Developer Enterprise Program开发、测试及分发应用的方法,以及如何利用manifest.plist文件实现iOS应用的远程安装。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

引用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张)尺寸:512x512、57x57

三、生成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、获取57x75、512x512图片链接

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.57x57 图片地址
full-size-imagehttps://coding.net/u/richluisx/p/talent-shop/git/raw/master/talent-logo.57x57.png.512x512 图片地址
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

更多文章

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值