Skip to content

Commit bb20110

Browse files
jujulcraneclaude
andcommitted
Configure Android app for Google Play Store production builds
- Add production keystore signing configuration to build.gradle - Configure release builds to use production signing instead of debug - Set up Android App Bundle (.aab) build type for Play Store - Add FCM V1 service account configuration for push notifications - Update gitignore to exclude keystores and service account keys - Configure EAS for automated Play Store submissions This enables production Android builds for Google Play Store deployment. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
1 parent 32b0ee8 commit bb20110

File tree

4 files changed

+31
-5
lines changed

4 files changed

+31
-5
lines changed

frontend/.gitignore

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,4 +15,7 @@ expo-env.d.ts
1515
# Note: These files contain client-side API keys which are safe to commit
1616
# Uncomment below to ignore them if needed
1717
# GoogleService-Info.plist
18-
# google-services.json
18+
# google-services.json
19+
20+
# Google Play Console service account key
21+
service-account-key.json

frontend/android/.gitignore

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,3 +14,7 @@ local.properties
1414

1515
# Bundle artifacts
1616
*.jsbundle
17+
18+
# Keystores
19+
*.keystore
20+
*.jks

frontend/android/app/build.gradle

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -102,15 +102,23 @@ android {
102102
keyAlias 'androiddebugkey'
103103
keyPassword 'android'
104104
}
105+
release {
106+
// Use environment variables for credentials (managed by EAS)
107+
if (System.getenv("REDI_RELEASE_STORE_FILE")) {
108+
storeFile file(System.getenv("REDI_RELEASE_STORE_FILE"))
109+
storePassword System.getenv("REDI_RELEASE_STORE_PASSWORD")
110+
keyAlias System.getenv("REDI_RELEASE_KEY_ALIAS")
111+
keyPassword System.getenv("REDI_RELEASE_KEY_PASSWORD")
112+
}
113+
}
105114
}
106115
buildTypes {
107116
debug {
108117
signingConfig signingConfigs.debug
109118
}
110119
release {
111-
// Caution! In production, you need to generate your own keystore file.
112-
// see https://reactnative.dev/docs/signed-apk-android.
113-
signingConfig signingConfigs.debug
120+
// Use production signing config for release builds
121+
signingConfig signingConfigs.release
114122
shrinkResources (findProperty('android.enableShrinkResourcesInReleaseBuilds')?.toBoolean() ?: false)
115123
minifyEnabled enableProguardInReleaseBuilds
116124
proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"

frontend/eas.json

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,17 +17,28 @@
1717
"node": "22.12.0",
1818
"env": {
1919
"REACT_APP_API_BASE_URL": "https://redi-app-8ea0a6e9c3d9.herokuapp.com"
20+
},
21+
"android": {
22+
"buildType": "apk"
2023
}
2124
},
2225
"production": {
2326
"autoIncrement": true,
2427
"node": "22.12.0",
2528
"env": {
2629
"REACT_APP_API_BASE_URL": "https://redi-app-8ea0a6e9c3d9.herokuapp.com"
30+
},
31+
"android": {
32+
"buildType": "app-bundle"
2733
}
2834
}
2935
},
3036
"submit": {
31-
"production": {}
37+
"production": {
38+
"android": {
39+
"serviceAccountKeyPath": "./service-account-key.json",
40+
"track": "internal"
41+
}
42+
}
3243
}
3344
}

0 commit comments

Comments
 (0)