Flutter + GitHub Actions + Firebase App Distribution에서 자동 릴리스 사이클 만들기(Android)
가끔 밖에 하지 않아서 잊을 것 같아서 비망.
하고 싶은 일
로컬에서 릴리스 빌드 만들기 가능
공식 문서의 이 부분 에도 쓰여 있다.
1. (없으면) keystore 파일 만드는
샘플은 많이 구르고 있기 때문에 할애.
git 관리에서 제외합니다.
2. 로컬 빌드용 key.properties 만들기
storePassword=<password from previous step>
keyPassword=<password from previous step>
keyAlias=key
storeFile=<location of the key store file, such as /Users/<user name>/key.jks>
이것도 git 관리에서 제외한다.
3. 앱의 build.gradle에 다음을 추가합니다.
def keystoreProperties = new Properties()
def keystorePropertiesFile = rootProject.file('key.properties')
if (keystorePropertiesFile.exists()) {
// For Local
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
} else {
// For CI
keystoreProperties.setProperty('storePassword', System.getenv('KEY_STORE_PASSWORD'))
keystoreProperties.setProperty('keyPassword', System.getenv('KEY_PASSWORD'))
keystoreProperties.setProperty('keyAlias', System.getenv('ALIAS'))
keystoreProperties.setProperty('storeFile', System.getenv('KEY_PATH'))
}
android
블록에 다음을 추가 (& 재기록) signingConfigs {
release {
keyAlias keystoreProperties['keyAlias']
keyPassword keystoreProperties['keyPassword']
storeFile file(keystoreProperties['storeFile'])
storePassword keystoreProperties['storePassword']
}
}
buildTypes {
release {
signingConfig signingConfigs.release
}
}
4. 확인
우선 APK 만들어 보자
flutter build apk --release
GitHub Actions로 릴리스 빌드를 만들 수 있도록
참조 : Signing Flutter Android apps for release in GitHub Actions
1. (없으면) workflow 만드는
샘플은 많이 구르고 있기 때문에 할애.
2. GitHub Secrets에 모두 넣어
key.properties
대신.그런 다음 GitHub Actions에서 이것을 읽습니다.
ANDROID_KEY_STORE_PASSWORD
storePassword ANDROID_KEY_PASSWORD
keyPassword ANDROID_KEY_ALIAS
keyAlias ANDROID_KEY_JKS
keystore 파일을 base64 인코딩한 것.openssl base64 -A -in key.jks
사용하지 않았지만, 이런 action도 있거나 한다.
htps : // 기주 b. 코 m / 마르 tp ぁ세 / 아 c 치 온 s / 시그
3. workflow에 릴리스 빌드를 만드는 단계 추가
이전 단계에서 GitHub Secrets에 저장된 값을 환경 변수에 저장합니다.
- name: set up private files
run: |
echo $SIGNING_KEY | base64 -di > android/app/key.jks
env:
SIGNING_KEY: ${{ secrets.ANDROID_KEY_JKS }}
- name: build release apk
run: |
flutter build apk --release --build-name=0.0.$GITHUB_RUN_NUMBER --build-number=$GITHUB_RUN_NUMBER
env:
KEY_STORE_PASSWORD: ${{ secrets.ANDROID_KEY_STORE_PASSWORD }}
KEY_PASSWORD: ${{ secrets.ANDROID_KEY_PASSWORD }}
ALIAS: ${{ secrets.ANDROID_KEY_ALIAS }}
KEY_PATH: key.jks
i
옵션 붙이지 않으면 자신의 환경에서는 넘어졌다. android/app
의 build.gradle
로 빌드하기 때문에 android/app/
에 파일을 두고 있다. $GITHUB_RUN_NUMBER
빌드마다 패치 버전과 버전 번호가 올라갑니다.Firebase App Distribution으로 출시
기존 GitHub Action 의 혜택을 누리며 즐기는
(App Distribution 설정도 잊지 않고)
- name: upload artifact to Firebase App Distribution
uses: wzieba/Firebase-Distribution-Github-Action@v1
with:
appId: ${{secrets.FIREBASE_ANDROID_APP_ID}}
token: ${{secrets.FIREBASE_TOKEN}}
groups: Developer
file: build/app/outputs/flutter-apk/app-release.apk
또 다른 목소리
Reference
이 문제에 관하여(Flutter + GitHub Actions + Firebase App Distribution에서 자동 릴리스 사이클 만들기(Android)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/tkcm/items/ab6e43c961d817d015b3텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)