合并的 AndroidManifest 导致发布版本的 debuggable 设置为 true
Merged AndroidManifest results in debuggable set to true for release build
我今天一整天都在处理一个奇怪的恼人问题。我最近接管了一个代码库,我试图第一次将应用程序的发布 buildType 上传到 Play 商店(用于内部跟踪测试),它一直报告 debuggable 是真的。我去通过 APK 分析器检查 AndroidManifest,确实 debuggable 设置为 true。于是寻找罪魁祸首的旅程开始了(至今没有成功)。
到目前为止我 checked/tried 的事情:
- 尝试在 build.gradle 以及清单中将 debuggable 强制设置为 false。
- 尝试使用
tools:remove="android:debuggable"
- 尝试通过
android:debuggable="false" tools:replace="android:debuggable"
替换它
- 检查了 Merged Manifest 选项卡,
android:debuggable
没有出现在那里
- 我已经检查了所有 libs/dependencies 以仔细检查它们是否没有设置属性(我知道因为我在“合并清单”选项卡中看不到它,可能 none 有,但我没有想法,所以我也检查了一下)
知道我可能遗漏了什么,或者还有什么地方可以检查,或者可以尝试什么吗?
工具:
- TargetSDK - 29
- 编译SDK - 29
- 构建工具 - 29.0.3
- GradleW 6.5
- 注意:项目没有风格,只有默认的构建类型(调试和发布)
好的,所以我终于弄明白了。由于发布 buildType 的 testCoverageEnabled=true
,清单中的 debuggable
属性被设置为 true...我不知道这是 testCoverageEnabled
的副作用,但现在事后看来这有点道理。有点反高潮的结果,但我想这只是开发人员生活中的又一天 :D
我今天一整天都在处理一个奇怪的恼人问题。我最近接管了一个代码库,我试图第一次将应用程序的发布 buildType 上传到 Play 商店(用于内部跟踪测试),它一直报告 debuggable 是真的。我去通过 APK 分析器检查 AndroidManifest,确实 debuggable 设置为 true。于是寻找罪魁祸首的旅程开始了(至今没有成功)。 到目前为止我 checked/tried 的事情:
- 尝试在 build.gradle 以及清单中将 debuggable 强制设置为 false。
- 尝试使用
tools:remove="android:debuggable"
- 尝试通过
android:debuggable="false" tools:replace="android:debuggable"
替换它
- 检查了 Merged Manifest 选项卡,
android:debuggable
没有出现在那里 - 我已经检查了所有 libs/dependencies 以仔细检查它们是否没有设置属性(我知道因为我在“合并清单”选项卡中看不到它,可能 none 有,但我没有想法,所以我也检查了一下)
知道我可能遗漏了什么,或者还有什么地方可以检查,或者可以尝试什么吗?
工具:
- TargetSDK - 29
- 编译SDK - 29
- 构建工具 - 29.0.3
- GradleW 6.5
- 注意:项目没有风格,只有默认的构建类型(调试和发布)
好的,所以我终于弄明白了。由于发布 buildType 的 testCoverageEnabled=true
,清单中的 debuggable
属性被设置为 true...我不知道这是 testCoverageEnabled
的副作用,但现在事后看来这有点道理。有点反高潮的结果,但我想这只是开发人员生活中的又一天 :D