全部产品
云市场
云游戏

实时发布常见问题

更新时间:2020-02-13 19:11:07

iOS 客户端

热修复错误码

解答:以下表格显示错误码及其含义;

错误码 含义
300 未知错误
301 本地 patch 文件为空。请检查 patch 文件是否成功下载,或本地测试时文件路径是否正确
302 js 文件解析错误。请检查由 OC 转化的 js 文件是否正确
303 本地 patch 文件为空。请检查 patch 文件是否成功下载,或本地测试时文件路径是否正确
304 patch 文件解密失败。请检查无线保镖验签图片 yw_1222.jpg 是否正确
305 patch 文件解压失败。请重试
306 patch 文件 MD5 校验失败。请确认发布的 patch 文件是否为加密后的 .js 格式

本地测试由 OC 转化后的 .js 文件,为什么修复没有生效?

解答:查看下图中调用的方法返回的错误信息,若不为 nil,根据上文的错误码进一步排查。

cc

若上一步无报错,请检查 .js 文件语法是否正确,可参考 OC 转 JS 语法

本地测试加密后的 .zip 文件,为什么修复没有生效?

解答

  1. 查看工程中 RSA 非对称加密信息是否正确,可通过下图中 ret 的值是否为 0 判断。

    eee

  2. 查看工程中配置的 AES 对称解密的 key,与工程中 meta.config 文件中 appKey 字段保持一致。

    bbb

  3. 确保测试的是加密之后的 .zip 文件。

    zip

  4. 查看下图中调用的方法返回的错误信息,若不为 nil,根据上文的错误码进一步排查。

    ff

在发布平台下发加密后的 .js 文件后,为什么客户端没有修复生效?

解答

  1. 原始 js 文件加密后,本地验证 .zip 文件是否修复生效。

    www

  2. 在控制台上传新的修复任务时,确保上传到发布平台的修复包是加密后的 .js 文件。

    资源包

  3. 目标版本需与工程中 info.plist 文件中 Product Version 字段保持一致。

    Version

  4. 在 Xcode 控制台查看 alipay.client.getUnionResource 的网关返回结果是否为 1000,保证网络请求成功。

    qqq

  5. 网络请求成功后,在本地沙盒路径中查看 patch 包是否已下发到本地,若目录下已生成了 .zip.sig 文件,则表示客户端已获取到发布平台下发的脚本,杀进程重启应用后 patch 即可生效。

    path

Android 客户端

使用热修复后,和 RPC 有关的调用发生 apache http 相关的 crash。

请使用 Android 官网上的方式引入 apache http client,禁止使用导入 jar 包或者 gradle implementation/compile 的方式导入 http client。否则会引起 classloader 加载类混乱。

内部类的白名单热修复

内部类的引用需要完全限定名。如果一定要修复内部类,最简单的方式是反编译成smali,smali的文件名就是内部类的类名。