Skip to content

Commit bee3738

Browse files
author
Shimi Dudkin
committed
ci(android): fix zipalign/apksigner lookup in release signing
1 parent c83a635 commit bee3738

1 file changed

Lines changed: 11 additions & 4 deletions

File tree

.github/workflows/release.yml

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -194,20 +194,27 @@ jobs:
194194
run: ./gradlew assembleRelease
195195

196196
- name: Sign APK
197-
if: env.KEYSTORE_BASE64 != ''
197+
if: ${{ secrets.KEYSTORE_BASE64 != '' && secrets.KEYSTORE_PASSWORD != '' && secrets.KEY_ALIAS != '' && secrets.KEY_PASSWORD != '' }}
198198
env:
199199
KEYSTORE_BASE64: ${{ secrets.KEYSTORE_BASE64 }}
200200
KEYSTORE_PASSWORD: ${{ secrets.KEYSTORE_PASSWORD }}
201201
KEY_ALIAS: ${{ secrets.KEY_ALIAS }}
202202
KEY_PASSWORD: ${{ secrets.KEY_PASSWORD }}
203203
run: |
204+
# Ensure build-tools are present (zipalign/apksigner)
205+
yes | sdkmanager --licenses >/dev/null || true
206+
sdkmanager "build-tools;35.0.0"
207+
204208
echo "$KEYSTORE_BASE64" | base64 -d > keystore.jks
205-
# Find the unsigned APK
206209
APK=$(find app/build/outputs/apk/release -name '*.apk' | head -1)
207210
ALIGNED="app/build/outputs/apk/release/screenmcp-aligned.apk"
208211
SIGNED="app/build/outputs/apk/release/screenmcp-signed.apk"
209-
zipalign -v -p 4 "$APK" "$ALIGNED"
210-
apksigner sign \
212+
213+
ZIPALIGN=$(find "$ANDROID_SDK_ROOT/build-tools" -name zipalign | sort -V | tail -1)
214+
APKSIGNER=$(find "$ANDROID_SDK_ROOT/build-tools" -name apksigner | sort -V | tail -1)
215+
216+
"$ZIPALIGN" -v -p 4 "$APK" "$ALIGNED"
217+
"$APKSIGNER" sign \
211218
--ks keystore.jks \
212219
--ks-pass "pass:$KEYSTORE_PASSWORD" \
213220
--ks-key-alias "$KEY_ALIAS" \

0 commit comments

Comments
 (0)