Add code signing for Android release artefacts
- Dominant language
- Python
- Stars
- 3.3k
- Forks
- 549
- Avg merge
- 1d 4h
- Merged PRs (30d)
- 40
Description
### What is the problem or limitation you are having?
Briefcase currently supports code signing on macOS and Windows. Code signing is also required for Android release artefacts.
### Describe the solution you'd like
`briefcase package android --identity ` should accept a path to a keystore, and use that keystore to sign the app.
`briefcase package android` should prompt the user to do one of:
1. Ad-hoc sign the app (i.e., do nothing explicit with signatures, as is done currently)
2. Look for any file named `*.jks` in the project folder, the `.android` subfolder of the project folder, or the user's `~/.android` folder, and provide those files as candidate keystores to use.
3. Create a new keystore named `org.example.myapp.jks` in a `.android` folder of the project directory, and use that keystore.
### Describe alternatives you've considered
Continue to require manual signing. The process of [generating a keystore](https://briefcase.readthedocs.io/en/latest/how-to/code-signing/android.html) and [signing the app](https://briefcase.readthedocs.io/en/latest/how-to/publishing/android.html); this is a simplification process.
### Additional context
_No response_
Contributor guide
Research direction
Start with the `briefcase package android` entry point and compare the existing macOS and Windows code-signing behavior. Read the linked Android code-signing and publishing documentation to understand the current manual workflow. Done means Android packaging accepts a keystore via `--identity`, offers the described discovery and creation choices, and preserves ad-hoc signing.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- android, python
- Domain
- mobile, security
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100