文档

移动热修复FAQ

更新时间:

————————————————————————————————————————————————

iOS热修复是否会被Apple审核拒绝

iOS热修复是基于lua+wax的,与苹果之前封禁的jspatch不一样。另外也不能保证100%能通过审核,之前也有极少数情况审核被退回。苹果的审核非常随机,与审核团队和代码扫描规则有关。

说明:目前还没有因为这个被下架的,但是有极少数偶尔反馈审核被拒,但是部分和热修复无关,可能与APP本身更新的功能,或者一些元数据比如图片等不符合规定有关。

iOS热修复WaxPatch日志分析及计数统计说明

首先查看Hotfix是否初始化成功,xcode日志中输出Hotfix初始化成功或失败的消息:“HotFix SDK init success.或者HotFix SDK init failed, error: ”。初始化成功后,单击Patch拉取,控制台输出信息如下:

  • 查看日志中标记的输出信息,是否查询到patch信息:query patch info success,get valid patch info
  • 查询到patch信息后,查看下载patch是否成功:download patch success,下载成功后,是否能拉取到:load patch success
  • 按照以上步骤查询,定位问题点后,提交工单联系阿里云技术支持上报问题。

iOS热修复lua脚本说明

可以查找waxPatch教程,编写lua脚本,详情请参见阿里云iOS热修复Lua语法说明.pdf

iOS端patch包拉取后在本地的加载路径

本地的路径是Documents/AliyunHotFixBundle/patch/

Android热修复支持修复哪些内容

Android热修复支持代码修复、资源修复、so修复,不支持四大组件的修复,可以添加方法(以冷启动的方式生效)。

公共云热修复对同一个版本多次发布补丁问题

A:应用只会加载一个补丁,如果已经加载过补丁了,后续有新补丁的产生,那么之前已经加载的补丁会失效,然后再去加载更新补丁。

Q:应用只会加载最后一个补丁。已经有补丁了,没关系,直接发相对于初始版本新的补丁即可,下载新补丁的过程中,老补丁还生效的,新补丁加载好后,旧补丁自动清理掉。

waxpatch是否有IDE或其他验证工具

WaxPatch当前没有IDE验证工具。

Sophix加固包的最佳实践

Sophix本身是支持热修复加固的,详情请参见Sophix热修复支持加固吗?。基本流程如下:

  • 公共云流程
    1. base包选取:选择未加固的发布包作为base包。
    2. diff包:选择未加固的新包作为diff包。
    3. 两个未加固的包打patch包。
    4. 发布patch用于对线上的加固包做热修复。
  • 专有云流程
    1. 平台选取未加固的发布包作为base。
    2. 正常做Sophix打包。
    3. 发布生成的patch包。

适用于

  • 移动热修复