티스토리 뷰
머릿말
일단 오늘은 코드 싸인에 대해서 글을 한번 적어 볼까 한다.
개념적으로만 설명을 할것이라서 크게 도움이 안될수도 있으니 이 점은 시작하기 전에 알려드림.
애플은... 솔찍히 깡패다.
자신들이 허용하지 않는 이상 단말에 앱을 만들어서 넣을수가 없다.
안드로이드는 무조건은 아니지만 이것보다는 다소 편리하게 앱을 설치할 수 있긴하다.
난 솔찍히 애플이 하는짓이 맞다고 생각한다. 왜 무작정 설치가 쉽게 만드는게 좋은가...
이 부분은 윈도우에서도 많이 느낀 부분이지만, 이상한 프로그램들 자꾸 설치되는게 정말 싫기 때문이다.
Apple 인증서
애플이 이렇게 사용자가 자기들의 디바이스에서 소프트웨어를 실행하려고 할 경우에, 제어를 하는데 그렇다면 개발자들은 어떻게 폰에 앱을 넣어서 실행을 시킬수 있는가?
그것은 인증서를 만들어서 개발자들이 신뢰할 수 있는 한정된 디바이스에 소프트웨어를 넣을수 있게 권한을 받게 되는것이다.
그렇다면 애플이 인증해준 인증서를 만들어서 사용을 하여야 할 것인데, 이 인증서를 받기 위해서는 CSR ( Certificate Signing Request )를 생성해야 한다.
- 키체인 앱에서 공개키와 개인키를 자동으로 생성한다. ( 생성하는 방법은 이 글에서는 다루지 않는다. ) 주의 할 점은 이 Key는 잃어버리게 되면 조금 곤란한 문제가 발생 할 수 있다.
- 이유는 이 키를 잃어버리게 되면 키체인에서 다시 인증서를 만들기 위한 절차를 해야하는데, 이 인증서를 사용하는 앱들은 모두 한번은 이걸 다 변경하여야 한다.
- 키를 잘 관리하도록 하고 이 키를 이용하여 애플에 보내줄 CSR파일을 생성을 하는데, 이 파일에는 이름, 이메일, 공개키를 포함하고 있으며 개인키를 이용하여 사인이 된다.
이 파일을 애플에 업로드하여 주면, 애플은 확인 절차를 거친이후에 개발 인증서를 발급하여 주게 되는데, 오랜 시간은 걸리는것이 아니라 바로 진행이 된다. 그러면 애플에서는 인증서를 발행하여 주고 이것을 이용하여 우리는 개발을 할 수 있게 된다.
Provisioning Profile
인증서를 가지고 있다면 일단 애플에서 권한을 준것이기 때문에 첫번째 단추는 끼워진것이다.
그렇다고 아주 손쉽게 앱을 넣을수는 없는데, 디바이스의 관점에서는 당신이 만든앱이 신뢰할 수 있는지를 판단하여야 하는데, 이 때 사용되는것이 프로비저닝 파일이다. 쉽게 말을 하자면, 애플에서 발행해준 인증서를 디바이스와 연결을 시켜주는 역할을 한다.
요즘은 xcode에서 팀으로 제어를 해서 자동으로 디바이스를 추가를 하여 주고 하는 부분들이 있는데, 이것이 싫다면 애플 개발자 사이트에서 일일이 등록하여 주면 된다.
이렇게 되면 *.mobileprovision 파일이 만들어 지게 되는데 용도에 따른 ( Develop, Distribution ) 파일을 사용하면 된다.
마무리
일반적인 개발자 계정으로 100개의 디바이스를 관리하는 목적도 마찬가지이지만, 한정된 갯수를 사용하여야 하는 문제가 있다.
이런 부분은 엔터프라이즈 계정을 사용을 하게 되면, 돈은 좀 더 들지만 많은 디바이스에서 사용을 할 수 있도록 서명이 가능하다.
만약 배포를 하게 된다면, 애플은 개발자가 만든 바이너리를 모든 디바이스에서 설치가 될수 있는 서명을 다시 한번 함으로써 모든 사용자가 사용을 할 수 있게 된다.
'Mobile > iOS' 카테고리의 다른 글
[iOS] Cocoa Touch Static Library 만들기 (0) | 2017.10.16 |
---|---|
[iOS/Swift4] KVO 사용하기 (0) | 2017.10.10 |
[iOS/Objective-C] NSCoding, NSCopying (0) | 2017.09.27 |
[iOS/Swift] Singleton 사용하기 (0) | 2017.09.27 |
[iOS/Swift] Swift3 GCD 조금 더... (0) | 2017.09.27 |
- Total
- Today
- Yesterday
- Kotlin
- docker
- windows10
- centos8
- git
- intellij
- MySQL
- ubuntu
- cocoapods
- php
- github
- go
- enum
- Python
- Java
- SWIFT
- tomcat
- android
- Xcode
- nodejs
- war
- CentOS
- Windows
- Codable
- golang
- Spring
- Gradle
- rxswift
- Linux
- ios
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |