开发者社区> 问答> 正文

关于应用研发平台EMAS热修复mapping问题,请教 基线版本新版修复bug(可能引入新sdk)?

关于应用研发平台EMAS热修复mapping问题,请教
基线版本
新版修复bug(可能引入新sdk) 混淆文件添加新的混淆规则,否则程序运行崩溃

补丁包=(新版本+基线版本+基线mapping)=差异补丁
这种情况补丁包 会不会崩溃?

展开
收起
真的很搞笑 2023-07-12 10:17:55 78 0
3 条回答
写回答
取消 提交回答
  • 北京阿里云ACE会长

    需要在 proguard-rules.pro 文件中添加新的混淆规则,以确保新版本的代码能够正确地被混淆。如果您使用的是 EMAS 热修复 SDK,可以参考 EMAS 官方文档中的混淆配置示例,以配置正确的混淆规则。

    另外,为了确保热修复能够正常工作,您还需要在基线版本和新版本的 mapping 文件中添加相应的映射关系。具体来说,您需要在基线版本和新版本的 mapping 文件中,将相同的类和方法映射到相同的混淆名称上。这样,在进行热修复时,EMAS 热修复 SDK 才能正确地将新版本的代码映射到基线版本的代码上,以实现热修复的功能。

    2023-07-13 08:41:16
    赞同 展开评论 打赏
  • 当使用应用研发平台EMAS进行热修复时,遇到基线版本与新版本之间的mapping问题是比较常见的情况。热修复过程中引入新的SDK或对现有代码做出更改可能导致mapping文件变化,从而影响已发布应用的稳定性和功能。

    下面是一些解决此类问题的常见方法:

    1. 确保生成并保留Mapping文件:在每次构建发布版本时,确保生成并妥善保留ProGuard或R8生成的Mapping文件(通常为mapping.txt)。这个文件将帮助你追踪混淆后的类和方法与原始代码之间的映射关系。

    2. 备份和还原Mapping文件:在进行热修复之前,将新版本的Mapping文件备份到安全的位置。如果在修复过程中出现问题,你可以通过还原先前的Mapping文件来恢复到旧版本的代码。

    3. 合理规划版本控制策略:在进行热修复时,建议采用良好的版本控制策略。为每个发布版本建立一个唯一的Git标签或版本号,并按需创建分支,以便能够轻松地查找、回滚和管理不同版本的代码和Mapping文件。

    4. 测试和验证修复补丁:在发布修复补丁之前,务必进行充分的测试和验证。通过模拟实际使用场景,尽可能覆盖所有可能受到修复影响的功能。确保修复工作正常且不引入新的问题。

    5. 定期更新EMAS版本:EMAS平台会持续更新和改进,包括热修复功能。定期检查并升级EMAS版本,以获取最新的功能和修复,有助于解决一些已知的mapping问题和其他潜在的兼容性问题。

    2023-07-12 10:54:32
    赞同 展开评论 打赏
来源圈子
更多
收录在圈子:
基于阿里巴巴以及合作伙伴的最佳实践,围绕大前端、云原生领域的相关技术热点(小程序、Serverless、应用中间件、低代码、DevOps)展开行业探讨,与开发者一起探寻云原生时代应用研发的新范式。
相关文档: 移动研发平台
问答排行榜
最热
最新

相关电子书

更多
从 SDK 到编解码:视频直播架构解析 立即下载
跨平台的云服务SDK需要什么 立即下载
一个跨平台的云服务SDK需要什么 立即下载