You need to replace the following text on the README.md:
#CHANGE_ITUNES_APP_STORE_LINK
itunes app store link to your app#CHANGE_GOOGLE_PLAY_STORE_LINK
goole play link to your app#CHANGE_PROMOTIONAL_SCREENSHOT
image link showing the app main use#CHANGE_OVERVIEW_SCREENSHOT
image link showing other screens
If you did not set a remote url at the beginning you need to replace the following at README.md and CONTRIBUTING.md:
#CHANGE_GITHUB_USER
#CHANGE_GITHUB_REPO
Get a 16 byte url-safe password here and use it in both the alias and the keystore. Store this password in a safe location.
Create keystore:
"%JAVA_HOME%\bin\keytool" -genkeypair -v -keystore android/app/release.keystore -alias Pokedex -keyalg RSA -keysize 2048 -validity 10000
Convert to new standard:
"%JAVA_HOME%\bin\keytool" -importkeystore -srckeystore android/app/release.keystore -destkeystore android/app/release.jks -deststoretype pkcs12
Remove old keystore:
rm android/app/release.keystore
Go to your repository settings.
Under Options
change the merge options to the following:
- ✅ Allow merge commits
- 🔲 Allow squash merging
- 🔲 Allow rebase merging
Under Branches
and a new rule for main
and beta
:
- ✅ Require pull request reviews before merging
- ✅ Require status checks to pass before merging
- ✅ Require branches to be up to date before merging
- ✅ Include administrators
The actions uses a number of secrets described bellow, you can install the github CLI and run the commands to automagically set/update them.
Release type (true
to run the android workflow):
UPLOAD_TO_RELEASE
set totrue
to build APK and upload to releases pagegh secret set UPLOAD_TO_RELEASE -b "true"
UPLOAD_TO_GOOGLE
set totrue
to build AAB and upload to google playgh secret set UPLOAD_TO_GOOGLE -b "false"
GitHub:
PERSONAL_TOKEN
token with access to repo and workflows;gh secret set PERSONAL_TOKEN -b "PASTE_TOKEN"
Git GPG key, find out more here:
GPG_PRIVATE_KEY
to verify commits and tags;gpg --armor --export-secret-key [email protected] | gh secret set GPG_PRIVATE_KEY
GPG_PASSPHRASE
to authenticate the gpg;gh secret set GPG_PASSPHRASE -b "PASTE_GPG_PASSPHRASE"
App Signing config:
RELEASE_JKS
keystore that signs the app:openssl base64 -in android/app/release.jks | sed -z '$ s/\n$//' | gh secret set RELEASE_JKS
RELEASE_KEY_ALIAS
the alias used to sign the keystore;gh secret set RELEASE_KEY_ALIAS -b "PASTE_KEY_ALIAS"
RELEASE_KEY_PASSWORD
the password used for both the alias and the keystore;gh secret set RELEASE_KEY_PASSWORD -b "PASTE_KEY_PASSWORD"
Google Play:
GOOGLE_SERVICES
config file for google services:openssl base64 -in android/app/google-services.json | gh secret set GOOGLE_SERVICES
GOOGLE_PLAY_SERVICE_ACCOUNT
config file that allows upload to Google Play:openssl base64 -in pc-api-0000000000000000000-123-000000000000.json | gh secret set GOOGLE_PLAY_SERVICE_ACCOUNT
Dotenv:
DOTENV_STAGING
dotenv file used during staging builds:openssl base64 -in .env.staging | gh secret set DOTENV_STAGING
DOTENV_PROD
dotenv file used during production builds:openssl base64 -in .env.production | gh secret set DOTENV_PROD
You can edit the commands bellow and set/update the main secrets in one go:
gh secret set PERSONAL_TOKEN -b "PASTE_TOKEN"
gh secret set UPLOAD_TO_RELEASE -b "true"
gh secret set UPLOAD_TO_GOOGLE -b "false"
gh secret set RELEASE_KEY_ALIAS -b "PASTE_KEY_ALIAS"
gh secret set RELEASE_KEY_PASSWORD -b "PASTE_KEY_PASSWORD"
openssl base64 -in android/app/release.jks | sed -z '$ s/\n$//' | gh secret set RELEASE_JKS
gh secret set GPG_PASSPHRASE -b "PASTE_GPG_PASSPHRASE"
gpg --armor --export-secret-key [email protected] | gh secret set GPG_PRIVATE_KEY