App Store 배포
Xamarin.iOS 앱이 개발되면 소프트웨어 개발 수명 주기의 다음 단계는 iTunes 앱 스토어를 사용하여 사용자에게 앱을 배포하는 것입니다. 이는 애플리케이션을 배포하는 가장 일반적인 방법입니다. Apple의 앱 스토어에 애플리케이션을 게시하면 전 세계의 소비자가 해당 애플리케이션을 사용할 수 있습니다.
Important
Apple은 2019년 3월부터 App Store에 제출된 모든 앱과 업데이트가 iOS 12.1 SDK 이상에서 빌드되어 Xcode 10.1 이상에 포함된다고 발표했습니다. 앱은 iPhone XS 및 12.9인치 iPad Pro 화면 크기도 지원해야 합니다.
Important
Xamarin.Forms를 사용하는 동안 UIWebView
사용 중단 경고(ITMS-90809)와 관련된 리소스를 찾는 경우 Xamarin.Forms WebView 설명서를 참조하세요.
애플리케이션을 배포하는 경우와 마찬가지로 애플리케이션을 배포하려면 적절한 프로비전 프로필을 사용하여 애플리케이션을 프로비전해야 합니다. 프로비전 프로필은 애플리케이션 ID 및 의도된 배포 메커니즘뿐만 아니라 코드 서명 정보도 포함된 파일입니다. 앱 스토어 배포가 아닌 경우 앱을 배포할 수 있는 디바이스에 대한 정보도 포함되어 있습니다.
Important
iTunes Connect를 사용하기 위해 앱 스토어에 앱을 게시하려면 사용자가 개인 또는 조직의 Apple Developer Program에 반드시 속해야 합니다. Apple Developer Enterprise Program의 구성원인 경우 이 페이지의 단계를 수행할 수 없습니다.
앱 스토어 배포를 위한 앱 프로비전
Xamarin.iOS 애플리케이션을 릴리스하려는 방법에 관계없이 특정 배포 프로비전 프로필을 작성해야 합니다. 이 프로필을 사용하면 애플리케이션을 iOS 디바이스에 설치할 수 있도록 디지털 서명하여 릴리스할 수 있습니다. 개발 프로비전 프로필과 마찬가지로 배포 프로필에는 다음 항목이 포함됩니다.
- 앱 ID
- 배포 인증서
개발 프로비전 프로필에 사용한 것과 동일한 앱 ID 및 디바이스를 선택할 수 있지만, 아직 없는 경우 앱 스토어에 앱을 제출할 때 조직을 식별하기 위한 배포 인증서를 만들어야 합니다. 배포 인증서를 만드는 방법에 대한 단계는 아래 섹션에서 설명합니다.
참고 항목
팀 에이전트 및 관리자만 배포 인증서 및 프로비저닝 프로필을 만들 수 있습니다.
배포 인증서 만들기
Apple Developer Member Center의 인증서, 식별자 및 프로필 섹션으로 이동합니다.
인증서 아래에서 프로덕션을 선택합니다.
새 인증서를 만들기 위해 + 단추를 클릭합니다.
프로덕션 제목 아래에서 앱 스토어 및 임시를 선택합니다.
계속을 클릭하고, 지시에 따라 키 집합 액세스를 통해 CSR(인증서 서명 요청)을 만듭니다.
지시한 대로 CSR을 만들었으면 계속을 클릭하고 CSR을 Member Center에 업로드합니다.
생성을 클릭하여 인증서를 만듭니다.
마지막으로 완성된 인증서를 다운로드하고 파일을 두 번 클릭하여 설치합니다.
이 시점에서 인증서가 시스템에 설치되지만, Xcode에서 볼 수 있도록 프로필을 새로 고쳐야 할 수도 있습니다.
또는 Xcode의 [기본 설정] 대화 상자를 통해 인증서를 요청할 수도 있습니다. 이렇게 하려면 아래 단계를 수행합니다.
배포 프로필 만들기
앱 ID 만들기
만든 다른 프로비전 프로필과 마찬가지로 앱 ID는 사용자의 디바이스에 배포되는 앱을 식별하는 데 필요합니다. 앱 ID를 아직 만들지 않았으면 다음 단계에 따라 만듭니다.
- Apple Developer Center에서 인증서, 식별자 및 프로필 섹션으로 이동합니다. 식별자 아래에서 앱 ID를 선택합니다.
- + 단추를 클릭하고 포털에서 식별할 수 있는 이름을 제공합니다.
- 앱 접두사는 이미 팀 ID로 설정되어 있으며 변경할 수 없습니다. 명시적 또는 야생카드 앱 ID를 선택하고 다음과 같이 역방향 DNS 형식으로 번들 ID를 입력합니다.
- 명시적 앱 ID: com.[DomainName].[AppName]
- 와일드카드 앱 ID: com.[DomainName].*
- 앱에 필요한 App Services를 선택합니다.
- 계속 단추를 클릭하고 화면의 지침에 따라 새 앱 ID를 만듭니다.
프로비전 프로필 만들기
배포 프로필을 만드는 데 필요한 필수 구성 요소가 있으면 아래 단계에 따라 해당 배포 프로필을 만듭니다.
Apple 프로비전 포털로 돌아가서 프로비전>배포를 차례로 선택합니다.
+ 단추를 클릭하고 만들려는 배포 프로필 유형을 앱 스토어로 선택합니다.
계속 단추를 클릭하고 드롭다운 목록에서 배포 프로필을 만들려는 앱 ID를 선택합니다.
계속 단추를 클릭하고 애플리케이션에 서명하는 데 필요한 인증서를 선택합니다.
계속 단추를 클릭하고 Xamarin.iOS 애플리케이션이 실행될 수 있는 iOS 디바이스를 선택합니다.
계속 단추를 클릭하고 새 배포 프로필에 대한 이름을 입력합니다.
생성 단추를 클릭하여 새 프로필을 만들고 프로세스를 완료합니다.
Mac용 Visual Studio에서 새 배포 프로필을 사용하려면, 먼저 Mac용 Visual Studio를 종료한 다음, 서명 ID 요청 섹션의 지침에 따라 Xcode에서 사용 가능한 서명 ID 및 프로비전 프로필의 목록을 새로 고쳐야 할 수도 있습니다.
Xamarin.iOS 프로젝트에서 배포 프로필 선택
iTunes 앱 스토어에서 판매할 Xamarin.iOS 애플리케이션의 최종 빌드를 수행할 준비가 되면 위에서 만든 배포 프로필을 선택합니다.
Mac용 Visual Studio에서 다음을 수행합니다.
편집하기 위해 솔루션 탐색기에서 프로젝트 이름을 두 번 클릭하여 엽니다.
구성 드롭다운에서 iOS 번들 서명 및 릴리스 | iPhone을 선택합니다.
대부분의 경우 서명 ID 및 프로비전 프로필은 기본값(자동)으로 그대로 둘 수 있으며, Mac용 Visual Studio에서는 Info.plist의 번들 식별자에 따라 올바른 프로필을 선택합니다.
필요한 경우 드롭다운에서 서명 ID 및 배포 프로필(위에서 만든 항목)을 선택합니다.
확인 단추를 클릭하여 변경 내용을 저장합니다.
iTunes Connect에서 애플리케이션 구성
애플리케이션이 성공적으로 프로비전되면, 다음 단계는 앱 스토어에서 iOS 애플리케이션을 관리하는 웹 기반 도구 모음인 iTunes Connect에서 앱을 구성하는 것입니다.
먼저 iTunes Connect에서 Xamarin.iOS 애플리케이션을 제대로 설정하고 구성한 후에, 이를 검토하여 궁극적으로 앱 스토어에서 판매하거나 무료 앱으로 릴리스할 수 있도록 Apple에 제출해야 합니다.
자세한 내용은 iTunes Connect에서 앱 구성 설명서를 참조하세요.
iTunes Connect에 앱 제출
애플리케이션이 배포 프로비전 프로필을 사용하여 서명되고 iTunes Connect에서 앱이 만들어지면, 검토를 위해 애플리케이션 이진 파일이 Apple에 업로드됩니다. Apple에서 성공적으로 검토되면 앱 스토어에서 사용할 수 있습니다.
앱 스토어에 애플리케이션을 게시하는 방법에 대한 자세한 내용은 앱 스토어에 게시를 참조하세요.
.app 번들을 Windows로 다시 자동 복사
Visual Studio 및 Mac 빌드 에이전트에서 iOS 앱을 빌드하는 경우 .app 번들이 Windows 컴퓨터에 다시 복사되지 않습니다. Visual Studio 7.4용 Xamarin Tools는 CI가 .app 번들을 Windows로 다시 복사하도록 해주는 새로운 CopyAppBundle
속성을 추가합니다.
이 기능을 사용하려면 이 기능을 적용하려는 속성 그룹에서 .csproj에 CopyAppBundle
속성을 추가합니다. 예를 들어 다음 예제는 iPhoneSimulator를 대상으로 하는 디버그 빌드를 위해 .app 번들을 Windows 컴퓨터에 다시 복사하는 방법을 보여줍니다.
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|iPhoneSimulator' ">
<CopyAppBundle>true</CopyAppBundle>
</PropertyGroup>
요약
이 문서에서는 앱 스토어에 배포하기 위해 Xamarin.iOS 애플리케이션을 준비하는 주요 구성 요소에 대해 설명했습니다.