Updated Android README.md and created RELEASE.md (#37122)

<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #36890
This commit is contained in:
Victor Lyuboslavsky
2025-12-12 09:07:02 -06:00
committed by GitHub
parent 14e2b79703
commit 9293d15e4d
3 changed files with 94 additions and 15 deletions
+12 -13
View File
@@ -47,26 +47,25 @@ Signing configuration is already set up in `build.gradle.kts`. You just need to
1. **Create a keystore:**
```bash
keytool -genkey -v -keystore keystore.jks \
keytool -genkeypair \
-alias fleet-android \
-keyalg RSA -keysize 2048 -validity 10000
-keyalg RSA \
-keysize 4096 \
-validity 10000 \
-keystore keystore.jks \
-storepass YOUR_PASSWORD \
-dname "CN=Your Name, O=Your Org, L=City, ST=State, C=US"
```
You'll be prompted for:
- **Password** (enter twice for confirmation) - This will be used for both keystore and key
- Your name, organization, location, etc.
2. **Create `keystore.properties` file in the `android/` directory:**
```properties
storeFile=path/to/keystore.jks
storePassword=your-password
storeFile=/path/to/keystore.jks
storePassword=YOUR_PASSWORD
keyAlias=fleet-android
keyPassword=your-password
keyPassword=YOUR_PASSWORD
```
**Note:** Use the same password you entered during keystore creation for both `storePassword` and `keyPassword`.
3. **Build signed release:**
```bash
@@ -102,8 +101,8 @@ The SHA256 fingerprint is required for MDM deployment. You can get it from your
```bash
keytool -list -v -keystore keystore.jks -alias fleet-android
# Grab SHA256
echo <SHA256> | xxd -r -p | base64
# Grab SHA256 (remove colons and convert to base64)
echo <SHA256> | tr -d ':' | xxd -r -p | base64
```
Copy the fingerprint for use in `FLEET_DEV_ANDROID_AGENT_SIGNING_SHA256`
+80
View File
@@ -0,0 +1,80 @@
# Release process
## 1. Create RC branch
```bash
git checkout main
git pull origin main
git checkout -b rc-minor-fleetd-android-v1.X.X
```
## 2. Update version numbers
In `app/build.gradle.kts`, update:
```kotlin
defaultConfig {
versionCode = 2 // Increment by 1 each release
versionName = "1.1.0" // Semantic version for display
}
```
- `versionCode`: Integer that must increase with each release (Google Play requirement)
- `versionName`: Human-readable version string shown to users
## 3. Update CHANGELOG.md
Add an entry for the new version with changes since the last release.
## 4. Commit and push RC branch
```bash
git add app/build.gradle.kts CHANGELOG.md
git commit -m "Prepare release v1.1.0"
git push origin rc-minor-fleetd-android-v1.X.X
```
## 5. Test the RC
- Build and test the release candidate
- Fix any issues on the RC branch (cherry-pick fixes from main if applicable)
## 6. Build signed release
Ensure `keystore.properties` is configured with the release signing key.
```bash
./gradlew clean bundleRelease
```
Output: `app/build/outputs/bundle/release/app-release.aab`
## 7. Upload to Google Play
1. Go to [Google Play Console](https://play.google.com/console)
2. Select the Fleet app
3. Navigate to Release > Production (or appropriate track)
4. Upload the signed AAB
5. Add release notes
6. Review and roll out
## 8. Tag the release
After the release is uploaded, tag the RC branch:
```bash
git checkout rc-minor-android-v1.X.X
git tag fleetd-android-v1.X.X
git push origin rc-minor-fleetd-android-v1.X.X
```
## 9. Bring version bump and CHANGELOG to main
```bash
git checkout main
git checkout rc-minor-fleetd-android-v1.X.X -- app/build.gradle.kts CHANGELOG.md
git commit -m "Update version and CHANGELOG for fleetd-android-v1.X.X"
git push origin main
```
This brings only the version bump and CHANGELOG updates to main, not other RC changes.
+2 -2
View File
@@ -23,8 +23,8 @@ android {
applicationId = "com.fleetdm.agent"
minSdk = 33
targetSdk = 36
versionCode = 1
versionName = "1.0"
versionCode = 2
versionName = "1.0.0"
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"