以下表格显示错误码及其含义。
错误码 | 含义 |
---|---|
300 | 未知错误 |
301 | 本地 patch 文件为空。请检查 patch 文件是否成功下载,或本地测试时文件路径是否正确。 |
302 | .js 文件解析错误。请检查由 OC 转化的 .js 文件是否正确。 |
303 | 本地 patch 文件为空。请检查 patch 文件是否成功下载,或本地测试时文件路径是否正确。 |
304 | patch 文件解密失败。请检查无线保镖验签图片 yw_1222.jpg 是否正确。 |
305 | patch 文件解压失败。请重试。 |
306 | patch 文件 MD5 校验失败。请确认发布的 patch 文件是否为加密后的 .js 格式。 |
查看下图中调用的方法返回的错误信息,若不为 nil,根据上文的错误码进一步排查。
NSString *jsFile = [[NSBundle mainBundle] pathForResource:@"Test" ofType:@"js"];
NSError *errorJS = [MPDynamicInterface runWithResultDynamicLocalFile:jsFile];
若上一步无报错,请检查 .js
文件语法是否正确,可参考 OC 转 JS 语法。
查看工程中 RSA 非对称加密信息是否正确,可通过下图中 ret 的值是否为 0 判断。
确保工程中的无线保镖图片是正确的且与工程中的 meta.config
是匹配的。如无法确定,可尝试重新生成无线保镖图片以及更新热修复 .zip
文件。
确保测试的是加密之后的 .zip
文件。
查看下图中调用的方法返回的错误信息,若不为 nil,根据上文的错误码进一步排查。
NSString *jsZip = [[NSBundle mainBundle] pathForResource:@"Test" ofType:@"zip"];
NSError *error = [MPDynamicInterface runWithResultDynamicLocalSecFile:jsZip];
原始 .js
文件加密后,本地验证 .zip
文件是否修复生效。
在控制台上传新的修复任务时,确保上传到发布平台的修复包是加密后的 .js
文件。
目标版本需与工程中 info.plist
文件中 Product Version
字段保持一致。
在 Xcode 控制台查看 alipay.client.getUnionResource
的网关返回结果是否为 1000,保证网络请求成功。
网络请求成功后,在本地沙盒路径中查看 patch 包是否已下发到本地,若目录下已生成了 .zip
和 .sig
文件,则表示客户端已获取到发布平台下发的脚本,杀进程重启应用后 patch 即可生效。
请使用 Android 官网上的方式引入 apache http client,禁止使用导入 Jar 包或者 gradle implementation/compile 的方式导入 http client。否则会引起 classloader 加载类混乱。
内部类的引用需要完全限定名。如果一定要修复内部类,最简单的方式是反编译成 smali,smali 的文件名就是内部类的类名。
在文档使用中是否遇到以下问题
更多建议
匿名提交