애플리케이션의 배포와 프로젝트 관리 - Welcome to Xcode

Groot·2022년 10월 10일
0

TIL

목록 보기
77/148
post-thumbnail

TIL

🌱 난 오늘 무엇을 공부했을까?

📌 애플리케이션의 배포와 프로젝트 관리Welcome to Xcode

📍 Project

  • 앱 개발에 필요한 파일과 리소스를 체계적으로 관리하는 것

📍 Bundle ID / App ID

🔗 Bundle ID

시스템 전체에서 단일 앱을 고유하게 식별합니다.
운영 체제는 번들 ID를 사용하여 지정된 기본 설정이 적용되는 앱을 식별합니다.
마찬가지로 Launch Services는 번들 ID를 사용하여 지정된 식별자로 찾은 첫 번째 앱을 사용하여 특정 파일을 열 수 있는 앱을 찾습니다. 번들 ID는 앱의 서명을 확인하는 데에도 사용됩니다.

Xcode에서 번들 ID는 정보 속성 목록 리소스 파일 및 PRODUCT_BUNDLE_IDENTIFIER 빌드 설정의 기본 CFBundleIdentifier 키에 대한 값입니다.
프로젝트 편집기의 일반 창 또는 서명 및 기능 창에서 번들 ID를 설정합니다.
번들 ID는 장치를 프로비저닝하고 기능을 구성하는 데 사용됩니다. 앱을 코드 서명하려면 번들 ID가 개발자 계정의 앱 ID와 일치해야 합니다.
iCloud 컨테이너 ID에는 명시적 앱 ID와 일치하는 번들 ID가 포함되어야 합니다.
번들 ID는 App Store Connect에 입력한 번들 ID와 일치해야 합니다. App Store Connect에 빌드를 업로드한 후에는 번들 ID를 변경하거나 개발자 계정에서 연결된 명시적 앱 ID를 삭제할 수 없습니다.

🔗 App ID

특정 기능을 사용하고 App Store에 제출하려면 명시적 App ID를 사용해야 합니다.
앱 ID는 프로비저닝 프로필에서 앱을 식별합니다. 단일 개발 팀에서 하나 이상의 앱을 식별하는 데 사용되는 두 부분으로 된 문자열입니다.
앱 ID에는 단일 앱에 사용되는 명시적 앱 ID와 앱 집합에 사용되는 와일드카드 앱 ID의 두 가지 유형이 있습니다.

📍 Target

  • 타겟은 iOS, watchOS 또는 macOS 앱과 같이 빌드할 제품을 지정합니다. 템플릿에서 프로젝트를 생성하면 타겟이 자동으로 추가됩니다. 프로젝트를 생성할 때 단위 및 UI 테스트를 선택하면 프로젝트에 기본 앱 및 테스트 앱에 대한 타겟이 포함됩니다. iOS 앱에 종속된 watchOS 앱에는 iOS 앱, WatchKit 확장 및 WatchKit 앱에 대한 타겟이 있습니다. macOS 앱에도 여러 타겟이 있을 수 있습니다. 프로젝트 편집기에서 타겟을 선택하여 타겟 설정을 보고 수정합니다. 프로젝트 편집기에서 추가 버튼(+)을 클릭하여 프로젝트에 새 애플리케이션, 프레임워크 및 라이브러리, 테스트 또는 애플리케이션 확장 타겟을 추가합니다.

  • 타겟 설정은 다음 프로젝트 편집기 창에서 편집됩니다.
    • General: 번들 식별자, 버전 및 빌드 번호와 같이 일반적으로 편집되는 타겟 설정입니다. 일반 설정은 다른 타겟 설정 범주에 존재하지만 편의를 위해 여기에도 포함됩니다.
    • Signing & Capabilities: 앱 코드 서명 및 iCloud, 푸시 알림 및 Game Center와 같은 앱 서비스 활성화를 위한 설정입니다.
    • Resource tags: 프로젝트에서 주문형 리소스 집합을 식별하고 관리하는 데 사용하는 사용자 정의 태그입니다.
    • Info: 타겟의 Info.plist 파일에 포함된 설정입니다.
    • Build settings: 타겟이 구축되는 방식을 정확히 지정하는 설정입니다.
    • Build phases: 소스 코드를 컴파일하고 제품에 리소스를 복사하는 것과 같이 빌드 시 수행할 작업을 설명하는 설정
    • Build rules: 특정 유형의 파일을 빌드하기 위한 사용자 정의 규칙을 정의하는 설정입니다.

📍 Scheme

프로젝트에 대해 빌드할 대상, 사용할 빌드 구성 및 제품이 시작될 때 사용할 실행 환경을 지정하는 설정 모음입니다.
기존 프로젝트를 열 때(또는 새 프로젝트를 만들 때) Xcode는 자동으로 각 대상에 대한 체계를 만듭니다. 기본 구성표는 프로젝트 이름을 따서 명명됩니다.

📍 Distribution methods

📍 Provisioning profile

🔗 distribution provisioning profile

  • distribution provisioning profile은 앱이 특정 앱 서비스를 사용하도록 승인하고 앱을 배포하거나 업로드하는 알려진 개발자인지 확인하는 프로비저닝 프로필입니다.
  • distribution provisioning profile에는 하나 이상의 앱 및 배포 인증서와 일치하는 단일 앱 ID가 포함됩니다. 특정 앱 서비스를 사용하기 위해 Xcode를 통해 간접적으로 App ID를 구성합니다.
  • Xcode는 권한을 설정하고 다른 구성 단계를 수행하여 앱 서비스를 활성화하고 구성합니다. 일부 권한은 앱 ID(개발자 계정에 저장됨)에 대해 활성화되고 다른 권한은 Xcode 프로젝트에서 설정됩니다.
  • 앱을 내보내거나 업로드할 때 Xcode는 배포 프로비저닝 프로필에서 참조하는 배포 인증서로 앱 번들에 서명합니다.


