应用研发平台EMAS中我们打的热修复包里面这个文件是什么来的? 没看懂是什么文件
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
在应用研发平台 EMAS 的热修复功能中,生成的热修复包(补丁包)中可能包含多种文件,具体文件的作用取决于其类型和用途。以下是常见的文件及其解释:
sophix-patch.jar
文件这是 Android 热修复的核心补丁文件,包含了代码差异的修复内容。
- 作用:该文件是通过工具生成的差量补丁包,用于修复线上版本中的 Bug 或问题。
- 生成方式:使用热修复工具生成差量补丁包时,会生成一个名为 sophix-patch.jar
的文件。
- 注意事项: - 工具需要安装在 Mac 电脑的 应用程序 目录下,否则可能会报错。 - 在生成补丁时,建议不要勾选 高级选项 中的“检查初始化、不比较资源库、不比较SO库”,以确保补丁的完整性。
patch.zip
文件这是 iOS 热修复的核心补丁文件,通常包含 Lua 脚本或其他资源文件。
- 作用:用于 iOS 平台的热修复,上传到控制台后可通过自动化验收 App 进行测试验证。
- 命名要求:文件必须命名为 patch.zip
,且 Lua 文件需放在 patch
文件夹中再压缩成 patch.zip
包。
- 适用场景:iOS 平台的热修复验证。
running.log
文件这是生成补丁时的日志文件,记录了代码对比的详细信息。
- 作用:帮助开发者确认补丁包中的差异项是否符合预期。
- 检查内容: - 日志中的 diff
项应与实际修改的代码一致。 - 如果差异项过多或补丁包过大,需检查打包环境是否一致,或是否存在其他未预期的修改。
mapping.txt
文件这是混淆映射文件,用于保证新旧包的混淆规则一致。
- 作用:在开启代码混淆的情况下,确保修复包与基线包的混淆结果一致,避免因混淆规则不同导致补丁无效。
- 操作步骤: 1. 配置混淆参数 -applymapping
和 -printmapping
,生成基线包时保存 mapping.txt
文件。 2. 修改代码后生成新包时,使用基线包的 mapping.txt
文件以保持一致性。 3. 确保 mapping.txt
文件与基线包一一对应。
R.txt
文件这是资源 ID 映射文件,用于保证资源 ID 不发生变化。
- 作用:在多次打包时,维护资源 ID 的一致性,避免因资源 ID 变更导致桌面小插件或其他资源异常。
- 解决方案: - 使用 aaptOptions.additionalParameters("-emit-ids", "app/R.txt")
输出映射文件。 - 使用 aaptOptions.additionalParameters("-stable-ids", "app/R.txt")
应用映射文件。
System.loadLibrary
方式加载,而不是通过具体路径加载。running.log
中的 diff
项是否符合预期。mapping.txt
文件,确保新旧包混淆结果一致。R.txt
文件以保证资源 ID 不发生变化。如果您对某个具体文件仍有疑问,可以提供更多上下文信息(如文件名或内容片段),以便进一步解答。