MAUI Android自定义Production构建配置下android:debuggable始终为true的发布问题咨询
嗨,我太懂你这种卡壳的烦躁了——好不容易为了发布和内部需求搭好了自定义的Production构建配置,结果卡在android:debuggable="true"这个点上,连Google Play的门都进不去,真的闹心!
先帮你捋捋确认下你的问题场景:
- 技术栈用的是VS 2022、.NET 9、MAUI
- 复制Release配置创建了Production构建配置,用来发布到Google Play内部测试轨道
- 本地构建Production配置后,发现
obj/Production/net9.0-android/AndroidManifest.xml里始终带着android:debuggable="true",哪怕手动加了AndroidDebuggable=false这类设置也没用 - Google Play因为这个调试标记直接拒收了你的APK/AAB,完全卡壳
其实你猜的方向没错,MAUI对非默认的Release构建配置确实存在一些逻辑疏漏,默认的调试禁用逻辑只对Release配置生效,自定义配置得手动补全相关设置。试试下面这几个具体的修改,应该能解决问题:
在.csproj里为Production配置添加专属属性组
打开项目的.csproj文件,添加针对Production配置的属性设置,把所有调试相关的开关都手动关掉:<PropertyGroup Condition="'$(Configuration)' == 'Production'"> <DebugType>None</DebugType> <DebugSymbols>false</DebugSymbols> <AndroidDebuggable>false</AndroidDebuggable> <AndroidEnableProfiling>false</AndroidEnableProfiling> <AndroidUseSharedRuntime>false</AndroidUseSharedRuntime> <PublishTrimmed>true</PublishTrimmed> <!-- 可选,和Release配置保持一致的裁剪设置 --> </PropertyGroup>显式在AndroidManifest.xml里绑定调试属性
有时候MAUI自动生成的Manifest会覆盖设置,你可以直接在Platforms/Android/AndroidManifest.xml的application节点里显式绑定AndroidDebuggable属性,让它跟着配置走:<application android:label="你的应用名称" android:debuggable="$(AndroidDebuggable)" ...>清理构建缓存避免干扰
别忘了解决方案最经典的“三板斧”:删除项目的bin和obj文件夹,重启VS,然后重新构建Production配置,避免旧的缓存文件带着调试标记搞事情。检查解决方案和项目的配置关联
顺便确认一下sln文件里的Production配置和项目级的Production配置是正确关联的,有时候解决方案级配置没同步好也会出这种奇怪的问题。
这些步骤应该能彻底把那个烦人的android:debuggable="true"给去掉,顺利提交到Google Play。
内容来源于stack exchange

