应用研发平台EMAS中flutter怎么接入热修复,没找到文档?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
在应用研发平台EMAS中,Flutter接入热修复的具体文档可能未直接提供,但可以根据现有知识库中的资料进行配置和操作。以下是详细的接入步骤和注意事项:
在接入热修复之前,请确保以下条件已满足: - 已创建RAM用户,并为其授权移动热修复的权限(如AliyunHotfixFullAccess
或AliyunHotfixReadOnlyAccess
)。 - 已开通EMAS服务,并完成项目的创建和应用的初始化。
在AndroidManifest.xml
中添加必要的权限声明,例如:
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
注意:READ_EXTERNAL_STORAGE
权限属于危险权限,仅用于调试工具加载本地补丁,线上发布的补丁加载不受影响。请确保在Android 6.0及以上版本中动态申请运行时权限。
在AndroidManifest.xml
的<application>
节点下添加以下配置:
<meta-data android:name="com.taobao.android.hotfix.IDSECRET" android:value="App ID" />
<meta-data android:name="com.taobao.android.hotfix.APPSECRET" android:value="App Secret" />
<meta-data android:name="com.taobao.android.hotfix.RSASECRET" android:value="RSA密钥" />
将上述value
值替换为通过EMAS平台申请的App ID
、App Secret
和RSA密钥
。出于安全考虑,建议使用setSecretMetaData
方法进行设置。
如果项目启用了代码混淆,请在proguard-rules.pro
文件中添加以下规则:
# 保留Sophix相关类
-keep class com.taobao.sophix.** { *; }
-keep class com.ta.utdid2.device.** { *; }
# 防止优化导致问题
-dontoptimize
重要提示:生成修复包时需使用旧包的mapping.txt
文件以保证混淆结果一致。若开启了R8优化,请关闭R8并改用ProGuard进行混淆。
在iOS项目中引入Flutter后,可能会遇到安装Debug包时无法启动的问题。解决方案如下: 1. 使用Xcode打开工程项目。 2. 在Build Settings
的最下方找到User-Defined
,点击+
按钮,添加一个键为FLUTTER_BUILD_MODE
。 - Debug模式下设置为profile
。 - Release模式下设置为release
。 3. 如果是通过云构建提交到移动测试的包,确保导出的ipa包使用for development
方式。
在完成上述配置后,请按照以下CheckList进行检查,以确保热修复功能正常工作: 1. 混淆检查:若启用了代码混淆,发布版本后妥善保存mapping.txt
文件,不能修改。 2. 加固检查:若使用了加固工具(如梆梆加固),需保存加固前的APK,并配置忽略sophix
文件夹。 3. 资源优化检查:在gradle.properties
中新增android.enableResourceOptimizations=false
,避免资源优化导致代码比对异常。 4. 初始化检查:确保SophixStubApplication
类是Java原生的,且不与其他类有互相调用逻辑。 5. 隐私合规检查:调用queryAndLoadNewPatch()
方法时,请确保在隐私判断之后执行。
研发工具 > 移动热修复 > 补丁管理
页面。发布
按钮。发布选项
对话框中,配置以下参数:
确定
完成发布。若需要回滚补丁,可通过以下两种方式进行: - 全部回滚:撤销全部补丁,将应用回滚至基线版本。 - 版本回滚:选择具体的历史补丁版本进行回滚,仅支持已全量发布过的版本。
通过以上步骤,您可以成功在Flutter项目中接入EMAS的热修复功能。若有进一步问题,请参考EMAS官方文档或联系技术支持团队。