인증서를 발급받는 과정은 저번 포스팅에서 다뤘으니 이번엔 인증서들의 역할들을 살펴보겠다.
인증서란?
애플에서 나를 개발자로 인정함.
애플에서 인증서를 발급받기 위해선 키체인에서 CSR을 얻어야한다.
CSR은 Certificate Signing Request인데,
말그대로 인증서 요청을 받기 위해 개발자의 정보를 담아둔 파일이라고 생각하면 된다.
애플에서 발급 하는 인증서의 종류는 여러가지가 있지만, 여기에서 배포하기 위해 사용하는 것은 iOS Distribution (App Store and Ad Hoc)이다.
배포이전에 앱을 run 혹은 archive를 할때 엑스코드에서 자동적으로 발생하는 일들을 알아보자
인증서 종류 중에 iOS App Development같은 경우는 앱을 빌드할때 필요하다. 이건 automatically manage signing을 항상 체크해놨기에 엑스코드가 알아서 profile, app ID, certificate를 생성 및 업데이트를 하고 있었기 때문에 해당 인증서가 필요하다고 인지하지 못한 것 이다.
automatically manage signing을 체크하지 않는다면 수동으로 CSR을 발급받고, 그걸 토대로 iOS App Development인증서를 발급받은 후, 키체인을 통해 서명 인증서를 만들어야 할 것이다.
이 과정을 수행한다고 앱을 기기에 실행시킬 수는 없다. 다음 과정으로 Provisioning Profile을 생성하는 과정이 필요하다.
디바이스에서 앱을 실행하기 전에 실행하기에 적합한지 규칙을 모아둔 박스이다.
앱 아이디, 인증성, 유효기간 .. 등등 의 정보들을 담고 있다.
그래서 Provisioning Profile을 생성할 때, 만약 앱에서 애플 로그인 기능이 필요하다면 apple Login 기능을 활성화 해주어야한다.
우선 기본적으로 certification과 마찬가지로 iOS App Development가 기본적으로 필요하다. App ID와 Certificate 등을 입력해서 앱의 정보들을 담아 생성한다.
1년의 유효기간을 가지며 푸쉬 알림, 권한 등 앱에서 사용하는 기능과 관련된 부분도 포함하고 있다.
automatically manage signing 체크해제한다면 다음과 같이 Provisioning Profile을 입력하는 부분이 나오게 된다. 여기에 방금 만들었던 iOS App Development Provisioning Profile을 적용시켜주면 된다. 이렇게 되면 앱이 정상적으로 Run된다.
근데 여기서 이상한 부분은 처음에 만들었던 서명인증서를 따로 입력하지 않았다는 것이다.
이 부분은 Provisioning Profile이 내부의 인증서를 통해 서명인증서를 추론하기 때문이다.
여기까지가 automatically manage signing을 체크했을때 엑스코드에서 자동으로 담당하던 부분이다.
여기서부턴 이제 Distribution에 관한 것인데,
전 포스팅에서 다룬 것처럼 배포용 certification과 배포용 Provisioning Profile을 생성해주어야한다.
위에서 했던 과정을 Distribution으로 변경해주고 그대로 진행해주면 re-sign된다. 배포 인증서의 유효기간은 3년이다. 주기마다 갱신 및 관리 해줄 필요가 있다.
그 과정이 전 포스팅에서 다뤘던 부분이다.
그리고 Distribution에도 3가지 종류가 있는데,
Ad Hoc, In-House, AppStore가 있다.
개발자 웹 사이트에서 등록된 디바이스에 한해 직접 앱을 설치할 수 있다. 단, 등록 가능한 디바이스의 수는 연간 100대이고,
회사 내부 직원에게만 사용가능하게끔 하며, 실행 가능한 기기를 지정해 놓지 않기 때문에, In-House 를 사용하여 배포하는 앱은 반드시 직원들에게만 전달되어야한다.
앱스토어에 배포하기 위해 사용된다.
이렇게 모든 과정을 완료하면 애플에서 앱스토어에 출시 하기 전에 Provisioning Profile, 서명을 확인하고 Provisioning Profile을 제거한 후, 애플 인증서로 재서명을 한 후 출시되게 된다.