오랜만에 애플을 개발할 일이 있어, 애플 계정을 사용하게 되었는데 한글로 잘 번역이 되어 있어 매우 놀랐습니다. 뭐 사용법을 모두 아는 터라, 필요는 없었지만, 미처 알지 못한 부분에 대해서 확인을 할 수 있어 유익했습니다.

원래 이 글을 남기기전, 영어 문서로 되어 잇을 것 같아 디테일하게 글을 쓰려고 했지만, 문서가 한글로되어 있어서, 그냥 개요정도만을 표시할 것 같습니다.

맥의 설명서를 보려면, 애플 개발자 프로그램을 활성한 유료 개발자만 가능합니다.

 

1. Developer ID 인증서 생성하기.

앱을 개발할수 있는 개발 ID를 생성하는 과정이며, 자신의 맥에서 생성한, CSR 파일을 애플 개발자 사이트에 등록함으로써 생성합니다. 즉 등록한 기기에서만 앱을 개발할 수 있습니다.

 

1) 키체인 접근에서 CSR (Certificate Singing Rquest) 을 생성하기.

하단 독에서 라운처 패드를 열어 줍니다.

기타 아이콘들이 들어 있는 폴더를 선택해 줍니다.

그리고 호출 된 창에서, 케체인을 선택합니다.

키체인 창이 뜨면, 상단 드롭다운 메뉴에서, 키체인 접근 > 인증서 지원 > 인증 기관에서 인증서 요청을 선택합니다.

인증 지원 창이 뜨면, 먼저 디스크에 저장됨을 선택하고, 사용자 이메일 주소일반 이름을 입력하고 계속을 눌러 줍니다.

그러면, 파일 저장위치가 선택되고 CSR 파일이 만들어지게 됩니다.

 

2) CSR 업로드.

애플 개발자 사이트 ( Developer.apple.com)에서, Account로 들어와 왼쪽 메뉴에서 [Certificates, IDs & Profiles] 를 선택해 줍니다.

화면이 바뀌면, Development항목을 선택하고, 오른쪽 화면 상단의 + 버튼을 눌러 줍니다.

어떤 인증서 타입이 필요하냐고 묻는 창이 뜨면, iOS App Development를 선택하고 스크롤를 쭉 내려, 

CSR 생성 화면 입니다. 우리는 이미 앞서 생성했으므로, 컨티뉴를 선택해 다음으로 넘어 갑니다.

다음 창이 뜨면, CSR 파일(앞서 생성했던)을 업로드하고, 다음 버튼이 활성화 되면, 눌러 다음으로 넘어 갑니다.

그러면 아래와 같이 개발 인증서가 완성됩니다. 언제든지 다운로드 받을 수 있습니다. 다운로드를 눌러 파일을 다운로드 하도록 합니다.

아래와 같이 인증서가 다운로드 되었을 것 입니다. (파일 이름은 적당히 바꿔도 됩니다.). 이 것을 더블 클릭해 키체인에 등록해야 합니다.

 

2. 앱 아이디 등록.

앱 아이디는 어떤 앱을 자신이 만들것인지 등록하는 과정입니다. 모든 앱은 기기에 테스트하거나, 애플스토어에 등록하거나 할 때, 이 아이디가 필요합니다. 앱 아이디는 2종류가 있습니다. 명시적인 앱아이디와 와일드 카드 앱 아이디가 있습니다. 와일드 카드는 테스트등 앱의 번들 아이디가 수시로 바뀌는 환경에서 좋습니다. 명시적인 앱 아이디는 앱을 배포할 때 사용하는 것이 좋습니다.

1) 앱아이디 항목 선택.

왼쪽 메뉴에서 App IDs를 선택하고, 오른쪽 상단의 + 버튼을 눌러 줍니다.

 

2) 앱 아이디 등록.

App ID Description 은 앱에 대한 설명인데, 우리가 인식하기 좋은 값들을 넣어 줍니다.

App ID Suffix 항목에서는 명시적 아이디( Explicit App ID )를 선택하고 번들 아이디를 넣어 줍니다. 우리가 앞으로 생성할 프로젝트의 번들 아이디와 일치해야 합니다.

