-
Notifications
You must be signed in to change notification settings - Fork 47
feat: add Google Play signed APK download to GitHub releases #94
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
- Add new workflow job to generate universal APK from AAB after Google Play upload - Extract version_code from config.gradle in prepare job - Use bundletool to generate universal APK from the uploaded AAB - Upload the generated APK to GitHub Release with _google_play_signed suffix - Include info file explaining Google Play signing process The workflow now: 1. Waits for Google Play to process the upload 2. Downloads the AAB artifact from the build job 3. Uses bundletool to generate a universal APK 4. Uploads the APK as v2er-vX.X.X_google_play_signed.apk to GitHub Release 5. Includes an info file explaining the Google Play signing process Note: The APK is initially signed with a debug key for generation purposes. When users download from Google Play Store, they receive an APK signed with Google Play's app signing certificate. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
- Add download-signed-apk job to release workflow - Use bundletool to generate universal APK from Google Play AAB - Upload APK with _google_play_signed suffix to GitHub release - Include info file explaining Google Play signing process - Add fastlane/node_modules to .gitignore 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR adds a new workflow job to automatically download and generate a universal APK from the Google Play signed AAB after upload, making it available as part of GitHub releases for easier distribution and testing.
- Adds
download-signed-apkjob that generates universal APK from uploaded AAB using bundletool - Creates informational file explaining Google Play signing process and provides internal testing link
- Extracts and outputs version code from config.gradle for use in the new workflow job
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
| download-signed-apk: | ||
| name: Download Google Play Signed APK | ||
| needs: [prepare, upload-play-store] |
Copilot
AI
Sep 9, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The job dependency references upload-play-store but the actual job name is play-store-upload. This will cause the workflow to fail as it cannot find the referenced job.
| needs: [prepare, upload-play-store] | |
| needs: [prepare, play-store-upload] |
| --ks=dummy.keystore \ | ||
| --ks-pass=pass:android \ | ||
| --ks-key-alias=androiddebugkey \ | ||
| --key-pass=pass:android 2>/dev/null || { |
Copilot
AI
Sep 9, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Using hardcoded passwords ('android') and the debug keystore alias 'androiddebugkey' poses a security risk. Even though this is temporary signing for bundletool, consider using generated random passwords or environment variables to avoid exposing credentials in logs.
| keytool -genkey -v -keystore dummy.keystore -alias androiddebugkey \ | ||
| -keyalg RSA -keysize 2048 -validity 10000 \ | ||
| -dname "CN=Android Debug,O=Android,C=US" \ | ||
| -storepass android -keypass android 2>/dev/null |
Copilot
AI
Sep 9, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The keytool command uses hardcoded passwords ('android') which will be visible in workflow logs. Consider using generated passwords or environment variables to avoid credential exposure.
| - name: Wait for Google Play processing | ||
| run: | | ||
| echo "Waiting for Google Play to process and sign the APK..." | ||
| sleep 120 # Wait 2 minutes for Google Play to process |
Copilot
AI
Sep 9, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
[nitpick] The hardcoded 2-minute sleep is arbitrary and may not be sufficient for all cases. Consider making this configurable via workflow input or implementing a polling mechanism to check when processing is complete.
Summary
download-signed-apkto download Google Play signed APK after upload_google_play_signedsuffixImplementation Details
v2er-v{VERSION}_google_play_signed.apkTest plan
🤖 Generated with Claude Code