티스토리 뷰
예전부터 해보고 싶었던 빌드, 테스트, 배포 과정을 자동화에 대해서 시도해 보고 최종적으로 성공한 것에 대해 기록하고자 한다.
CI/CD 도구로 여러가지가 있다는 건 알고만 있었다
1. Github Actions
2. GitLab CI/CD
3. Bitrise
4. Jenkins 등등..
Bitrise는 예전에 부장님께서 프로젝트 진행 중 무료 버전으로만 사용할 수 있게 설정해서 사용해 봤었는데 아직 개념이 없었어서 그런지 와닿지가 않았다
현재 개발중인 앱이 Github Repository로 관리 중이어서 이번엔 Github Actions를 이용해 보기로 하고 시작해 봤다.
우선 Github Actions 에서 자동화를 진행할 코드를 워크 플로우 ( workflow )라고 하는 거 같다. 이 워크 플로우의 확장자는 xxx.yml으로 저장된다
원래 목표는 Play Store 에 배포까지 하는 거였지만.. 워크 플로우 프로레스를 제대로 이해하지 못하고 덤볐다가 엄청나게 실패만 한 경험이 있어서.. 아 우선 간단하게 앱이 빌드가 되는지부터 확인하고, 그다음에 파이어 베이스에 배포해보고.. 그다음에 플레이 스토어를 진행하자라는 생각으로 다시 처음부터 진행했었다
먼저 해야 할 것은
GitHub Secrets 를 등록해야 한다
이건 외부에 노출 되면 안 되는 정보들을 여기에 올려 두고 워크 플로우에서 꺼내 사용하는 방식으로 진행되는 거 같다
여기에 등록될 것들은 주로 keyStore.jks나 Google-service.json, Api Key 등등 Repository에 등록되지 않고 로컬에서 저장되어 사용되는 것들?이라고 이해하면 될 거 같다
내가 등록한 것들은 이렇다
현재 Secrets에 등록되어 있는 것들은 어떤건 파이어베이스 등록할 때 필요하여도, 어떤 건 플레이 스토어에 배포할 때 필요하고 하니 필요한 것들은 모두 등록해 놓는 것이다
우선 내가 Json 파일을 저장 하거나 Api 키를 저장할 때는 무조건 Base64 인코딩 한 값을 넣었다
모르겠다 Chat GPT가 그렇게 하라더라 ..
또 다른 사람들은 그냥 넣었던데
그냥 넣으면 또 안되더라고 ?
openssl base64 -in [keystore file path] | tr -d '\n' > [base64 file path]
Mac 터미널 기준 요렇게 하면 파일이 생성된다
나는 주로 xxx.txt 파일로 만들어서 사용했다
줄 바꿈 없이 쭉 쓰여있어야 인식을 할 수 있어서 저런 옵션을 넣은 것
Base64 인코딩해야 하는 것은 따로 적어 둘 테니 참고
FIREBASE_APP_ID
Firebase -> 프로젝트 설정 -> 일반 -> 내 앱 -> 앱 ID를 그대로 넣어줌
FIREBASE_SERVICE_ACCOUNT
Firebase 서비스 계정의 Json 파일을 저장한 값 [Base64]
FIREBASE_TOKEN migration
This action uploads artifacts (.apk or .ipa) to Firebase App Distribution. - wzieba/Firebase-Distribution-Github-Action
github.com
여기서 만든 Json 파일 안에 있는 내용을 가져와서 저장하면 된다
GOOGLE_SERVICE_JSON
google-service.json 저장한 값 [Base64]
PLAY_STORE_SERVICE_ACCOUNT_JSON
Play Store 용 서비스 계정 Json [Base64]
생성 방법 URL참고
How to Set up your Google Publishing API
Overview Setting up your Google Publishing API allows our team to improve your app over time, giving your community a world-class app experience. This article outlines the steps for setting up your Google Publishing API. Before You Start Ensure you have re
support.pushpay.com
이것 때문에 정말 많이 고생했다.. 어디에도 이 내용이 없더라..
내가 못 찾은 건지.. firebase service account 만든 것처럼 뭔가를 만들고
만들 때 권한 허용 하는 부분에서 서비스 계정 - 서비스 계정 유저 이걸 꼭 선택해야 되고
이걸 만든 다음에 만들어진 Email 부분을 Google Console에 협업에 추가를 해야 된다..
그리고 만들어진 Json 파일을 여기에 가져와서 저장하면 된다
RELEASE_KEYSTORE_BASE64
앱 apk 및 aab 추출할 때 만들었던 xxx.jks 파일 [Base64]
RELEASE_KEYSTORE_ALIAS
RELEASE_KEYSTORE_PASSWORD
RELEASE_KEY_PASSWORD
'Android > CICD' 카테고리의 다른 글
[ CICD #3 ] GitHub Actions Play Store Alpha UpLoad -3 (1) | 2025.05.28 |
---|---|
[ CICD #2 ] GitHub Actions Firebase Distribution -2 (0) | 2025.05.28 |
- Total
- Today
- Yesterday
- widget onreceive
- 쏘렌토 하이브리드
- 맥 전용
- 폴더블 상태 유지
- 안드로이드 폴드 대응
- Dot indicator
- 갤럭시 워치
- firebase distribution
- android widget 만들기
- 웨어러블
- 풀배열 키보드
- widget 이미지 로딩
- widget onupdate
- widget 만들기
- github
- 테스트 앱 배포
- 테스트 배포
- 프래그먼트 데이터 저장
- github actions
- github secrets
- Android
- wear os
- 안드로이드 플립 대응
- flutter web
- Foldable Event
- aos img url bitmap
- Fragment data
- 폴더블 이벤트 받기
- widget glide
- 쏘렌토 하이브리드 시그니처
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |