iOS企业版发布和配置iVersion自动更新检测

1.发布

(1)证书配置

苹果企业开发账号的发布证书配置和其他开发账号并没太多区别,只是不需要苹果审核而且打包的程序不能发布到App Store上, 最终的区别是在发布流程上面企业证书配置参考

(2)打包发布

打包发布选enterprise, 选择正确的证书和pp文件即可打包.首次打包发布可在导出文件前勾选生成manifest.plist;
manifest.plist文件是配置ipa包下载路径, app安装时进度图片url的文件, 最终发布后的安装入口指向此文件即可.具体路径如何配置,在打包时候生成此文件时候按照提示填写,后续修改相应路径即可;
manifest.plist文件为入口文件,并且必须放置在https协议的服务器路径下才可以引导安装app, 所以安装页面最好做成一个html页面, 在页面里面创建安装链接指向manifest.plist文件, 这样的话后续manifest.plist如果更改名字, 只用在安装页面重新配置以下安装链接路径即可, html的url可以做成固定的二维码;
以下是我自己写的一个APP安装的html页面供分享:

<!DOCTYPE html>
<html lang="zh">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta http-equiv='Content-Type' content='text/html;charset=UTF-8' />
<title>
iOS版-MyAPP安装
</title>

<style type="text/css">
    .title{
        background: #fdfdfd;
        height: 90px;
        font-size: 30px;
        padding: 20px;
        border-bottom: 3px solid #dddddd;
        box-shadow: 0 2px 0 #dddddd;
    }
    .title span{
        color: #666666;
        margin-left: 5px;
        margin-right: 5px;
        margin-top: auto;
        margin-bottom: auto;
    }
    .installBody{
        text-align: center;
        margin-top: 150px;
        font-size: 3rem;
    }
    img.icon{
        margin-top:auto;
        margin-bottom: auto;
        height: 200px;
        width: 200px;
        border:2px solid #dddddd;
        border-radius: 20px;
        padding:20px;
    }
    .tip{
        margin-bottom: 10px;
        font-size: 24px;
    }
    .action{
        display:inline-block;
        width:220px;
        height:60px;
        margin:20px auto 20px auto; 
        padding:5px;
        background:#00bc9e; 
        color:#ffffff;
        font-size:30px;
        text-decoration:none;
        text-align: center;
    }
</style>

<script>
    function load()
    {
        function myBrowser(){
            var userAgent = navigator.userAgent;
            var isOpera = userAgent.indexOf("Opera") > -1;
            if (isOpera) {
                return "Opera"
            }; 
            if (userAgent.indexOf("Firefox") > -1) {
                return "FF";
            } 
            if (userAgent.indexOf("Chrome") > -1){
          return "Chrome";
         }
            if (userAgent.indexOf("Safari") > -1) {
                return "Safari";
            } 
            if (userAgent.indexOf("compatible") > -1 && userAgent.indexOf("MSIE") > -1 && !isOpera) {
                return "IE";
            }; 
        }
        var mb = myBrowser();
        if ("Safari" == mb) {
            document.getElementById("warning").visibility == "hidden";
        }
    }
</script>
</head>
<body onload="load()">
    <div class="title"><span style="margin-left:40px; font-size: 40px;">MyAPP</span><span style="margin-left: 50px;">版本:1.0.0(build 10)</span><span>/</span><span>大小:2.4MB</span><span>/</span><span>2017-12-08</span></div>
    <div class="installBody">
        <div><img class="icon" src="https://www.xxxxx.com/xxxxx/icon.512x512.png"></div>
        <a class="action" href="itms-services:///?action=download-manifest&url=https://www.xxxxx.com/xxxxx/myapp_ios_release.plist">点击安装</a>
        <div class="tip"><span style="display: inline-block;background: #4fbbd4;border:1px solid #dddddd; border-radius: 5px;">适用于iOS设备</span><span style="display: inline-block;background: #d94f50;border:1px solid #dddddd; border-radius: 5px;">正式版</span></div>
        <p style="font-size: 24px;">
            <span id="warning">若无法安装请点击右上角,选择Safari打开此页面。</span><br/>
            <br/>
            点击安装后,回到桌面查看安装进度。
            <br/>
            <span style="color: red;">首次安装需做以下操作:
            <br/>
        打开手机设置-->通用-->描述文件与设备管理-->在企业应用栏下点击BGI Tech做信任授权
            </span>
        </p>
    </div>
</body>
</html>

2.配置iVersion框架自动更新提示

集成iVersion框架可以使用cocopods, 具体iVersion的接口说明可以gitHub上查看
iVersion 配置企业版升级提醒的关键是需要自己创建一个版本说明文件,记录版本更新历史,配置iVersion在app每次启动时候获取版本说明文件,然后对比最新版本号和本地版本号做版本检测
所以需要在APP启动的时候配置iVersion,根据接口说明在APPdelegate类重写initialize方法即可

+(void)initialize{
    iVersion *iv = [iVersion sharedInstance];
    iv.updateURL = [NSURL URLWithString:@"itms-services:///?action=download-manifest&url=https://www.xxxxx.com/xxxxx/myapp_ios_release.plist"];
    iv.remoteVersionsPlistURL = @"https://www.xxxxx.com/xxxxx/myapp_ios_release_versions.plist";
    iv.useAppStoreDetailsIfNoPlistEntryFound = NO;
}

版本说明文件myapp_ios_release_versions.plist如下新版本发布增加新的key和string说明标签即可:

<?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>1.0.0</key>
    <string>First release</string>
    <key>1.1.0</key>
    <string>NEW: fixed bugs</string>
</dict>
</plist>
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,868评论 18 139
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,025评论 25 708
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 46,937评论 6 342
  • Ubuntu的发音 Ubuntu,源于非洲祖鲁人和科萨人的语言,发作 oo-boon-too 的音。了解发音是有意...
    萤火虫de梦阅读 99,521评论 9 467
  • 昨天傍晚下了很大的雪,早晨起床一看,晚上并没有下,但地面上有冰,中午开始化雪了,我出了教学楼,感到外面很冷,我想起...
    盛聿洺阅读 191评论 0 1