At IzzyOnDroid we support Reproducible Builds. Trying for yours, I was able to successfully generate the APK using ./gradlew assembleOpensourceRelease (after setting POCKET_MODE_RELEASE_TAG to the tag name), but the resulting APKs were not identical: there are differences in classes.dex and in several resources. Apart from the environment variable, I've just run ./gradlew assembleOpensourceRelease. What did I miss?
I've compared against pocketmode-release-oss-v1.11.3.apk – so I especially wonder about
which I attribute to this: you seem to build both flavors in one run, with the PlayStore one first – so your OSS APK contains artifacts of that. Maybe you could either switch that order around – or make it separate calls, including clean (/gradlew clean assembleOpensourceRelease && ./gradlew clean assemblePlaystoreRelease)?
diff.zip
We'd appreciate if you could help making your build reproducible. We've also prepared some RB Hints for Developers for that.
Looking forward to your reply!
At IzzyOnDroid we support Reproducible Builds. Trying for yours, I was able to successfully generate the APK using
./gradlew assembleOpensourceRelease(after settingPOCKET_MODE_RELEASE_TAGto the tag name), but the resulting APKs were not identical: there are differences inclasses.dexand in several resources. Apart from the environment variable, I've just run./gradlew assembleOpensourceRelease. What did I miss?I've compared against
pocketmode-release-oss-v1.11.3.apk– so I especially wonder aboutwhich I attribute to this: you seem to build both flavors in one run, with the PlayStore one first – so your OSS APK contains artifacts of that. Maybe you could either switch that order around – or make it separate calls, including
clean(/gradlew clean assembleOpensourceRelease && ./gradlew clean assemblePlaystoreRelease)?diff.zip
We'd appreciate if you could help making your build reproducible. We've also prepared some RB Hints for Developers for that.
Looking forward to your reply!