如何替换 Android App Bundle 中 BUNDLE-METADATA 文件夹中现有目录中的文件
(.aab)
文件?
为了消除本机崩溃的符号,我们希望用从其他来源收到的文件替换
path="/BUNDLE-METADATA/com.android.tools.build.debugsymbols/arm64-v8a
中现有的 .dbg 文件。这些现有的 .dbg 是在构建过程中创建的。由于某种原因,使用构建期间创建的 .dbg 无法帮助在本地以及 Play 开发控制台中进行去符号化。只有当我们上传原始 .so 文件来播放开发控制台时,去符号化才会正确发生。
此 API 似乎仅适用于添加新文件和目录。 https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/BundleConfig
是否可以使用
AGP 7.3
替换现有文件?
在您的场景中,您有一个 Android App Bundle (
.aab
) 文件,并且其中的 .dbg
目录中有一个特定的 BUNDLE-METADATA/com.android.tools.build.debugsymbols/arm64-v8a
文件。
您的目标是将现有的
.dbg
文件替换为来自不同来源的另一个文件,以帮助消除本机崩溃的符号,因为当前 .dbg
文件无法达到其目的。
+----------------------------+
| Android App Bundle (.aab) |
| +------------------------+ |
| | BUNDLE-METADATA | |
| | +--------------------+ | |
| | | debugsymbols | | |
| | | +---------------+ | | |
| | | | arm64-v8a | | | |
| | | | +-----------+ | | | |
| | | | | new.dbg | | | | | <-- Replaced .dbg file
| | | | +-----------+ | | | |
| | | +---------------+ | | |
| | +--------------------+ | |
| +------------------------+ |
+----------------------------+
我没有看到任何支持。
修改现有 Android App Bundle (AAB) 中的文件确实会影响其签名,可能使其无效。当您创建 AAB 时,它会使用确保其完整性和真实性的密钥进行签名。对 AAB 的任何后续修改(例如替换文件)都会改变捆绑包的内容,从而更改其签名。
还有一个可选的代码签名和验证机制,称为“代码透明度”,适用于随 Android App Bundle 发布的应用程序。尽管它的运行独立于应用程序包和 APK 所使用的签名方案,但它强调了签名作为验证机制的重要性。