[Xcode] 개발용 인증서를 만들고 실제 기기에서 테스트 해보기
안드로이드 개발해본 사람은 알겠지만 안드로이드 네이티브는 실제 기기를 통해 테스트하며 디버깅하는 과정이 매우 간단함
그냥 컴퓨터에 폰을 연결하면 끝 👍
안드로이드 스튜디오가 알아서 기기를 인식하기 때문에 코드를 바로 해당 기기에서 실행할 수 있음
그런데 ios는 안드로이드처럼 그냥 컴퓨터에 기기 연결해서 바로바로 디버깅을 할 수 없음
“아니 고작 디버깅 하나 하겠다는데 이렇게까지 까다로워야 하나?”
싶겠지만… 일단 애플은 개발 중인 앱이더라도 이 앱의 안전성이 증명된 후 인증된 기기에서만 실행이 가능하다는 것만 염두에 두고 시작해보자!
‼️ 이 글은 애플 개발자 사이트에서 앱 번들 ID가 추가되었음을 가정하고 작성됨
1️⃣ 필요한 준비물
1. CSR
- 애플에서 발급해주는 개발자 인증서
- 인증서를 발급받기 위해 필요한 일종의 자격 증명
📌 참고: 이 파일을 통해 인증서를 만들어 keychain access에 저장하게 되면 공개키 - 개인 키 쌍이 자동으로 생성되는데 이 개인키는 개발하는 개발자들끼리 공유하여 사용하게 됨 (개인 키가 없으면 인증서 사용 불가)
2. 인증서
- 내가 만드는 앱의 안전성과 신뢰성이 보장됨을 증명하는 애플로부터 받는 인증서
- CSR을 통해 만들 수 있음
이 단계에서 “음? 그럼 이제 앱이 빌드되겠지?” 라고 생각하면 오산이고요
아까 안드로이드는 아무 기기나 컴퓨터에 연결해서 바로 디버깅을 해볼 수 있다 했으니 iOS는 뭔가 다르겠죠?
바로 앱을 실행할 수 있는 기기 정보에 대한 파일이 따로 필요함
3. 프로비져닝 프로파일
- 개발 중인 앱이 실행될 수 있는 기기에 대한 정보(+α)가 들어있음
- 개발용으로 코드를 디버깅 할 때 인증된 기기만 앱을 실행시킬 수 있기 때문
ios 앱을 개발하는 데 있어서 필요한 인증서는 2가지!
- 개발용 인증서: 개발 시 실제 기기에서 디버깅 할 때 필요
- 배포용 인증서: 앱스토어에 앱을 배포할 때 필요
배포용 인증서에 관해서는 Archive와 함께 따로 정리할 거라 오늘은 일단 개발용 인증서로 코드를 빌드하고 실제 기기에서 테스트할 수 있도록 하는 것이 목표임!!!
2️⃣ Automatically manage signing이란?
Xcode에서 앱 서명은 signing & capability
탭에서 관리하는데, 이 탭에서 Automatically manage signing
체크 옵션부터 확인해보자.
이 옵션을 활성화하면 위에 언급한 인증서와 프로파일을 Xcode가 자동으로 생성해준다.
“편리하고 좋은데 그냥 인증서 같은 거 만들지 말고 이 옵션을 적극 활용하면 안될까요?”
여러번 언급했지만 실제 기기에서 테스트해보고 싶으면 이 체크 옵션을 무조건 해제하고 따로 인증서를 꼭 만들어줘야 함
안 그러면 에뮬레이터에서만 돌아감… 😇
3️⃣ 개발용 인증서 만들기
✋ 애플 개발자 계정 만드는 과정은 생략
1. CSR 파일 만들기
Keychain Access
→Certificate Assistant
→Request a Certificate From a Certificate Authority
-
이메일과 이름을 적고
Saved to disk
와Let me specify key pair information
옵션을 체크 활성화한 뒤continue
- CSR 파일 저장된 것 확인
.CertificateSigningRequest
2. 인증서 만들기
2가지 방법을 통해 만들 수 있는데, 개인적으로는 Xcode에서 연동된 계정을 통해 만드는 게 가장 확실한 방법 같다.
모두 정리해놓을 거긴 하지만 그냥 xcode에서 만드는 것이 정신건강에 이롭다👍
1) xcode에서 인증서 만들기
Xcode
→Accounts
→ 애플 개발자 계정으로 로그인
- 좌측 하단
+
버튼 →Apple Development
클릭
- 애플 개발자 계정 →
Certificates, Identifiers & Profiles
에 새 인증서가 추가된 것을 확인
2) 애플 개발자 사이트에서 인증서 만들기
- 애플 개발자 계정 →
Certificates, Identifiers & Profiles
→+
버튼 클릭 Software
→Apple Development
체크한 뒤 필요한 서비스 체크 →continue
- 만약 앱에 푸쉬 알림 기능이 있다면
Apple Push Notification service SSL (Sandbox)
체크하여 진행: 일단 코드를 기기에서 빌드하는 게 목적이라면 Services는 체크하지 않고 넘어가도 됨!
- 만약 앱에 푸쉬 알림 기능이 있다면
- 앞에서 만든 CSR 파일을 첨부한 뒤
continue
- 인증서를 다운로드 받은 뒤
더블 클릭
하면Keychain access
에 새로운 인증서가 추가된 것을 확인할 수 있음!- 공개키 + 개인키 한 쌍이 존재해야 하고 하단 개인 키가 없으면 인증서 사용 불가
3. 프로비져닝 프로파일 설정하기
먼저 애플 개발자 사이트에 기기 등록부터 해야됨
애플 개발자 사이트에서 Devices
탭에 들어간 뒤 +
버튼 눌러 UDID를 추가
📌 UDID(unique device identifier): 애플 기기에 할당되는 유일한 24글자의 문자열
✋ 기기 등록 수가 제한되어 있는 애플 개발자 서비스를 사용하는 경우 기기 추가 시 24 ~ 72시간이 소요될 수 있음
1) 이미 개발용 프로파일이 생성되어 있는 경우
Profiles
접속하여 만들어 놓은 프로파일 클릭 →Edit
→Devices
에서 추가한 기기를 체크 활성화
2) 새로 프로파일을 만들어야 하는 경우
Profiles
접속 →+
버튼 →iOS App Development
체크 →continue
- 만든 앱의 번들 id를 선택한 뒤
continue
- 만들었던 인증서를 선택한 뒤
continue
- 해당 앱을 실행하고 싶은 기기를 모두 선택한 뒤
continue
- 프로파일 이름을 설정한 뒤
generate
- 만든 프로파일을 다운로드 받은 뒤 Xcode의
signing & capability
에서Import Profile
→ 다운로드 받은 프로파일을 선택하면 세팅 끝!
✋ 개발용 프로파일의 경우 테스트하고 싶은 기기가 새로 추가될 때마다 프로파일을 수정하여 다운로드 받은 뒤 다시 Xcode에서 import 해야함 (왜 이렇게 불편하게 만들었는지 모르겠다)
여기까지 따라왔다면 Xcode의 signing & capability
→ Debug
탭에서 헤맬 일은 없을 것 같다!
당장 iOS 앱을 실제 기기에서 실행해보고 싶은데 인증서 때문에 어려움을 겪었던 분들께 도움이 되는 글이었기를 바라며…
현재 진행하고 있는 프로젝트의 앱을 배포해야되는 시점에 배포용 인증서와 관련해 글을 또 써보려고 하니 기대해주세용
잘못된 정보가 있다면 언제든지 피드백 부탁드립니다:)
Leave a comment