iOS 앱 구축 및 배포에서 활용되는 데이터 관련 정리

7과11사이·2023년 11월 23일
0

스파르타코딩클럽

목록 보기
90/90
post-thumbnail

찐 어플을 출시한지 어느덧 5일 정도 지났다.
내가 맡은 기능에서 출시 이전까지 더 많은 것들을 구현하지 못한 점이 여전히 아쉽지만 그럼에도 불구하고 앱 스토어에서 어플이 검색된다는 점만으로도 신기하다.

5주(기획 1주, 제작 4주) 가량 걸린 이 프로젝트를 심사 넣을 때
처음 보는 자료들을 제출하게 되었다. 자세히 몰라도 되지 않을까 싶었지만 어떤 용도로 사용이 되는지 이해하지 못하고 있었기에 별도로 정리를 해본다.

[1215]

배포 뿐만 아니라 자세히 모르는 키워드 / 데이터들도 있어 한번에 묶어서 정리하고자 한다!


🚀 [Release]

- 애플 디벨로퍼 프로그램 🍏

가장 먼저 애플 디벨로퍼 프로그램 신청이다.
일정 비용을 지불하면 Apple에서 제공하는 signing Certificate를 요청 및 발급을 받을 수 있게 된다.
해당 인증서를 발급 받아야 앱 개발과 배포를 처리할 수 있는데, 함께 받는 데이터를 포함하면 3 종류가 된다. 인증서부터 profileProvision까지 있었는데, 각자 어떤 역할을 하는지, 왜 필요한지 등을 정리해보고자 한다!
이제는 알고 있지만 출시를 위해선 필수다!!


Certificate 📝

공식문서 / 안내

배포를 준비하면서 이해하지 못한 것 중 하나가 인증서였다.
개발 프로그램에 신청을 했고 unique bundle ID를 설정했다면 무사히 배포할 수 있어야 하는게 아닐까 싶었는데 아니였다.

공식 문서에 따르면 인증서는 2가지로 구분이 된다.
1. 개발(development)
2. 배포(distribution)

*macOS 또는 iOS에서 개발자 인증서를 확인해서 해당 개발자가 신뢰할만한 유저가 맞는지를 확인한다고 한다!
App Store에 등록되지 않은 파일의 경우, GateKeeper가 개발자 ID 인증서를 확인하고 허가를 내린다고~

A. Development Certificate

인증서 타입 정리

  • 개발 인증서는 iOS,macOS, tvOS와 watchOS 등의 어플을 등록한 기기에 실행/구동할 수 있도록 돕는다.

  • 신기하게도 문서에 따르면 개발 인증서는 개인에게 귀속이 된다. iOS와 맥 개발을 위해 각각 2개의 개발 인증서를 생성할 수 있으며 구분을 지을 수 있도록 컴퓨터명이 개발 인증서 이름에 활용이 된다고 한다.

일종의 제한이 있다는 점에서 놀랐는데, 개발 인증서를 공유하거나 여러 기기에서 악용할 수 있는 점을 방지하기 위해 넣은 방향으로 보인다.

B. Distribution Certificate

개발 인증서와 달리 배포 인증서는 팀에 귀속이 되며 팀 당 하나의 인증서 발급이 가능하다고 한다.
해당 인증서는 어플을 특정 기기에 배포하기 전, 테스트를 하거나 앱 스토어에 등록할 때 사용된다고 한다.


Identifiers 🪪

[내용 정리]

내가 이해하기로는 Bundle Identifier와 App Id로 구분되며 어플의 고유성을 구분하기 위한 데이터이다.
생각보다 많이 복잡하다!

A. Bundle Identifier

예시) com.naver.어플이름

  • 번들의 경우, 한가지 앱의 고유한 아이디와 비슷한 것 같다.
    어플의 주민등록번호와 같은 셈.
    이어 설명하겠지만, 기기별로 따로 구분이 필요하다.(iOS, macOS, watchOS 등)

  • 동일한 identifier를 가진 어플을 만들 수 없다.
    따라서 애플은 어플이 고유한 Identifier을 가지도록 개발자에게 reverse domain name notation (RDNN) 방식을 사용하도록 권장한다.

    만일 한 어플을 다양한 기기들에 호환되도록 버전을 다르게 만든다면, bundle identifier는 변경이 되어야 한다고 한다.

    아이폰용 - com.naver.어플이름.iOS
    맥용 - com.naver.어플이름.macOS


B. App ID

App ID는 어플의 고유한 주민등록번호와 달리, 애플 시스템 자체에서 구분하기 위한 아이디다.
TeamID와 bundle Id search string으로 이루어 져있으며
bundle identifier과 겹치는 부분이 있어 헷갈리지만, 엄연히 다르다.


A. TeamID

  • 애플이 자동 제공하는 아이디로 우리가 변경할 수 있는 요소가 아니다.

B. bundle id search String

  • bundle identifier의 일부로 특정 어플의 기능 혹은 기기 지원 활성화를 할 때 사용된다.

예시) jacklee123.com.naver.어플이름
[Team ID] + [bundle Identifier]

위 예시에서 jacklee123는 TeamID,
com.naver은 bundle Identifier,
어플이름은 bundle ID search String으로 구분할 수 있다.


A. Explicit App ID & wildcard App ID

한 가지 특이한 점은 App ID는 외부 ID(explicit App ID)wildCard App ID로 구분이 된다고 한다.

Explicit App Id는 하나의 어플을 명시할 때 사용하는 반면,
WildCard App Id는 하나의 bundle Identifier을 활용할 수 있도록 편의성을 강화시킨 것이다.

앞서 여러 기기를 지원할 경우 bundle Identifier을 새로 생성해야 한다고 했는데, wildcard App Id를 사용하면 하나의 bundle Identifier로 쉽게 처리할 수 있게 된다.

예시) Wildcard App ID
jacklee123.com.naver.어플이름.*
또는 jacklee123.com.naver.*

'*'를 활용해서 하나의 bundle Identifier로 iOS, macOS, watchOS를 지원할 수 있다.,
또는 하나의 AppID로 어플1, 어플2, 등등 여러 개의 어플을 만든다는 점을 구분 지을 수 있다.

➡ 이해한대로 정리하면, bundle identifier는 어플 자체를 구분하기 위해 사용된다.
App Id는 개발자 개인/ 개발자 팀을 애플 커넥트에 연결 및 구분할 때 사용되어 보인다.

보안 링크

0개의 댓글