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에 인증서를 요청하기 위한 파일입니다. 키체인 접근을 사용하여 만듭니다.
- 키체인 접근 열기 (Spotlight에서 "키체인" 검색)
- 메뉴 바에서
키체인 접근→인증서 지원→인증 기관에서 인증서 요청...클릭

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

- "계속"을 클릭하고 CSR 파일(
.certSigningRequest)을 원하는 위치에 저장합니다.
Step 2 — Apple Developer Portal에서 인증서 새로 만들기
Apple Developer 웹사이트에 접속하여 인증서를 발급합니다.
접속 URL:
developer.apple.com › Account › Certificates, IDs & Profiles › Certificates
-
우측 상단의
+(추가) 버튼 클릭

-
Software 섹션에서
Apple Distribution을 선택하고 "Continue" 클릭

-
"Upload a Certificate Signing Request" 화면에서 Step 1에서 만든
.certSigningRequest파일을 업로드 -
"Continue" → "Download"를 클릭하여 인증서 파일(
.cer)을 다운로드

Step 3 — 인증서를 다운로드하여 키체인에 설치
- 다운로드한
distribution.cer을 더블 클릭 - "키체인에 추가하겠습니까?" 다이얼로그가 나타나면 "추가" 클릭
- 키체인 접근을 열고 로그인 키체인의 "인증서" 카테고리를 확인
Apple Distribution: [Your Name/Team] (XXXXXXXXXX)이 표시되면 성공
인증서 왼쪽의 ▶ 확장 버튼을 눌러 개인 키(🔑)가 표시되는지 확인하세요. 개인 키가 보이지 않으면 CSR을 생성한 Mac이 다르거나, 현재 Mac의 키체인에 개인 키가 없는 것입니다.
Step 4 — Xcode에서 인증서가 인식되는지 확인
확인 위치:
Xcode › Settings... › Accounts › Manage Certificates...
- 대상 Apple ID를 선택하고 "Manage Certificates..." 클릭
- 목록에
Apple Distribution항목이 표시되는지 확인 - 프로젝트의 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년입니다. 만료된 경우 동일한 절차로 새 인증서를 재발급하세요.
- 새 Apple Distribution 인증서 생성
- 필요에 따라 Distribution 프로비저닝 프로파일 재생성
- Xcode 또는 CI/CD에서 사용 중인 인증서·프로파일 업데이트
- 팀에서 공유 중이라면 새
.p12를 필요한 Mac에 재배포
🔴 "Maximum number of certificates generated" 오류
Apple Developer Program에서는 Distribution 인증서를 최대 3개까지 발급할 수 있습니다. 불필요한 인증서를 삭제한 후 재생성하세요.
정리
- 키체인 접근에서 CSR(
.certSigningRequest)을 생성 - developer.apple.com에서
Apple Distribution인증서를 신규 생성하고 CSR 업로드 - 다운로드한
.cer을 더블 클릭하여 키체인에 설치 - Xcode의 Accounts 설정에서 인증서가 인식되는지 확인
인증서 관리는 처음에는 복잡하게 느껴질 수 있지만, 한 번 절차에 익숙해지면 수월하게 진행할 수 있습니다. 팀 개발 시에는 .p12의 안전한 공유 방법이나 Fastlane Match 등을 이용한 자동화도 검토해 보세요.
참고 링크 (Apple 공식)
- Certificates – Apple Developer: 인증서 생성 및 관리 페이지
- Choosing a Membership – Apple Developer: 무료 계정과 Developer Program의 차이
- What is app signing? – Xcode Help: 인증서 종류 및 개요
- Signing & Capabilities workflow – Xcode Help: 자동 서명의 작동 방식
- Create, export, and delete signing certificates – Xcode Help: Xcode에서의 인증서 작업
- Distribute your app – Apple Developer: 앱 배포 공식 가이드
- TestFlight – Apple Developer: TestFlight 베타 배포 공식 가이드
