iOSAppleXcodeApp StoreCode Signing

Apple Distribution 인증서 생성 절차 정리

Sloth255
Sloth255
·2 min read·320 words

App Store에 iOS 앱을 배포하려면 Apple Distribution 인증서가 반드시 필요합니다. 이 인증서는 앱 코드 서명에 사용되며, Apple이 "이 앱은 정식 개발자가 만든 것"임을 검증하는 역할을 합니다.

이 글에서는 Apple Developer Program 대시보드를 사용하여 인증서를 처음부터 만드는 과정을 자세히 설명합니다.


사전 준비

인증서를 생성하기 전에 다음 사항을 확인하세요.

  • Apple Developer Program 가입 완료 (연간 $99 USD)
  • Admin 또는 Account Holder 권한을 가진 Apple ID로 로그인
  • Mac에 Xcode (최신 버전 권장) 설치 완료
  • 키체인 접근 (macOS 기본 앱) 사용 가능

Step 1 — CSR(인증서 서명 요청) 파일 생성

CSR(Certificate Signing Request)은 Apple에 인증서를 요청하기 위한 파일입니다. 키체인 접근을 사용하여 만듭니다.

  1. 키체인 접근 열기 (Spotlight에서 "키체인" 검색)
  2. 메뉴 바에서 키체인 접근인증서 지원인증 기관에서 인증서 요청... 클릭

키체인 접근 인증서 지원 화면

  1. 다음 항목을 입력합니다.

    항목 입력 내용
    사용자 이메일 주소 Apple ID에 등록된 이메일 주소
    일반 이름 알아보기 쉬운 이름 (예: MyApp Distribution)
    CA 이메일 주소 비워 두어도 됨
    요청 처리 "디스크에 저장" 선택

CSR 저장 위치 지정 화면

  1. "계속"을 클릭하고 CSR 파일(.certSigningRequest)을 원하는 위치에 저장합니다.

Step 2 — Apple Developer Portal에서 인증서 새로 만들기

Apple Developer 웹사이트에 접속하여 인증서를 발급합니다.

접속 URL:
developer.apple.com › Account › Certificates, IDs & Profiles › Certificates

  1. 우측 상단의 +(추가) 버튼 클릭
    Apple Developer Certificates 목록 화면

  2. Software 섹션에서 Apple Distribution을 선택하고 "Continue" 클릭
    Apple Distribution 선택 화면

  3. "Upload a Certificate Signing Request" 화면에서 Step 1에서 만든 .certSigningRequest 파일을 업로드

  4. "Continue" → "Download"를 클릭하여 인증서 파일(.cer)을 다운로드
    인증서 파일 다운로드 화면


Step 3 — 인증서를 다운로드하여 키체인에 설치

  1. 다운로드한 distribution.cer더블 클릭
  2. "키체인에 추가하겠습니까?" 다이얼로그가 나타나면 "추가" 클릭
  3. 키체인 접근을 열고 로그인 키체인의 "인증서" 카테고리를 확인
  4. Apple Distribution: [Your Name/Team] (XXXXXXXXXX)이 표시되면 성공

인증서 왼쪽의 ▶ 확장 버튼을 눌러 개인 키(🔑)가 표시되는지 확인하세요. 개인 키가 보이지 않으면 CSR을 생성한 Mac이 다르거나, 현재 Mac의 키체인에 개인 키가 없는 것입니다.


Step 4 — Xcode에서 인증서가 인식되는지 확인

확인 위치:
Xcode › Settings... › Accounts › Manage Certificates...

  1. 대상 Apple ID를 선택하고 "Manage Certificates..." 클릭
  2. 목록에 Apple Distribution 항목이 표시되는지 확인
  3. 프로젝트의 Signing & Capabilities 탭에서 Automatically manage signing을 끄면 Distribution 인증서를 수동으로 선택할 수 있습니다.

인증서와 프로비저닝 프로파일의 관계

Apple의 서명 체계는 다음 세 가지 요소로 구성됩니다.

  • 인증서(Certificate): 앱에 서명한 개발자 또는 팀을 증명
  • App ID: 어떤 앱인지 식별
  • 프로비저닝 프로파일(Provisioning Profile): 어떤 인증서·App ID·기기·기능 조합으로 앱의 실행 또는 배포를 허용할지 정의

간단히 말하면, 인증서는 서명자, App ID는 앱의 식별자, 프로비저닝 프로파일은 이용 조건의 집합입니다. 인증서만 생성해서는 앱을 배포할 수 없으며, 배포 방식에 맞는 프로비저닝 프로파일도 필요합니다.


Apple Development 인증서와의 차이

iOS 개발에서는 목적에 따라 두 종류의 인증서를 구분해서 사용합니다.

항목 Apple Development Apple Distribution
소유자 개인 (인증서 이름에 Mac 이름이 추가됨) 팀 (Account Holder / Admin만 생성 가능)
여러 Mac에서 사용 ✅ 가능 (개인 소유. .p12로 다른 Mac으로 이동) ✅ 가능 (팀 공유 가능. .p12 내보내기로 공유)
용도 실기기 디버깅 및 테스트 App Store / Ad Hoc 배포
TestFlight 배포 ❌ 불가 ✅ 가능
Xcode 서명 Debug 스킴에 사용 Release 스킴에 사용
최대 발급 수 팀당 2개 팀당 3개
유효 기간 1년 1년

