帖子
帖子
用户
博客
课程
12下一页
返回列表 发新帖
显示全部楼层
380
帖子
4
勋章
6
Y币

[FAQ] APICloud 的版本更新怎么用,云修复怎么用?

[复制链接]
发表于 2015-12-28 22:06:57
新增版本更新技术专题文档:https://docs.apicloud.com/Dev-Guide/version_update
新增云修复技术专题文档:https://docs.apicloud.com/Dev-Guide/smartUpdate

简介作用:不用发布新的apk或者ipa版本既可对你的app进行app内更新,即增量更新,你改动了哪个或者哪几个html/css/js文件,那么只更新这几个文件即可。更新完毕后用户在下次启动app时,立即看到效果。所以该功能也可以帮助你快速迭代版本,让你做到快速修复bug,快速迭代版本。


简单介绍如何使用:新建一个目录,命名为widget,将你要更新的html/css/js文件拷入该目录,该目录下的文件及子目录其结构与你的项目在Studio中的保持一致;或者将你在Studio中的项目整个拷出,然后将最外层目录改名为widget,再将里边不不要更新的文件全部删除,只留下需要更新的;最后,将该widget目录通过工具压缩成zip包(必须是zip格式);再通过网站上的云修复界面上传提交该zip包即可。注意,云修复是针对app版本的,你的zip包发布给1.0.0版本,它只会修复1.0.0版本,其他版本是不会修复该更新包的。 当用户启动应用时,就会收到并且自动更新了。


条件:必须正式版,重启有效,config.xml必须配置<preference name="smartUpdate" value="true" />


区别:

    云修复:针对同一版本,比方说发给1.0.0的修复包,只有1.0.0版本的应用能更新,1.0.1或者其他任何版本的应用是不会收到更新的。同时,如果你针对该版本发布了10个修复包,那么会等到最后一个修复包修复成功再提示,中间的9个都不会提示你,也就是只会提示你一次

    版本更新:针对不同版本,手机安装的版本必须比所要更新的版本低,也可进行多版本更新,只提示最新版本的


   云修复和版本更新都支持新增,这个过程是一个覆盖的过程,有则覆盖,无则追加;如果之前的版本是加密的,新提交的代码会加密后再更新


注意事项:

   1.版本更新时,如果处于测试阶段,可以填对应的plist的下载地址,如果说以后你的应用上线了AppStore,那么更新时就要填写应用在AppStore的地址了
   2.iOS如果提交了自己的个人证书,需要先上苹果store才能更新,APICloud检测到更新后会自动跳到苹果市场去更新。企业版证书可以直接更新。苹果不允许应用不经过版本审核而自己应用内更新
   3.项目由一帐号移至另一帐号,不是直接移交,新建项目把代码直接覆盖,包名和签名证书和原项目保持一致,版本更新是基于appId进行判断的,你可以在原来的那个项目上,发布最后一个版本,而这最后一个版本的包,是由你的新项目编译出来的,之后再发布版本时,就可以在新项目上发布了




5
帖子
0
勋章
1万+
Y币
对于版本更新,也可以手动更新,config.xml配置表里要配置<preference name="autoUpdate" value="false" />,可以使用mam模块,请参考http://docs.apicloud.com/%E7%AB% ... %AF%B9%E6%8E%A5/mam


参考代码:

var mam = api.require('mam');
mam.checkUpdate(function(ret, err){
    if (ret) {
         var result = ret.result;
        if (result){
            var str = '操作成功状态值:'+ret.status+';是否有更新:'+result.update+';设备上当前版本是否被强行关闭:'+result.closed+';新版本型号:'+result.version+';更新描述:'+result.versionDes+';强行关闭提示语:'+result.closeTip+';更新提示语:'+result.updateTip+';下载地址:'+result.source+';发布时间:'+result.time;
            api.alert({msg:str});
            api.download({
                                url: result.source,
                                report: true
                            }, function(ret, err){
                                if(ret && 0 == ret.state){/* 下载进度 */
                                    api.toast({
                                        msg: "正在下载应用" + ret.percent + "%",
                                        duration: 2000
                                    });
                                }

                                if (ret && 1 == ret.state) {/* 下载完成 */
                                    var savePath = ret.savePath;

                                    api.installApp({
                                        appUri: savePath
                                    });
                                }
                            });
        }
    } else{
        api.alert({msg:err.msg});
    }
});               
50
帖子
0
勋章
190
Y币
小板凳已经搭好
技术支持-F    逗我吗,版主来问这个
7
帖子
0
勋章
3108
Y币
是啊?也想问怎么用
380
帖子
4
勋章
6
Y币
欢迎各位回答! 集合大家之力,才能帮助更多小白。在APICloud广袤的世界里,我也是一个小白啊。
2
帖子
0
勋章
36
Y币
搬个马扎坐等学习
27
帖子
0
勋章
242
Y币
留名  我也像知道
15
帖子
0
勋章
152
Y币
赞赞。。。。。
4
帖子
0
勋章
707
Y币
太66666了
12下一页
您需要登录后才可以回帖 登录

本版积分规则