From 8c60054f49019a1422950e554529c1bfb3b61fed Mon Sep 17 00:00:00 2001 From: soyeonLee <109227292+soyeonLee126@users.noreply.github.com> Date: Tue, 18 Aug 2026 23:48:47 +0900 Subject: [PATCH] =?UTF-8?q?fix:=20App=20Distribution=20=EB=B9=8C=EB=93=9C?= =?UTF-8?q?=EC=97=90=EC=84=9C=20=EA=B5=AC=EA=B8=80=20=EB=A1=9C=EA=B7=B8?= =?UTF-8?q?=EC=9D=B8=EC=9D=B4=20=EC=95=88=20=EB=90=98=EB=8D=98=20=EB=AC=B8?= =?UTF-8?q?=EC=A0=9C=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit internal buildType 이 debug 서명을 쓰는데 CI 러너에는 debug 키스토어가 없어 AGP 가 빌드마다 새 키를 생성했다. 서명 SHA-1 이 매 실행 달라지니 구글 로그인용 Android OAuth 클라이언트로 등록할 수가 없어 Credential Manager 요청이 실패했다. (실제 배포 APK 확인: run 32130123521 -> 172bef8e..., run 32093393961 -> 2205192f...) release 키스토어 env 가 주어지면 그 고정 키로 internal 을 서명하도록 바꾸고, CD 의 firebase-distribution 잡에 키스토어 복원 + 서명 env 전달을 추가했다. 이 키의 SHA-1(fd46eb66...)은 이미 Firebase 에 등록돼 있어 콘솔 작업은 필요 없다. env 가 없는 로컬 빌드는 기존대로 debug 서명으로 폴백한다. --- .github/workflows/cd.yml | 9 ++++++++- app/build.gradle.kts | 7 ++++++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/.github/workflows/cd.yml b/.github/workflows/cd.yml index f7683d01..d45d76d2 100644 --- a/.github/workflows/cd.yml +++ b/.github/workflows/cd.yml @@ -51,7 +51,7 @@ jobs: bundler-cache: true - name: Prepare secret directories - run: mkdir -p fastlane/config + run: mkdir -p fastlane/config keystore - name: Write google-services.json run: echo "${{ secrets.GOOGLE_SERVICES_JSON }}" | base64 -d > app/google-services.json @@ -67,6 +67,9 @@ jobs: printf 'DEV_BASE_URL=%s\n' "$DEV_BASE_URL" > local.properties printf 'PROD_BASE_URL=%s\n' "$PROD_BASE_URL" >> local.properties + - name: Write release keystore + run: echo "${{ secrets.RELEASE_KEYSTORE }}" | base64 -d > keystore/release.jks + - name: Write Firebase service account key run: echo "${{ secrets.FIREBASE_SERVICE_ACCOUNT_JSON }}" | base64 -d > fastlane/config/gamss-key.json @@ -79,6 +82,10 @@ jobs: FIREBASE_SERVICE_CREDENTIALS_FILE: ${{ github.workspace }}/fastlane/config/gamss-key.json FIREBASE_APP_ID: ${{ secrets.FIREBASE_APP_ID }} FIREBASE_TESTER_GROUPS: inner-tester + RELEASE_KEYSTORE_PATH: ${{ github.workspace }}/keystore/release.jks + RELEASE_KEYSTORE_PASSWORD: ${{ secrets.RELEASE_KEYSTORE_PASSWORD }} + RELEASE_KEY_ALIAS: ${{ secrets.RELEASE_KEY_ALIAS }} + RELEASE_KEY_PASSWORD: ${{ secrets.RELEASE_KEY_PASSWORD }} run: bundle exec fastlane android distribute - name: Upload reports diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 3fcf9b2e..bea09205 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -86,7 +86,12 @@ android { initWith(getByName("release")) isDebuggable = true versionNameSuffix = "-internal" - signingConfig = signingConfigs.getByName("debug") + // CI 러너의 debug 키는 빌드마다 SHA-1 이 달라 구글 로그인 OAuth 클라이언트로 등록할 수 없다. + signingConfig = if (hasCompleteReleaseSigningConfig) { + signingConfigs.getByName("release") + } else { + signingConfigs.getByName("debug") + } matchingFallbacks += listOf("release") } }