App Service  항목은 이 앱이 사용할 서비스를 선택할 수 있습니다. 당연한 이야기지만, 여기서 선택하지 않은 서비스는 앱에서구현할 수 없습니다. Game Center와 In-App Purchase는 이미 자동으로 선택이되어 있습니다. 여기서 푸쉬 정도만 추가로 선택하고, Continue를 눌러 다음으로 넘어 갑니다.

 

3) 앱 아이디 확인 및 등록.

그럼 아래와 같이 입력 사항을 확인하는 창이 듭니다. 별 이상이 없다면, 아래 Register 버튼을 눌러 줍니다.

그럼 앱 아이디 등록이 완료 됩니다.

 

3. 장치 등록.

위에서 앱 등록하는 과정이 어떤 앱을 만들것인지 등록하는 과정이 였다면, 장치는 어떤 장치에서 사용할것인지를 등록하는 과정입니다. 개발 단계외 출시전 테스트를 위한 애드 훅을 배포할 때는 이 장치 등록이 필요합니다.

 

1) IPHONE UDID 확인하기.

일단 아이튠즈를 실행 합니다. (아이폰을 꽂으면 자동을 실행되었던 것 같은데, 일단 켜두는 것이 좋을 것 같습니다.)

아이폰을 맥에 연결합니다. 그러면, IPhone 정보 연결 허용을 묻는 창이 뜨는 데 계속을 눌러 줍니다. 

그리고 아래 창이 뜨면, 아이폰을 확인(잠겨 있다면, 잠겨 있는 것을 풀어 줍니다.), 이 컴퓨터를 신뢰하시겠습니까? 라는 다이얼로그가 떠 있다면, 신뢰 버튼을 눌러 줍니다. (암호가 있다면, 암호도 눌러 주도록 합니다.).

그럼 아래 이미지와 같이 기기가 추가 되고, 기기를 선택해 줍니다.

그럼 창이 뜨고, 아래 부분을 확인할 수 있을 것 입니다. 일련 번호 부분을 몇 번 누르다 보면,  UDID를 확인할 수 있습니다.

아래와 같이 UDID가 표시되면 마우스 오른쪽 버튼을 눌러 복사하기를 선택하기를 눌러 주면, UDID가 복사 상태가 됩니다. 메모장에 붙여 넣거나 해 둡니다.

 

2) 장치 추가

아래와 같이 Devices > All을 선택하고, 나타난 화면 오른쪽 상단의  +. 버튼을 눌러 줍니다.

장치 정보를 입력하는 창이 뜨면, 이름에 작당한 값을 넣고, UDID는 조금전 확인했던 값을 넣어 주도록 합니다. 그리고, 다음 버튼을 눌러 줍니다.

마지막으로 장치를 검토 및 등록 창이 나오면, 문제가 없다면, 등록 버튼을 눌러 등록을 완료해 주도록 합니다.

 

4. 개발용 프로비전닝 프로파일 만들기.

마지막으로 개발용 프로비저닝 프로파일을 만들어 줍니다. 이 파일을 이용해 앱을 사인해 실제 기기에서 앱을 실행해 볼수 있습니다. 개발용 프로비저닝 프로파일을 선택해 창이 뜨면, + 버튼을 눌러 생성 페이지를 불러 주도록 합니다.

여기서 우리는 iOS용을 만들것 이므로, iOS App Development를 선택해 주도록 합니다. 당연한 이야기지만, 배포할 때는 Distbution 섹션의 App Store 를 선택하면 됩니다.

앱 아이디를 선택하는 창이 뜨면, 앞서 만들었던 앱 아이디를 선택해 주면됩니다.

앞서 만들었던 개발 인증서를 선택해 줍니다. 여러개 선택해도 되지만 우리는 하나만 만들었으므로, 하나만 표시됩니다. (이 인증서가 등록된 기기에서만 이 프로비저닝 프로파일을 이용해 사인을 할 수 있습니다.).

기기 등록창이 나타나면, 앞서 등록했던 기기를 선택해 주면 됩니다. (여러개 선택해 줄 수 있습니다.).

마지막으로 프로 비저닝 파일의 이름을 입력해 주는 창입니다. 적당히 입력하고 컨티뉴를 선택해 줍니다.

그럼 프로비저닝 프로파일이 생성완료되고, 다운로드 와 설치를 하면됩니다.

 