개발 중에는 Apple Development 인증서로 빌드·디버깅하고, 릴리스 시 Apple Distribution 인증서로 아카이브·서명하는 것이 일반적인 흐름입니다.


Apple Development 인증서와 개인 계정의 차이

혼동하기 쉬운 것이 Apple Development 인증서와 무료 Apple 계정의 Personal Team입니다. 이 둘은 다른 개념입니다.

  • Apple Development 인증서: Apple Developer Program에 가입한 팀이 사용하는 공식 개발용 인증서
  • Personal Team: Developer Program에 가입하지 않아도 Xcode에서 실기기 테스트가 가능한 개발 워크플로우
항목 Personal Team (무료 계정) Apple Development (Developer Program)
이용 조건 Apple 계정만 있으면 됨 Apple Developer Program 가입 필요
주요 용도 개인 실기기 테스트 팀 개발 / 지속적인 개발 서명
배포 ❌ 불가 ❌ 불가 (개발 전용)
TestFlight / App Store Connect ❌ 불가 ❌ 불가
프로파일 유효 기간 7일 일반적으로 1년
등록 가능한 App ID / 기기 제한 있음 Developer Program 범위 내 사용 가능
고급 기능 / 서비스 제한 있음 더 많은 기능 사용 가능

무료 계정의 Personal Team은 학습·개인 검증용으로 편리합니다. App Store 배포, TestFlight, Ad Hoc 배포, 지속적인 팀 개발이 필요하다면 Apple Developer Program에 가입하여 Apple Development / Apple Distribution 인증서를 사용해야 합니다.


배포 방식별 대응표

배포 방식 인증서 프로비저닝 프로파일 비고
실기기 디버깅 Apple Development Development 등록된 기기에서만 실행 가능
TestFlight Apple Distribution App Store Connect용 Distribution App Store Connect에 업로드 후 배포
App Store 출시 Apple Distribution App Store Connect용 Distribution 심사 통과 후 일반 공개
Ad Hoc 배포 Apple Distribution Ad Hoc UDID 등록된 기기에만 한정
기업 / In-House 배포 Apple Enterprise Distribution In-House Apple Developer Enterprise Program 필요

혼동하기 쉬운 포인트: TestFlight와 App Store 출시 모두 Apple Distribution 인증서를 사용합니다.


자동 서명과 수동 서명의 선택

대부분의 경우 Xcode의 Automatically manage signing을 활성화하는 것을 권장합니다.

다음 경우에는 수동 서명을 검토하세요:

  • 여러 타겟이나 Bundle Identifier를 엄격하게 관리해야 하는 경우
  • CI/CD에서 서명 자산을 명시적으로 관리하고 싶은 경우
  • Fastlane Match 등의 도구로 인증서와 프로파일을 중앙 관리하고 싶은 경우
  • Xcode의 자동 생성 프로파일로는 원하는 대로 제어할 수 없는 경우

자주 발생하는 오류와 대처 방법

🔴 "인증서에 개인 키가 없습니다" 표시

  • 다른 Mac에 .cer을 설치했을 때: 개인 키는 CSR을 생성한 Mac의 키체인에만 존재
  • Mac을 마이그레이션하거나 교체했을 때: 마이그레이션 도우미가 개인 키를 제대로 옮기지 못한 경우
  • 키체인을 초기화하거나 복구했을 때: 키체인이 초기화되면 개인 키가 사라짐
  • Apple Developer 포털에서 .cer을 재다운로드했을 때: CSR을 생성한 Mac이 아닌 다른 Mac에서 다운로드한 경우

모든 경우에 CSR을 생성한 원래 Mac에서 .p12 형식으로 내보내고, 현재 Mac에 가져오세요.

# .p12 내보내기 방법 (키체인 접근)
# 1. 키체인 접근을 열기
# 2. 대상 인증서를 우클릭
#    → "Apple Distribution: ..." 내보내기 선택
# 3. 비밀번호를 설정하고 .p12 파일 저장
# 4. 다른 Mac에서 더블 클릭하여 가져오기

🔴 인증서 만료

Apple Distribution 인증서의 유효 기간은 1년입니다. 만료된 경우 동일한 절차로 새 인증서를 재발급하세요.

  1. 새 Apple Distribution 인증서 생성
  2. 필요에 따라 Distribution 프로비저닝 프로파일 재생성
  3. Xcode 또는 CI/CD에서 사용 중인 인증서·프로파일 업데이트
  4. 팀에서 공유 중이라면 새 .p12를 필요한 Mac에 재배포

🔴 "Maximum number of certificates generated" 오류

Apple Developer Program에서는 Distribution 인증서를 최대 3개까지 발급할 수 있습니다. 불필요한 인증서를 삭제한 후 재생성하세요.


정리

  1. 키체인 접근에서 CSR(.certSigningRequest)을 생성
  2. developer.apple.com에서 Apple Distribution 인증서를 신규 생성하고 CSR 업로드
  3. 다운로드한 .cer을 더블 클릭하여 키체인에 설치
  4. Xcode의 Accounts 설정에서 인증서가 인식되는지 확인

인증서 관리는 처음에는 복잡하게 느껴질 수 있지만, 한 번 절차에 익숙해지면 수월하게 진행할 수 있습니다. 팀 개발 시에는 .p12의 안전한 공유 방법이나 Fastlane Match 등을 이용한 자동화도 검토해 보세요.


참고 링크 (Apple 공식)