Skip to content

Commit e956021

Browse files
committed
added signing
1 parent 3287add commit e956021

File tree

3 files changed

+41
-3
lines changed

3 files changed

+41
-3
lines changed

.github/workflows/build.yml

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -170,6 +170,23 @@ jobs:
170170
envsubst < lib/config/env.local.dart > lib/config/env.local.dart.tmp
171171
mv lib/config/env.local.dart.tmp lib/config/env.local.dart
172172
173+
- name: Configure Android signing
174+
env:
175+
SIGNING_KEY: ${{ secrets.SIGNING_KEY }}
176+
KEY_STORE_PASSWORD: ${{ secrets.KEY_STORE_PASSWORD }}
177+
KEY_ALIAS: ${{ secrets.KEY_ALIAS }}
178+
KEY_PASSWORD: ${{ secrets.KEY_PASSWORD }}
179+
run: |
180+
if [ -z "$SIGNING_KEY" ]; then
181+
echo "No signing key provided; using debug signing."
182+
exit 0
183+
fi
184+
echo "$SIGNING_KEY" | base64 -d > android/app/release-key.jks
185+
echo "KEYSTORE_PATH=$PWD/android/app/release-key.jks" >> $GITHUB_ENV
186+
echo "KEY_STORE_PASSWORD=$KEY_STORE_PASSWORD" >> $GITHUB_ENV
187+
echo "KEY_ALIAS=$KEY_ALIAS" >> $GITHUB_ENV
188+
echo "KEY_PASSWORD=$KEY_PASSWORD" >> $GITHUB_ENV
189+
173190
- name: Build Android APK
174191
run: flutter build apk --no-tree-shake-icons
175192

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,3 +95,4 @@ ios/**/DerivedData/
9595
test/*.fit
9696
test/*.gpx
9797
android/build/reports/problems/problems-report.html
98+
android/build/reports/problems/problems-report.html

android/app/build.gradle

Lines changed: 23 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,12 @@ if (flutterVersionName == null) {
2222
flutterVersionName = '1.0'
2323
}
2424

25+
// Release signing pulled from environment so CI can provide secrets without committing keystore.
26+
def releaseStoreFile = System.getenv('KEYSTORE_PATH')
27+
def releaseStorePassword = System.getenv('KEY_STORE_PASSWORD')
28+
def releaseKeyAlias = System.getenv('KEY_ALIAS')
29+
def releaseKeyPassword = System.getenv('KEY_PASSWORD')
30+
2531
android {
2632
namespace "com.example.ss2kconfigapp"
2733
compileSdkVersion 36 // Updated to support audioplayers_android requirements
@@ -59,11 +65,25 @@ android {
5965
versionName flutterVersionName
6066
}
6167

68+
signingConfigs {
69+
release {
70+
if (releaseStoreFile && releaseStorePassword && releaseKeyAlias && releaseKeyPassword) {
71+
storeFile file(releaseStoreFile)
72+
storePassword releaseStorePassword
73+
keyAlias releaseKeyAlias
74+
keyPassword releaseKeyPassword
75+
}
76+
}
77+
}
78+
6279
buildTypes {
6380
release {
64-
// TODO: Add your own signing config for the release build.
65-
// Signing with the debug keys for now, so `flutter run --release` works.
66-
signingConfig signingConfigs.debug
81+
// Use CI-provided signing when available; fall back to debug for local convenience.
82+
if (releaseStoreFile && releaseStorePassword && releaseKeyAlias && releaseKeyPassword) {
83+
signingConfig signingConfigs.release
84+
} else {
85+
signingConfig signingConfigs.debug
86+
}
6787

6888
minifyEnabled true
6989
shrinkResources true

0 commit comments

Comments
 (0)