🔗 ad hoc provisioning profile

  • An ad hoc provisioning profile Xcode의 도움 없이 앱을 지정된 장치에 설치하고 앱 서비스를 사용할 수 있도록 하는 배포 프로비저닝 프로파일입니다.

  • 앱에 대해 생성할 수 있는 두 가지 유형의 배포 프로비저닝 프로필 중 하나입니다. (다른 유형의 배포 프로비저닝 프로필을 사용하여 앱을 App Store Connect에 업로드합니다.)

  • 임시 프로비저닝 프로필은 앱의 테스트 버전이 사용자 모르게 복사 및 배포되지 않도록 합니다.

  • 테스터에게 앱을 배포할 준비가 되면 하나 이상의 앱, 테스트 장치 세트 및 단일 배포 인증서와 일치하는 앱 ID를 지정하는 임시 프로비저닝 프로필을 만듭니다.


  • Ad Hoc 프로비저닝 프로파일의 각 장치는 고유한 장치 ID(UDID)로 식별됩니다. 등록하고 프로비저닝 프로필에 추가하는 장치는 개발자 계정에 저장됩니다.

  • 각 개인 또는 조직은 개발 및 테스트를 위해 매년 제품군당 제한된 수의 장치를 등록할 수 있습니다.

  • Ad Hoc 프로비저닝 프로필을 사용하여 앱을 내보내면 Ad Hoc 프로비저닝 프로필이 앱 번들에 포함되고 iOS 앱(IPA) 파일이 배포 인증서로 서명됩니다.

  • 앱의 번들 ID가 앱 ID와 일치하고 서명이 배포 인증서와 일치하고 기기가 임시 프로비저닝 프로필의 기기 목록에 있는 경우 기기에서 앱이 실행됩니다.

🔗 development provisioning profile

  • 개발 프로비저닝 프로필을 사용하면 앱이 기기에서 실행되고 개발 중에 특정 앱 서비스를 사용할 수 있습니다. 개인의 경우 개발 프로비저닝 프로필을 사용하면 귀하가 서명한 앱을 등록된 장치에서 실행할 수 있습니다.
  • 조직의 경우 개발 프로비저닝 프로필을 사용하면 팀에서 개발한 앱에 팀 구성원이 서명하고 장치에 설치할 수 있습니다.
  • 개발 프로비저닝 프로파일에는 다음이 포함됩니다.
    • 팀의 모든 앱과 일치하는 와일드카드 앱 ID 또는 단일 앱과 일치하는 명시적 앱 ID
    • 팀과 연결된 지정된 장치
    • 팀과 관련된 지정된 개발 인증서

📍 Code signing

  • 코드 서명(또는 서명) 앱을 사용하면 시스템에서 앱에 서명한 사람을 식별하고 앱이 서명된 이후 수정되지 않았는지 확인할 수 있습니다.

  • 서명은 앱을 App Store Connect에 업로드하고 TestFlight 또는 App Store를 통해 배포하기 위한 요구 사항입니다.

  • 운영 체제는 App Store에서 다운로드한 앱의 서명을 확인하여 서명이 잘못된 앱이 실행되지 않도록 합니다.

  • 앱 번들의 실행 코드가 변경되면 서명이 무효화되기 때문에 앱의 실행 코드는 서명으로 보호됩니다.

  • 유효한 서명을 통해 사용자는 앱이 Apple 소스에 의해 서명되었으며 서명된 이후 수정되지 않았음을 신뢰할 수 있습니다.

  • Xcode는 서명 인증서를 사용하여 빌드 프로세스 중에 앱에 서명합니다.

  • 서명 인증서는 공개-개인 키 쌍과 인증서로 구성됩니다.

  • 개인 키는 암호화 기능에서 서명을 생성하는 데 사용됩니다.

  • 인증서는 Apple에서 발행합니다.

  • 여기에는 공개 키가 포함되어 있으며 사용자를 키 쌍의 소유자로 식별합니다. 앱에 서명하려면 서명 인증서의 두 부분과 키체인에 Apple 인증 기관이 모두 있어야 합니다.


  • 서명은 앱의 출처를 증명하는 것이 아니라 서명자가 표시하는 검증 가능한 표시로 이해하는 것이 가장 좋습니다.

📍Signing certificate

  • 서명 인증서는 빌드 및 보관 프로세스 중에 코드 서명에 사용되는 디지털 ID입니다.
  • 서명 서명 인증서에는 Apple에서 발급한 공개-개인 키 쌍이 있는 인증서가 포함되며 키체인에 저장됩니다.

  • Xcode를 설치하면 Apple의 중간 인증서가 키체인에 추가됩니다. 그런 다음 Xcode를 사용하여 서명 인증서를 만들고 앱에 서명합니다.
  • 서명 인증서가 키체인에 추가되고 해당 인증서가 개발자 계정에 추가됩니다. 조직으로 등록하면 개발자 계정에 팀 구성원이 만든 모든 인증서가 표시됩니다.
profile
I Am Groot

0개의 댓글