Description
I've checked your app if its build is reproducible (see: Reproducible bulds, special client support and more in our repo), but while I was able to successfully generate the APK using ./gradlew assembleRelease
, there was a load of differences between the two APKs. Start of the APK diff:
-------------------------------
--- /dev/fd/63 2024-07-10 12:47:51.688719016 +0200
+++ /dev/fd/62 2024-07-10 12:47:51.688719016 +0200
@@ -327,7 +327,7 @@
res/0c.9.png
32-bit CRC value (hex): 95bbccff
res/0c.png
- 32-bit CRC value (hex): f5d1119a
+ 32-bit CRC value (hex): 4dbb75d0
res/0n.png
32-bit CRC value (hex): c81c99e6
res/0x.9.png
@@ -393,7 +393,7 @@
res/2x.xml
32-bit CRC value (hex): 4d5f6c8c
res/3-.png
- 32-bit CRC value (hex): a81955ac
+ 32-bit CRC value (hex): 44766c30
res/33.9.png
32-bit CRC value (hex): c5fedfaf
res/35.png
@@ -415,7 +415,7 @@
res/3u.9.png
32-bit CRC value (hex): cff461f2
res/3z.png
- 32-bit CRC value (hex): bd731efa
+ 32-bit CRC value (hex): bab49c82
res/3z1.png
32-bit CRC value (hex): 55f5805d
res/42.9.png
@@ -447,7 +447,7 @@
…
Seems like all the differences were caused by assets (here: PNG), while not all of the PNGs had differences. Which might indicate your build process uses some "crunching" mechanism; those are non-deterministic and hence lead to different results on each run.
We'd appreciate if you could help making your build reproducible. We've prepared some hints on reproducible builds for that. If my guess here is right, you should especially look at the section on "Compressing images" – and the following addition to your build.gradle
could cure this:
android {
aaptOptions {
cruncherEnabled = false
}
}
Though I see you already have isCrunchPngs = false
set; I'm no Android dev so I cannot tell how the two are related (or if the all
section is also applied to the 2 sections above).
Looking forward to your reply!