iOS企业版app部署到自己服务器(不通过AppStore,在iOS设备上直接安装ipa)

前言

我们打出的ipa包,有两种主要的方式投放到市场上,一个是上架AppStore,一个是放到自己的http服务器上,通过自己的网页下载。上架AppStore可能会遇到一些限制,审核严格,过程坎坷,这里主要介绍如何放到自己的http服务器上以供外部玩家进行下载安装ipa。注意,必须使用企业证书打的ipa包才可以通过自己的http服务器下载安装。


必须有一个https外链

针对iOS升级得iOS7 以后,plist文件必须放到https的服务器上了,http不可以用了
解决方式:
找一个第三方https外链的网盘(比如阿里云企业网盘),将plist文件放到网盘上,ipa安装包可以放在自己的http服务器上。


不通过在AppStore,在iOS设备上直接安装企业版ipa的原理

通过itms-services协议,在safari浏览器可以直接在iOS设备上安装应用程序。itms-services协议需要一个plist配置文件,这个plist文件必须放在https服务器上,通过plist中的配置,再指向回http服务器中的ipa地址。

画成流程图就是下面这样:

1 通过safari浏览器访问html下载页面
2 通过itms-services指向一个plist
3 plist中通过url指向回http服务器上的ipa包地址
4 下载ipa到苹果手机
苹果手机
http服务器: html, ipa
https服务器: plist

部署的具体过程

1. 搭建一个自己的http服务器

linux下搭建基本web服务: https://blog.csdn.net/zhydream77/article/details/79683912

假设地址是:http://mywebserver.com

2. 用企业证书打出一个ipa包,并放到自己的http服务器上

企业证书打包ipa文件(图文详解): https://blog.csdn.net/lee727n/article/details/78286178

假设打出来的包名字是 mygame.ipa
放到http服务器上,对应的下载地址假设是http://mywebserver.com/mygame.ipa
但这个并不能直接在苹果手机上下载安装,而必须通过https服务器和一个plist文件。

3. 申请一个https云盘(比如阿里云企业网盘)

阿里云:https://www.aliyun.com/
iOS企业版app部署到自己服务器(不通过AppStore,在iOS设备上直接安装ipa)_第1张图片
大致流程是:
1 购买云服务器
2 购买OSS存储
3 部署DzzOffice网盘
4 连接OSS存储
下载配套的OSS客户端,方便后面上传文件到https服务器上
阿里OSS客户端 windows下载与使用:https://blog.csdn.net/zhuiqiuk/article/details/53697223

假设我们申请到的https地址是:https://myhttpswebserver.com

4. 写一个plist文件,并放到https云上

参考下面的plist示例。注意几个地方:ipa的http地址,图标.png的http地址,游戏的bundleId,游戏的名字
假设我们的plist文件叫:mygame.plist
放到https服务器上,假设对应的plist文件的地址是:https://myhttpswebserver.com/mygame.plist
plist文件示例:





<plist version="1.0">
<dict>
    <key>itemskey>
    <array>
        <dict>
            <key>assetskey>
            <array>
                <dict>
                    <key>kindkey>
                    <string>software-packagestring>
                    <key>urlkey>
                    <string>http://mywebserver.com/mygame.ipastring>          
                dict>
                <dict>
                    <key>kindkey>
                    <string>full-size-imagestring>
                    <key>needs-shinekey>
                    <false/>
                    <key>urlkey>
                    <string>string>
                dict>
                <dict>
                    <key>kindkey>
                    <string>display-imagestring>
                    <key>needs-shinekey>
                    <false/>
                    <key>urlkey>
                    <string>http://mywebserver.com/显示的图标.pngstring>      		
                dict>
            array>
            <key>metadatakey>
            <dict>
                <key>bundle-identifierkey>
                <string>游戏的bundleIdstring>        				
                <key>bundle-versionkey>
                <string>1.0.0string>
                <key>kindkey>
                <string>softwarestring>
                <key>titlekey>
                <string>游戏名字string>   							 
            dict>
        dict>
    array>
dict>
plist>
5. 写一个html下载页面,放到自己的http服务器上

假设我们的html文件叫:mygame.html
这个html页面放到http服务器上,假设对应的页面地址是 http://mywebserver.com/mygame.html
html下载页示例:



 
<html> 
<head> 
<meta charset="utf-8"> 
<meta name="viewport" content="width=device-width; initial-scale=1.0"> 
<title>iOS企业版下载测试title> 
head> 
<body> 

<div class="doc"> 
<p align="center"><font size="7">iOS企业版下载测试font>p>
<p align="center">
	
	<a href="itms-services://?action=download-manifest&url=https://myhttpswebserver.com/mygame.plist">点击下载a>		
p>
div>
body> 
html>

以上都弄好了之后,在手机safari浏览器上输入html的路径: http://mywebserver.com/mygame.html
iOS企业版app部署到自己服务器(不通过AppStore,在iOS设备上直接安装ipa)_第2张图片
点击 [点击下载]

回到桌面,即可看到正在下载安装了。注意,必须在苹果手机上才可以下载安装哦


参考:https://blog.csdn.net/u013148287/article/details/70173335

你可能感兴趣的:(iOS,AppStore)