Skip to content

fix: CI API Key 파싱 오류 수정 (invalid curve name)#173

Open
ParkMazorika wants to merge 20 commits into
mainfrom
develop
Open

fix: CI API Key 파싱 오류 수정 (invalid curve name)#173
ParkMazorika wants to merge 20 commits into
mainfrom
develop

Conversation

@ParkMazorika
Copy link
Copy Markdown
Collaborator

@ParkMazorika ParkMazorika commented May 16, 2026

Problem

app_store_connect_api_key에 base64 인코딩된 키를 직접 전달할 때 OpenSSL이 EC 키를 파싱하지 못하는 오류 발생

invalid curve name
💥 app_store_connect_api_key

Solution

CI 환경에서 base64 Secret을 .p8 파일로 디코딩 후 key_filepath로 전달하는 방식으로 변경

Changes

  • fastlane/Fastfile: before_all에서 base64 디코딩 후 /tmp/AuthKey.p8로 저장
  • CI/로컬 환경 분기 처리 (ENV["CI"] 체크)
  • 로컬은 fastlane/api_key.json에서 key content를 직접 읽어 처리

Test plan

  • develop push 후 TestFlight 내부 배포 워크플로우 정상 동작 확인
  • 성공 시 본 PR 머지

🤖 Generated with Claude Code

invalid curve name 오류 수정 - key_content base64 방식 대신
CI에서 .p8 파일 직접 디코딩 후 key_filepath로 전달

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@ParkMazorika ParkMazorika changed the title ci: API Key를 base64 디코딩 후 파일로 저장하는 방식으로 수정 fix: CI API Key 파싱 오류 수정 (invalid curve name) May 16, 2026
@ParkMazorika ParkMazorika requested review from haeun030 and na0k1m May 16, 2026 04:02
@ParkMazorika ParkMazorika self-assigned this May 16, 2026
ParkMazorika and others added 19 commits May 16, 2026 13:07
Homebrew openssl@3으로 PKCS#8 → EC 포맷 변환 후 key_filepath 사용

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Set up Xcode, Cache gems 스텝의 깨진 YAML 구조 수정.
LibreSSL invalid curve name 오류 해결을 위해 Homebrew Ruby@3.1 사용.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Homebrew ruby@3.1/3.3 충돌 해결을 위해 ruby/setup-ruby@v1 복원.
PKCS#8 EC 키를 전통 EC 형식으로 변환하는 명령을 openssl ec에서
openssl pkey -traditional로 교체 (OpenSSL 3.x 호환).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
CFPropertyList 3.0.9이 ruby < 3.2만 지원하므로 3.3 → 3.1로 변경.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
파일 기반 키 변환(openssl pkey -traditional) 실패 문제 해결.
Fastlane의 key_content + is_key_content_base64: true 옵션으로
파일 없이 환경변수에서 직접 키 파싱.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
ruby/setup-ruby Ruby 3.1이 LibreSSL에 링크되어 PKCS#8 파싱 불가.
Python cryptography 라이브러리로 전통 EC 형식으로 변환 후
key_filepath로 전달하여 LibreSSL 호환성 문제 우회.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
시크릿이 base64로 재등록됐으므로 base64 --decode 후
openssl pkey -traditional로 전통 EC 형식 변환.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
DEVELOPMENT_TEAM, CODE_SIGN_STYLE, export_options 추가로
CI 환경에서 match 인증서를 올바르게 사용하도록 수정.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
match 프로파일에 Sign In with Apple 포함 안 되는 문제 우회.
Xcode가 API 키로 직접 프로파일을 다운로드하여 entitlements 불일치 해결.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
altool은 traditional EC 형식을 거부하므로 원본 PKCS#8 키(/tmp/AuthKey_raw.p8)를
직접 사용하는 xcrun altool --upload-app으로 교체

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
altool은 --apiKeyPath를 디렉터리로 인식하고 AuthKey_<keyID>.p8 파일을 탐색함.
워크플로우에서 올바른 이름으로 ~/.appstoreconnect/private_keys/에 복사하도록 수정

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Info.plist에 CFBundleVersion이 없어서 xcargs로 전달한 BUILD_NUMBER가
반영되지 않았음. $(CURRENT_PROJECT_VERSION)으로 연결하여 매 빌드마다
고유한 빌드 번호가 설정되도록 수정

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant