-
Notifications
You must be signed in to change notification settings - Fork 4
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Reproducible Builds fail with v1.4.2 #18
Comments
In other words, Should I version up after re-build release code ? |
Yes, please make that part of a new release then (not replacing and existing one). A ping once that's ready is much appreciated then 😃 |
I would recommend upgrading Android Gradle Plugin to 8.1.0 or later instead of using the workaround. |
Hope you don't forget before making the next release? 😉 |
Please tell me the significance of Reproducible Builds. And, although you answer like bellow
Is it not necessary to update the versionCode ? |
Longer explanation behind the links provided in the opening comment. But in short: it shows the app was really built from the code it claims to be built from – with nothing "injected" or taken out. So it's a security feature.
No funding 😝 Honestly: I'm drowning in tasks and cannot be everywhere simultaneously, apologies.
Don't the two go together? You should always increase
For a cross-check (if all worked out) we indeed would only need the APK (and the commit it was built from). For distribution, we'd need a new release (with increased |
I upload CommandClick-1.4.2-release-reproductive.apk. |
That was built from which commit? For RB, we must match that. |
What is mean?
Because, I built from not certain commit, but repository itself. I don't know how to build certain commit.
|
You create a tag and a release, right? May I suggest a workflow like this (example for the current release):
Does the above example answer this? Best practice is AFAIK to adjust the version right before releasing, as the example does. |
My master head is ac46857. With that in mind, the question is, what is the problem with not being able to do a reproductive build? |
Be welcome to ping us when you're ready to release (i.e. have the commit ready which you will tag then, and an APK built from that commit) so we can test it before you tag. If the test succeeds, then just create the tag at that commit and attach that APK, and it should be fine.
The confidence that your app was really built from the code it claims to be built from is "a matter of belief" then – while with a successful RB, there's hardly any doubt as it was proven.
I don't think so. When you're about to release, just stick to the workflow:
This ensures the APK matches the commit you tagged as release – what we call the "first basic rule" in our hints on reproducible builds.
Sorry, but I don't understand the question: what head? Where Git's That said:
That commit is 10h old. The APK provided above is 2 days old, so it cannot have been built from that commit – which means I cannot use that combination to verify RB. To verify RB, both sides must build from the very same commit (which usually is the one the tag points to, as outlined). |
At IzzyOnDroid we support Reproducible Builds (see: Reproducible Builds, special client support and more at IzzyOnDroid). Trying for yours, I was able to successfully generate the APK using
./gradlew assembleRelease
, but the resulting APKs were not identical:Comparing the two profiles, you can see they have the same contents just in different order:
This is something easy to fix, but needs to be fixed on your end.
We'd appreciate if you could help making your build reproducible again. We've also prepared some hints on reproducible builds for that.
Looking forward to your reply!
The text was updated successfully, but these errors were encountered: