62 lines
1.6 KiB
Markdown
62 lines
1.6 KiB
Markdown
# Android App Signing Setup
|
|
|
|
## Why This Matters
|
|
Android requires apps to be signed with the same key for updates to work. Without proper signing, users cannot update your app - they must uninstall and reinstall, losing all data.
|
|
|
|
## Setup Instructions
|
|
|
|
### 1. Create a Keystore (if you don't have one)
|
|
|
|
Run this command in the `android/` directory:
|
|
|
|
```bash
|
|
keytool -genkey -v -keystore paarrot-release.keystore -alias paarrot -keyalg RSA -keysize 2048 -validity 10000
|
|
```
|
|
|
|
You'll be asked for:
|
|
- Keystore password (remember this!)
|
|
- Key password (remember this!)
|
|
- Your name, organization, etc.
|
|
|
|
**IMPORTANT**: Back up this keystore file and remember the passwords! If you lose either, you cannot update your app.
|
|
|
|
### 2. Create keystore.properties
|
|
|
|
Copy the example file:
|
|
|
|
```bash
|
|
cp keystore.properties.example keystore.properties
|
|
```
|
|
|
|
Then edit `keystore.properties` and fill in:
|
|
- `storeFile`: path to your keystore (e.g., `paarrot-release.keystore`)
|
|
- `storePassword`: the keystore password you set
|
|
- `keyAlias`: the alias (e.g., `paarrot`)
|
|
- `keyPassword`: the key password you set
|
|
|
|
### 3. Verify
|
|
|
|
The file `keystore.properties` should be gitignored (check `.gitignore`).
|
|
|
|
### 4. Build
|
|
|
|
Now your release builds will be properly signed:
|
|
|
|
```bash
|
|
cd android
|
|
./gradlew assembleRelease
|
|
```
|
|
|
|
The signed APK will be in: `app/build/outputs/apk/release/`
|
|
|
|
## Troubleshooting
|
|
|
|
### "Updates not installing"
|
|
- You're using a different keystore than the original APK
|
|
- Solution: Use the same keystore that was used for the first release
|
|
|
|
### "keystore.properties not found"
|
|
- Normal for debug builds
|
|
- Only needed for release builds
|
|
- Create the file following step 2 above
|