5. Push Notification 인증서 만들기. (옵션).

1) 인증서 생성.

이 작업은 하지 않아도 앱을 생성하거나 하는데 문제는 없습니다. 하지만, Push Notification은 거의 모든 앱에 사용되는 기능이 므로, 꼭 만들어 두기 바랍니다. 

인증서 관리 페이지에서, 좌측메뉴 개발자 인증서를 선택하고, + 버튼을 눌러, 인증서를 추가하도록 합니다. (여기서는 개발용으로 만들지만, 푸쉬는 Production으로 만들어도, 개발과 배포에서 모두 사용이 가능합니다.)

개발용 Push Notification 파일을 선택하고, Continue 버튼을 눌러 주도록 합니다.

앱 선택 페이지에서 적당한 앱을 선택하도록 합니다.

다음 CSR File 업로드 설명 페이지가 나오는 데, 앞서 개발 인증서를 만들 때 사용하였으므로, 그 파일을 이용할 것 이므로, 그냥 Continue를 눌러 다음으로 넘어 갑니다.

CSR File 에서 파일을 앞서 만들었던 CSR File을 선택하고 Continue 파일을 눌러 주도록 합니다.

다운로드 페이지가 나오면, 인증서를 다운로드하고, 다운로드된 파일을 적당한 이름으로 바꿔 줍니다.

다운로드된 인증서를 더블 클릭하면, 인증서가 등록되는 데 다음과 같은 창이 뜰 것 입니다. 키체인을 로그인 으로 두고 추가 버튼을 눌러 줍니다.

 

2) APNs 파일 생성

등록했던 인증서에서 인증서와 키의 파일을 빼내는 작업이 필요합니다.

먼저, APs 인증서를 내보내기 해 p12 파일을 만들어 주도록 합니다. 키 인증서를 열고 키체인은 로그인, 카테고리는 인증서를 각각 선택해 줍니다.

개발용 푸쉬 인증서를 마우스 오른쪽 버튼으로 선택해 나온 메뉴에서, 내보내기를 선택합니다.

저장 창이 뜨면 적당한 이름을 입력하고 저장을 눌러 주도록 합니다.

그리고 다음 암호 입력창이 뜨는데, 적당한 값으로 입력합니다. 확인을 누르면, 맥 암호를 물을 텐데 입력 하면, 인증서에 대한 p12 파일이 만들이 집니다.

이 번에는 인증서의 키를 내 보내 도록 하겠습니다. (키 입니다. 인증서를 한 번더 선택하지 않도록 합니다.). APs 인증서의 앞쪽의 삼각형 눌러 키가 나열 되도록 합니다.

키가 나열 되면, 앞서 했던 작업과 같이 키를 마우스 오른쪽 버튼으로 선택하고 내보내기를 선택 합니다.

입력 창이 뜨면 적당한 파일 이름을 선택하고 저장 버튼을 눌러 주도록 합니다.

패스워드를 입력하고, 확인 버튼을 눌러 줍니다. 그리고 나온 맥 암호 입력 창에 암호를 입력하면, 키에 대한 p12 파일이 만들어 집니다.

자 이렇게 2개의 인증서가 만들어 지면 성공 입니다.

터미널을 열고 인증서를 pem 파일로 만들어 줍니다. (패스워드를 입력하라고 하는데, 내보내기 할 때 입력했던 패스워드를 입력해 주면됩니다.), 틀려도 파일은 생성되었지만, 과연 사용할 수 있을 런지는 모르겠습니다.

openssl pkcs12 -clcerts -nokeys -out [생성될 파일명] -in [p12 확장자 파일명]

저는 아래와 같이 입력했습니다.

openssl pkcs12 -clcerts -nokeys -out yeslife_ap_cer.pem -in yeslife_ap_cer.p12

 

이번에는 키를 pem 파일로 만들겠지만, 명령이 약간 틀립니다. 주의해서 입력해 주세요.

openssl pkcs12 -nocerts -out [생성될 파일명] -in [p12 파일]

저는 아래와 같이 입력했습니다. 그리고, 내보내기 할 때, 입력했던, 비밀 번호를 입력하면, Pem 패스워드를 새로 만들어 줍니다.

