---다음 글---
2021.08.26 - [안드로이드] - [안드로이드] Github Actions으로 구글 플레이스토어 배포 with google-services.json
안녕하세요!!
오늘은 간단하게 CI/CD를 구성하여 안드로이드 앱을 Signing 하여 배포하는 방법을 알아보려고 합니다. 사실 이 글의 발단은 저의 노트북이 너무 열 받아서 이제 힘을 못쓴다는 것입니다.
항상 CI/CD 를 필요하다고 생각을 하였지만 항상 로컬에서 일일이 배포를 하는 것에 저의 불쌍한 노트북은 결국 열을 너무 많이 받아서 ㅠㅠㅠㅠ. Android Studio Artic Fox를 사용하지만 더 열이 나는 느낌?
그래서 저는 더이상 로컬에서 테스트는 하더라도 Signing 빌드를 하지 말자라고 다짐을 했습니다. 사실 여러 솔루션들이 있습니다.
여러 가지 CI/CD
Jenkins
www.jenkins.io/
TravisCI
travis-ci.org/
Britise
www.bitrise.io/
fastlane
fastlane.tools/
위 링크들을 따라가시면 여러 가지 정보를 찾을 수 있습니다.
근데 왜 하필 Github Actions 인가?
사실 그냥 제 자신하고 타협을 했습니다. 아직 너의 어플은 매우 작으니 그렇게 큰 규모의 툴을 사용할 필요가 없다.라고요. 사실 Britise를 찾아보다가 허걱;;; 가난한 저에게는 매우 좋은 Github Actions 가 있었습니다.
Github Actions 를 오픈 때부터 그냥 흘깃흘깃 보다가 이번에 본격 적으로 사용해보니 재밌더라구여 ㅎㅎ
github.com/keelim/nandaDiagnosis/blob/master/.github/workflows/android.yml
Github Actions 에 여러 가지를 Marketplace에서 활용을 할 수 있는데 저는 r0akdll 께서 제공하는 것을 사용했습니다. 진짜 편합니다.👍👍👍
우리가 해줄 것은 위에 코드를 Actions 반영을 해주고 처리해 줄 것은 5가지 밖에 없습니다.
바로 {{ secretes.~~}} 처리 입니다.
repo에서 Settings -> Secrets --> Actions Secrets에서 설정을 할 수 있다.
Action Secrets 란
Secrets are environment variables that are encrypted. Anyone with collaborator access to this repository can use these secrets for Actions.
Secrets are not passed to workflows that are triggered by a pull request from a fork. Learn more.
이라고 기재가 되어 있는데 환경 변수를 암호화 해주는 공간이라 생각하시면 쉽습니다. 이게 좋은 점이 편집할 때마다 기존의 값을 볼 수 없이 그냥 새로운 값을 입력하게 되어 있어서 개인적으로 더 보안이 되는 듯한 느낌이었습니다.
이렇게 작성을 해주시면 됩니다. 위에서 부터
1 - ALIAS 기존 jks 의 ALIAS를 적어주시면 됩니다.
2 - KEY_PASSWORD key password 를 적어주시면 됩니다
3 - KEY_STORE_PASSWORD keystore password를 적어주시면 됩니다. (어느 순간 key password 하고 같아야 하더라고요)
제일 중요한
4 - developer console에서 Service Account JSON을 가져와야 합니다. (이와 관련된 내용은 다음 포스팅에서)
5 - SIGNING_KEY는 base64로 인코딩 된 jks 키 스토어입니다. Google 님 도움으로 base64로 인코딩하여 값을 넣어줍니다.
이렇게 환경 변수를 설정해주기만 하면
위처럼 바로 빌드가 될 수 있음을 확인할 수 있습니다. (너무나 신기한 것) 저는 실험을 하기 위해 바로 프로덕션으로 진행을 하였지만 Beta track부터 진행하는 게 좋을 것 같습니다.
포스팅은 여기까지 해서 마치겠습니다. 여러 이슈들이 있었는데 관련 내용은 따로 또 포스팅할 기회가 있었으면 합니다. 사실 개인적으로 이번 CI/CD 세팅은 맛보기에 불과하고 점차 fastlane?, Appcenter? 여러 가지 적용을 해보면서 저에게 맞는 환경을 찾고자 합니다.
이와 같은 경험이 저와 같은 학생 개발자 친구들이 빌드하는데 좀 더 편리하게 하였으면 하는 바람입니다.
'안드로이드' 카테고리의 다른 글
[안드로이드] Firebase Distribution 사용하기 (0) | 2021.03.29 |
---|---|
[안드로이드] Hi! Compose (0) | 2021.03.01 |
[안드로이드] 리스트 뷰(ListView)에서 리싸이클러 뷰(RecyclerView) 전환기 (0) | 2021.02.08 |
[안드로이드] 내가 보려고 정리하는 안드로이드 꿀팁 (0) | 2021.01.13 |
[안드로이드] BottomNavigationView 바텀네비게이션 뷰 둥글게 (0) | 2021.01.12 |
댓글