You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure DevOps XamarinAndroid@1任务生成AAB未包含proguard.map的解决咨询

Azure DevOps CI下Xamarin Android AAB嵌入ProGuard映射文件的解决办法

要强制CI环境中bundletool.jar调用时带上-metadata-file=com.android.tools.build.obfuscation/proguard.map:bin\Release\mapping.txt参数,最直接的方式是利用Xamarin Android的MSBuild扩展属性:

  • 在Azure DevOps的XamarinAndroid@1任务中,给MSBuild命令添加以下参数:
    /p:AndroidBundleToolExtraArgs="-metadata-file=com.android.tools.build.obfuscation/proguard.map:bin\Release\mapping.txt"
    
    注意根据CI环境的路径格式调整,比如Linux/macOS环境下把路径改成bin/Release/mapping.txt。

额外验证要点

  • 确认CI任务中bin/Release/mapping.txt文件已生成:可以在打包步骤前添加一个文件检查任务,确保映射文件存在
  • 若使用R8混淆,显式指定/p:AndroidEnableR8=True(虽然默认开启,但CI环境可能因配置缺失导致不生效)
  • 查看CI任务的详细日志,搜索bundletool相关调用,确认-metadata-file参数已被正确传入

备选方案:手动执行BundleTool打包

如果上述属性未生效,可以拆分打包流程:

  1. 先用XamarinAndroid@1任务生成基础模块包(不直接生成AAB)
  2. 单独调用bundletool.jar完成打包,手动传入参数:
    java -jar bundletool.jar build-bundle --modules=bin/Release/[你的应用模块名]-base.zip --output=bin/Release/[你的应用名].aab --metadata-file=com.android.tools.build.obfuscation/proguard.map:bin/Release/mapping.txt
    

内容的提问来源于stack exchange,提问作者jeoffman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 22:24:27