GitHub Actions를 사용하여 Capacitor Android 앱 번들 빌드
8720 단어 ioniccapacitorwebdevjavascript
높은 수준에서 다음을 수행합니다.
시작하자! 🤩
키 저장소 생성
앱 릴리스에 서명할 키 저장소가 이미 있을 수 있지만 그렇지 않은 경우 키 저장소를 만드는 방법은 다음과 같습니다.
keytool -genkey -v -keystore android/release.jks -keyalg RSA -keysize 2048 -validity 10000 -alias release
데이터가 올바른지 묻는 메시지가 표시될 때까지 따르고 yes를 입력하여 키를 저장합니다. 실수로 저장소에 커밋하지 않도록
.gitinore
에 추가하는 것을 잊지 마십시오. 키 저장소는 비밀로 유지되어야 합니다.키 저장소 및 암호를 GitHub 비밀로 추가
GitHub의 설정 > 비밀 > 작업에서 저장소에 대한 비밀을 추가할 수 있습니다.
그러나 비밀은 문자열일 수 있고 키 저장소는 실제로 이진 데이터이기 때문에 빠르게 문제가 발생합니다.
base64
라는 편리한 CLI 유틸리티가 있습니다. 대부분의 Linux 배포판에 사전 설치되어 있어야 합니다. 이를 사용하여 바이너리 파일을 문자열 표현으로 변환할 수 있습니다. 실행해 보겠습니다.base64 android/release.jks > android/release.jks.base64
이제 열면
android/release.jks.base64
일반 텍스트 파일이 표시됩니다.이제
RELEASE_KEYSTORE
라는 이름의 비밀로 추가할 수 있습니다. 다음과 같이 표시되어야 합니다.ℹ️ base64 표현에 대해 걱정하지 마십시오. GitHub 작업에서 파일로 다시 변환합니다.
키 저장소 비밀번호도
RELEASE_KEYSTORE_PASSWORD
로 추가해 보겠습니다. 이제 다음과 같이 표시되어야 합니다.GitHub 작업 워크플로 추가
드디어 워크플로를 추가할 시간입니다! 다음 파일을
.github/workflows/android-build.yml
에 추가하십시오.name: Build Android
on:
push:
branches:
- main
jobs:
build:
name: Build APK
runs-on: ubuntu-latest
steps:
- name: Checkout source
uses: actions/checkout@v2
- name: Setup java
uses: actions/setup-java@v1
with:
distribution: 'zulu'
java-version: '11'
- name: Setup Node.js
uses: actions/setup-node@v1
with:
node-version: 16.x
- name: Install app dependencies
run: npm install
- name: Build Svelte app
run: npm run build
- name: Capacitor update
run: npx cap update
- name: Capacitor copy
run: npx cap copy
- name: Build app bundle
run: cd android && gradle bundle
- name: Extract Android signing key from env
run: |
echo "${{ secrets.RELEASE_KEYSTORE }}" > android/release.jks.base64
base64 -d android/release.jks.base64 > android/release.decrypted.jks
- name: Sign dev build
run: jarsigner -keystore android/release.decrypted.jks -storepass "${{ secrets.RELEASE_KEYSTORE_PASSWORD }}" -signedjar ./android/app/build/outputs/bundle/release/app-release-signed.aab ./android/app/build/outputs/bundle/release/app-release.aab release
- name: Upload release bundle
uses: actions/upload-artifact@v2
with:
name: app-release
path: android/app/build/outputs/bundle/release/app-release-signed.aab
retention-days: 60
ℹ️ 빌드할 분기
on
, 선호하는 Java 버전 및 retention-days
구성 옵션을 사용하여 출력 아티팩트에 대해 원하는 보존 기간과 같은 몇 가지 사항을 조정할 수 있습니다.)변경 사항을 푸시한 후 빌드가 실행되는 것을 볼 수 있는 저장소의 작업 탭으로 이동할 수 있습니다.
❌ 빌드가 완료되지 않으면 위의 워크플로 단계를 사용하여 로컬에서 빌드를 시도하십시오. 커패시터 구성에 문제가 있을 수 있습니다.
빌드가 성공적으로 실행되면 빌드 실행 페이지에서 직접 번들을 다운로드할 수 있습니다!
여기에서 Play Console에 서명된 번들을 직접 업로드할 수 있습니다! 🚀
ℹ️ Play 스토어에 업로드하려는 모든 새 버전에 대해
versionCode
에서 android/app/build.gradle
를 부딪쳐야 합니다.링크 및 승인
이 게시물이 존재하지 않을 수 있었던 아래 게시물에 특별한 감사를 드립니다. 🙂
Liam Briese에 Unsplash의 사진
Reference
이 문제에 관하여(GitHub Actions를 사용하여 Capacitor Android 앱 번들 빌드), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/khromov/build-your-capacitor-android-app-bundle-using-github-actions-24do텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)