khstar
iOS 앱 개발을 위한 인증서 생성 및 관리 본문
어제 열심히 글을 최종 완료를 안하고 잠을 잤는데 임시 저장을 하고 있다고 생각했는데. 그냥 다 지워져서 다시 씁니다. ㅜㅜ
우선 정상적인 앱 개발을 위해서는 애플 개발자 프로그램을 구매 해야합니다.
구매하지 않고도 앱을 개발할 수 있는 방법이 있지만 기능적 제약 사항이 많고 인증서 생성 및 AppID 생성등에 대한 전반적인 설명을 할 예정이라
개발자 프로그램이 있다는 전제하에 진행할 예정입니다.
애플의 개발자 자격은 아래와 같습니다.
일반 : 개인 개발자 계정입니다. 연 99달러 비용이 필요하고 개인 개발자 계정이라 팀 관리 기능을 지원하지 않습니다.
조직 : 사업자 등록이 되어있는 기업형 계정입니다. 연 99달러의 비용이 필요하고 팀 관리 기능을 지원 합니다.
엔터프라이즈 : 사업자 등록이 되어있는 기업형 계정입니다. 연 299 달러의 비용이 필요합니다.
조직 계정과 다른 점은 AppStore 배포를 할 수 없습니다. 그러나 MDM 프로토콜 사용 및 InHouse 배포 기능이 있습니다.
애플 개발자 프로그램의 종류에 대한 자세한 사항은 공식 애플 홈페이지를 참조하세요.
애플 개발자 멤버쉽 종류 : https://developer.apple.com/support/compare-memberships/kr/
인증서 관련 개념적 설명이 잘되어 있는 글이 있어 링크를 퍼왔습니다. : http://la-stranger.blogspot.kr/2014/04/ios.html
- 인증서 생성
- 우선 인증서 생성을 위한 CSR파일을 만들어야합니다. 응용프로그램 -> 기타 -> 키체인 접근을 선택합니다.
그러면 상단 툴바 메뉴에서 키체인 접근 -> 인증서 지원 -> 인증 기관에서 인증서 요청을 선택합니다. - 다음과 같은 화면이 생성됩니다. 정보를 입력 해야하는 데요.
사용자 이메일 주소, 일반 이름 항목은 원하시는 정보를 입력하면 됩니다. 애플 개발자 ID에 사용 되는 정보가 아니어도 괜찮습니다.
CA 이메일 주소는 공백으로 두고요. 디스크에 저장됨, 본인이 키 쌍 정보 지정을 체크합니다. - CertificateSigningRequest.certSigningRequest파일을 생성할 위치를 지정합니다. 저는 Document/Cert디렉토리를 만들어 저장하겠습니다.
- 다음으로 키 쌍 정보를 선택하는 데요. 기본 값을 그대로 유지 하면됩니다.
키 크기 : 2048비트
알고리즘 : RSA - CSR파일이 정상적으로 생성되었습니다. 아래 화면에서 Finder에서 보기를 선택하면 CSR파일이 생성된 위치의 Finder가 열립니다.
CertificateSigningRequest.certSigningRequest가 생성된 것을 확인할 수 있습니다.
나중에 APNS 인증서 등을 생성해야 할때 재 사용할 수 있으니 잘 보관해 둡니다. - 이제 인증서를 생성하기 위한 준비가 되었으니 애플 개발자 사이트(https://developer.apple.com)에 들어가 로그인합니다.
- 인증서를 생성하기 위해 Certificates, IDs & Profiles메뉴에 들어갑니다.
- 사이드 메뉴의 Certificates -> All을 선택하고 + 버튼을 선택합니다.
- 생성할 인증서 타입을 선택해야 되는데요.
우선 iOS 개발 인증서를 생성하기 위해 iOS App Development를 선택하고 Continue를 선택해서 계속 진행합니다. - 아래 화면은 1~5번까지의 CSR파일 생성에 대한 설명 페이지 입니다. Continue를 선택하고 계속 진행합니다.
- 이제 생성된 인증서 CSR파일을 업로드 하기 위해 Choose File.. 버튼을 선택합니다.
- CSR파일을 선택합니다.
- 선택한 파일을 확인하고 Continue를 합니다.
- 이제 인증서가 생성되었습니다. Download 버튼을 선택해서 생성된 인증서를 다운로드 합니다.
- 다운로드된 파일을 확인하고 더블클릭 합니다.
- 키체인 접근에서 등록된 인증서를 확인합니다.
- 애플 개발자 센터에도 등록된 인증서를 확인합니다.
기본 개발자 인증서는 생성이 완료되었습니다. - AppStore 배포용 인증서 생성을 위해서 AppStore And Ad Hoc을 생성합니다.
이 인증서는 말 그대로 App 배포를 위한 인증서입니다. - 이제 개발자 인증서와 배포용 인증서가 생성되었습니다.
AppID 생성
AppID는 앱을 개발시에 앱을 구분하는 ID로 생각하시면 됩니다.
AppID는 크게 두 가지로 구분됩니다.
- Explicit App ID : 앱 별로 고유한 이름과 ID를 생성해야 합니다. (ex : com.example.sample)
Push앱을 개발하는 경우 필수입니다. (다른 기능 앱은 잘 모르겠습니다.)
- Wildcard App ID : 하나의 앱 이름, ID로 다수의 앱을 개발할 수 있습니다. (ex : com.example.*)
마지막의 *은 필수 입니다.
사실 이렇게 앱을 생성해서 배포를 해본 경험은 없습니다. ㅡㅡ;
대충 이 정도만 설명하고 자세한건 더 찾아 보시기 바랍니다. ^^
여기서는 Push 기능이 있는 앱을 개발한다. 가정하고 AppID를 생성하겠습니다.
애플 개발자 페이지의 왼쪽 메뉴에서 AppID를 선택하고 + 버튼을 누릅니다.
앱 이름을 설정합니다. 예시로 SamplePush로 입력하겠습니다.
App ID를 입력합니다. 위에서 설명한 도메인의 역순입니다. 여기서의 AppID는 xCode에서의 BundleID에 해당합니다.
스크롤을 조금 내리면 App Services에서 Push Notification를 선택하고 Continue합니다.
Confirm your App ID라는 화면과 함께 생성된 App의 속성 정보들이 보입니다.
Push Notification 앱을 생성하게 되면 인증서를 만들어야 하는데 아직 인증서를 생성하지 않은 Configurable로 노란색 표시가 됩니다.
Regiser 버튼을 누르면 최종적으로 AppID가 생성됩니다.생성된 AppID 입니다. AppID를 선택합니다.
Edit 버튼을 선택합니다.
스크롤을 내리면 Push Notifications 항목이 있습니다.
Development SSL Certificate : 개발용 Push 인증서를 생성하는 버튼입니다.
Production SSL Certificate : AppStore에 배포된 앱에 Push를 보내는데 사용합니다.
Push용 인증서를 만드는 방법은 위의 인증서 생성을 수행하시면 됩니다. CSR은 이미 생성되어 있는 것을 사용하시면 되고요.Development SSL Certificate Push 인증서가 만들어진 키체인 접근 화면입니다.
실제 Push를 보내기 위해서는 추가적인 처리가 필요합니다. 이것은 향후 따로 글을 작성하겠습니다.
Production SSL Certificate은 추가로 만드시면 됩니다.
- DeviceID 등록
xCode에서 앱을 테스트하기 위해 Device(iOS 단말기)에 올릴때(??) 여기 애플 개발자 센터의 DeivceID에 등록된 정보를 Provisioning Profile
에 추가한 단말기에만 앱을 테스트 할 수 있습니다.
iPhone, iPad에 대해서만 설명하겠습니다. 다른 종류는 저도 해본적이 없어서요..;;
- 우선 단말기의 UDID를 알아야 합니다. 저는 xCode, iTunes에서 확인을 합니다.
iTunes를 사용하는 방법은 아실거라 생각하고요.
빨간색 박스로 되어 있는 부분이 UDID를 확인할 수 있는 부분입니다.
혹시 ECID, 일련번호 등 다른 정보가 보이면 빨간색 부분을 클릭하면 정보가 변경됩니다. - xCode에서도 UDID를 확인할 수 있습니다. xCode를 실행하고 상단 메뉴바에서 Window -> Devices and Simulators를 선택합니다.
- xCode에서는 Identifier로 정보가 표시됩니다.
- 이제 애플 개발자 센터에서 왼쪽 메뉴의 Devices -> All을 선택합니다. 그리고 오른쪽 상단의 + 버튼을 누릅니다.
All 말고 직접 디바이스 종류를 선택해도 됩니다. - Name은 원하는 이름을 입력하시면 됩니다. UDID는 iTunes, xCode에서 확인한 정보를 입력하시면 되고요.
Multiple Devices는 저도 안해봐서요.. ^^;
- Provisioning Profiles
이제 프로비저닝 프로파일을 만들어 보겠습니다.
프로비저닝 프로파일은 인증서로 싸인된 App을 AppStore에 배포하거나 테스트 Device에 배포하기 위한 역할을 합니다.
프로비저닝 프로파일은 두 가지로 구분됩니다.
- Development : xCode에서 빌드하여 테스트Deivce에 앱을 배포하기 위한 프로비저닝 프로파일을 생성합니다.
- Distribution : AppStore에 배포를 하기 위한 프로비저닝 프로파일을 생성합니다.
- 왼쪽 메뉴의 Provisioning Profiles의 All을 선택하고 오른쪽 상단의 + 버튼을 선택합니다.
- 생성하고자 하는 프로비저닝 프로파일 유형을 선택해야 합니다.
우선 iOS App Development를 선택하겠습니다. - 프로비저닝 프로파일과 연결되는 AppID를 선택해야 하는 데요. 위의 AppID에서 생성한 SamplePush AppID를 선택합니다.
- 프로비저닝 프로파일과 연결되는 인증서를 선택합니다.
기업형 개발자 프로그램인 경우 멤버 관리를 통해 멤버별 개발 인증서를 생성할 수 있습니다.
이러한 경우 어떤 인증서와 연결해 줄지를 선택해야 합니다.
저는 개인 개발자 인증서로 하나의 개발 인증서만 생성이 가능합니다. - 생성되는 프로비저닝 프로파일로 배포 가능한 DevcieID를 선택합니다.
선택된 DeviceID를 가지는 테스트 Device에서만 앱 배포가 가능합니다. - 프로비저닝 프로파일 이름을 입력합니다. 편의상 AppID 이름과 같은 SamplePush로 하겠습니다.
- 프로비저닝 프로파일 생성이 완료 되었으니 다운로드 합니다.