fix: CI API Key 파싱 오류 수정 (invalid curve name)#173
Open
ParkMazorika wants to merge 20 commits into
Open
Conversation
invalid curve name 오류 수정 - key_content base64 방식 대신 CI에서 .p8 파일 직접 디코딩 후 key_filepath로 전달 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1 task
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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
app_store_connect_api_key에 base64 인코딩된 키를 직접 전달할 때 OpenSSL이 EC 키를 파싱하지 못하는 오류 발생Solution
CI 환경에서 base64 Secret을
.p8파일로 디코딩 후key_filepath로 전달하는 방식으로 변경Changes
fastlane/Fastfile:before_all에서 base64 디코딩 후/tmp/AuthKey.p8로 저장ENV["CI"]체크)fastlane/api_key.json에서 key content를 직접 읽어 처리Test plan
developpush 후 TestFlight 내부 배포 워크플로우 정상 동작 확인🤖 Generated with Claude Code