全部产品

创建发布需求

更新时间:2020-09-21 16:58:38

创建发布需求

专有云Sophix和公有云Sophix的接入方式基本一致,请参考文档移动热修复Android SDK稳健接入。了解Sophix相关技术细节和进行快速接入。

SDK版本、相关secret,请联系我们提供。

相较于公有云,专有云Sophix需要手动指定接入域名(因为部署环境不同):

// initialize必须放在attachBaseContext最前面,初始化代码直接写在Application类里面,切勿封装到其他类。
SophixManager.getInstance().setContext(this)
                .setAppVersion(appVersion)
                .setHost("${YourDomain}", false) // 需要指定域名
                .setEnableDebug(true)
                .setPatchLoadStatusStub(new PatchLoadStatusListener() {
                    @Override
                    public void onLoad(final int mode, final int code, final String info, final int handlePatchVersion) {
                        // 补丁加载回调通知
                        if (code == PatchStatus.CODE_LOAD_SUCCESS) {
                            // 表明补丁加载成功
                        } else if (code == PatchStatus.CODE_LOAD_RELAUNCH) {
                            // 表明新补丁生效需要重启. 开发者可提示用户或者强制重启;
                            // 建议: 用户可以监听进入后台事件, 然后调用killProcessSafely结束进程,以此加快应用补丁,详见1.3.2.3
                        } else {
                            // 其它错误信息, 查看PatchStatus类说明
                        }
                    }
                }).initialize();
                
// queryAndLoadNewPatch不可放在attachBaseContext 中,否则无网络权限,建议放在后面任意时刻,如onCreate中
SophixManager.getInstance().queryAndLoadNewPatch();

新建Sophix发布

专有云Sophix只能对已经在EMAS Native研发体系正式发布成功的APP版本进行修复。

新建发布版本>新建发布需求>进入详情

发布版本对应一个工作区,该工作区下的所有发布需求,都针对该APP发布版本进行修复。

create-version

new-apply

【热修复Patch发布SOP】

1、内部验证:基于内部测试平台,使用市场主流手机,线下升级patch验证热修复效果。

2、生产灰度:基于热修复灰度功能,进行3轮灰度(1% - 5% - 20%),观察以下指标:

  • patch生效率指标(保守预期>70%)

  • patch清除率指标(端上发生启动crash会触发端测保护机制,自动清除热修复Patch,保守预期<2%)

  • Crash监控指标,Patch发布后App的崩溃数据情况(发布热修复补丁后的App在三方崩溃分析平台上的App版本号依然为基线版本),预期热修复补丁发布后没有出现崩溃数据增长。

 

3、生产灰度数据符合预期后正式上产发布。