【GithubActions】Androidアプリの署名設定
経緯
Androidアプリのビルド時、現状はビルド後に別で署名処理を走らせているのですが、ビルドと署名を同時に行うよう設定したいと思って調べていました
いくつか方法は出てきたのですが、何回やってもkeytoolで「署名付きJARファイルではありません」という状態でうまくいきませんでした
一応解決したので備忘録として記録しておきます
方法
結論としては、「v1Signを有効にする必要があった」ということです
見てもらったほうが早いと思うのでいかにサンプルを記載します
サンプル
まずはbuild.gradle(appの方)にキー情報を記載します
android {
...
signingConfigs{
release{
storeFile rootProject.file('release.keystore')
storePassword System.getenv('KEYSTORE_PASSWORD')
keyAlias System.getenv('KEY_ALIAS')
keyPassword System.getenv('KEY_PASSWORD')
v1SigningEnabled true
v2SigningEnabled true
}
}
buildTypes {
release {
signingConfig signingConfigs.release
}
...
}
...
}
ここで「v1SigningEnabled trueと「v2SigningEnabled true」を忘れないでください
そしてリリースビルド時に署名を行いたい場合は、BuildTypeにその旨を記載します
また、個々に記載した署名鍵の情報はGithubのシークレットに記載する必要があります
手順としては、Githubの「Settings」→「Secrets」で設定します

その後にymlファイルを修正していきます
name: ANDROID_CI
on:
push:
branches:
- develop
- master
pull_request:
branches:
- develop
- master
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: release build & sign
run: |
echo "${{ secrets.KEYSTORE_FILE }}" | base64 -d > release.keystore
export KEYSTORE_PASSWORD="${{ secrets.KEYSTORE_PASSWORD }}"
export KEY_ALIAS="${{ secrets.KEY_ALIAS }}"
export KEY_PASSWORD="${{ secrets.KEY_PASSWORD }}"
./gradlew assembleRelease
- name: upload release build
uses: actions/upload-artifact@v2
with:
name: release_apk
path: app
以上です
お役に立てると幸いです
今回も最後まで見てくださってありがとうございました