openssl pkcs12 -clcerts -out yeslife_ap_key.pem -in yeslife_ap_key.p12

 

이번에는 만들어진 key의 파일을 암호를 해재 해 줍니다. key의 pem 파일을 만들며 새로 입력한 패스워드를 입력해 주도록 합니다.

openssl rsa -in [키의 pem 파일] -out [새로 만들어질 암호가 해재된 pem 파일]

저는 아래와 같이 입력했습니다.

openssl rsa -in yeslife_ap_key.pem -out yeslife_ap_key.unencrypted.pem

 

이제 인증서의 pem 파일과 암호가 해제된 키 파일을 하나로 연결해 APNs에서 사용하는 인증서를 만들어 주도록 합니다.

cat [푸쉬 인증서 pem 파일] [압호가 해제된 푸쉬 키 pem 파일] > [만들어질 파일명]

저는 아래와 같이 입력했습니다.

cat yeslife_ap_cer.pem yeslife_ap_key.unencrypted.pem > yeslife_apns.pem

 

 

6. xcode를 통해 앱 생성하기.

프로젝트를 생성할 때 아래와 같이, Bundle Identifier 를 등록했던 앱 아이디와 맞춰 줍니다.

프로젝트가 생성되면, 스토리 보드에서 다음과 같이, HELLO를 입력합니다. (원한다면, 이 상황에서 시뮬레이터를 통해 앱을 실행해 봐도 상관이 없습니다.)

아이폰을 맥에 꽂아 줍니다. 그리고 빌드 타겟을 실제 기기로 선택해 줍니다.

그리고, 프로젝트를 선택해 빌드 셋팅 탭을 눌러 메뉴들이 표시되게 합니다.

그리고, 디버그 사이닝을 Manual로 바꿔 줍니다.

그리고 제너럴 탭으로 가, Provisioning Profile을 Import로 두고, 앞서 만들고 다운 받았던, Provisioning 파일을 선택합니다.

그리고, Singing Cervificate 가 None으로 되어 있을 수 있는데, 앞서 생성한 개발 인증서가 등록되지 않아서 일 수 있습니다. 앞서 다운로드 받았던 인증서를 더블 클릭해 주도록 합니다. (문제가 없다면, 넘어 가면됩니다.).

그리고, 런 버튼을 눌러 주면, 장치에서 잘 실행됩니다.

마약 로그인 암호를 계속 묻는 다면, 화면 상단의 풀다운 메뉴에서 Xcode > Preference 에 Account에 계정을 들록하지 않아서 일수 있습니다. 인증서 생성시 입력했던 이메일을 입력해 주세요.

그리고, 앱 Failed with exit code 1 오류가 계속 난다면, 키체인의 인증서를 두번 눌러 뜬창에서, 인증서를 눌러, 신뢰를 표시한뒤, 모두 항상 신뢰를 눌러 줍니다.

 

이렇게 하고 키체인에서, 상단 풀다운 메뉴의 파일 > 모든 키체인 잠금을 해야 패스워드를 다시 물어 본다.

그리고, 이번에는, 패스워드를 물어 볼때, 첫 번째는 입력하고 확인, 두번째 패스워드 뜰때는 항상 허용을 눌러 주도록 하자.

 

>> 트러블 슈팅 1. 기기가 잠겨 있는 동안에는 개발을 사용할 수 없습니다.

맥에 아이폰을 연결할 때, 뭔가를 하고 있어서, 신뢰 버튼을 눌러주지 못한 경우, 발생. 아이폰의 설정 > 일반 > 재설정 > 위치 및 개인 정보 보호 재설정을 누른 뒤 다시 선을 뺐다ㅗ 꽂으면, 신뢰하시겠습니까? 라고 뜨고, 신뢰를 누르면 된다.
https://babysunmoon.tistory.com/entry/Xcode-빌드-오류-Development-cannot-be-enabled-while-your-device-is-locked (설명)

 

 

 

 

 

'iOS' 카테고리의 다른 글

iOS Firebase Push 사용하기  (3) 2019.04.26
iOS in-app purchase  (7) 2019.04.14
Push Notification (iOS, client)  (0) 2019.04.13
웹 뷰 추가 및 웹통신 (UIWebView 이용)  (1) 2019.04.05
Posted by 창업닉군
,