Xamarin.iOS에 대한 디바이스 프로비저닝Device provisioning for Xamarin.iOS

Xamarin.iOS 애플리케이션을 개발하는 동안 시뮬레이터 뿐만 아니라 물리적 디바이스에 앱을 배포하여 테스트하는 것은 필수적입니다.While developing a Xamarin.iOS application it is essential to test it by deploying the app to a physical device, in addition to the simulator. 디바이스 전용 버그 및 성능 문제는 메모리 또는 네트워크 연결과 같은 하드웨어 용량 제한으로 인해 디바이스에서 실행할 때 발생할 수 있습니다.Device-only bugs and performance issues can transpire when running on a device, due to hardware limits such as memory or network connectivity. 물리적 디바이스에서 테스트하려면 디바이스는 프로비전되어야 하며 디바이스가 테스트용으로 사용되는 것을 Apple에 알려야 합니다.To test on a physical device, the device must be provisioned, and Apple must be informed that the device will be used for testing.

아래 그림에 강조 표시된 섹션은 iOS 프로비전을 설정하는 데 필요한 단계를 보여 줍니다.The highlighted sections in the image below show the steps required to get set up for iOS provisioning:

이 후 다음 단계는 애플리케이션을 배포하는 것입니다.After this, the next step is to distribute the application. 배포에 대한 자세한 내용은 앱 배포 가이드를 참조하세요.For more information on deployment, visit the App Distribution guides.

디바이스에 애플리케이션을 배포하기 전에 Apple의 개발자 프로그램에 대한 활성 구독이 있거나무료 프로비전을 사용해야 합니다.Before deploying the application to a device, you need to have an active subscription to Apple's Developer Program, or use Free Provisioning. Apple에서는 두 개의 프로그램 옵션을 제공합니다.Apple offers two program options:

  • Apple 개발자 프로그램 – 개인이거나 조직을 대표하는지 여부에 관계 없이 Apple 개발자 프로그램을 통해 앱을 개발하고, 테스트하고, 배포할 수 있습니다.Apple Developer Program – Regardless of whether you are an individual or represent an organization, the Apple Developer Program allows you to develop, test, and distribute apps.
  • Apple 개발자 엔터프라이즈 프로그램 – 엔터프라이즈 프로그램은 사내에서만 앱을 개발하고 배포하려는 조직에 가장 적합합니다.Apple Developer Enterprise Program – The Enterprise program is most suited to organizations that want to develop and distribute apps in-house only. 엔터프라이즈 프로그램의 구성원은 iTunes Connect에 액세스할 수 없고 만든 앱을 앱 스토어에 게시할 수 없습니다.Members of the Enterprise program do not have access to iTunes Connect, and apps created cannot be published to the App Store.

이러한 프로그램 중 하나를 등록하려면 Apple 개발자 포털을 방문하여 등록합니다.To register for either of these programs, visit the Apple Developer Portal to register. Apple 개발자로서 등록하려면 Apple ID가 필요합니다.Note that to register as an Apple developer, it is necessary to have an Apple ID. 이 가이드는 사용자가 Apple 개발자 프로그램의 구성원이라는 가정으로 만들어졌습니다.This guide has been created with the assumption that you are a member of an Apple Developer Program.

또는 Apple은 Apple의 개발자 프로그램의 구성원일 필요 없이 단일 애플리케이션을 단일 디바이스에서 실행할 수 있도록 하는 Xcode 7에서 무료 프로비전을 도입했습니다.Alternatively, Apple introduced Free Provisioning in Xcode 7 which allows a single application to run on a single device without being a member of Apple's Developer Program. 여기에서 설명된 대로 이러한 방식으로 프로비전할 때 여러 제한 사항이 있습니다.There are a number of limitations when provisioning in this way, as detailed here.

디바이스에서 실행되는 모든 애플리케이션은 애플리케이션 및 개발자에 대한 정보를 포함하는 메타데이터(또는 지문)의 집합을 포함해야 합니다.Any application that runs on a device needs to include a set of metadata (or thumbprint), which contains information about the application and the developer. Apple은 이 지문을 사용하여 사용자의 디바이스에 배포하거나 사용자의 디바이스에서 실행될 때 애플리케이션이 손상되지 않도록 합니다.Apple uses this thumbprint to make sure that the application is not tampered with when deploying to, or running on, a user's device. 이는 앱 개발자에게 개발자로서 해당 Apple ID를 등록하고, 앱 ID를 설정하고, 인증서를 요청하고, 애플리케이션이 배포될 디바이스를 등록하도록 하여 수행됩니다.This is achieved by requiring app developers to register their Apple ID as a developer, and to setup an App ID, request a Certificate, and register the device on which the application will be deployed.

디바이스에 애플리케이션을 배포할 때 프로비전 프로필도 iOS 디바이스에 설치됩니다.When deploying an application to a device, a Provisioning Profile is also installed on the iOS device. 프로비전 프로필은 앱이 빌드 시 서명되었고 Apple에서 암호로 서명했다는 정보를 확인하기 위해 존재합니다.The Provisioning Profile exists to verify the information that the app was signed with at build time and is cryptographically signed by Apple. 프로비전 프로필 및 '지문' 검사는 함께 다음을 확인하여 애플리케이션을 디바이스에 배포할 수 있는지 여부를 결정합니다.Together, the Provisioning Profile and 'thumbprint' checks determine if an application can be deployed to a device by checking:

  • 누구(인증서 – 프로비전 프로필에 해당 퍼블릭 키가 있는 프라이빗 키로 앱이 서명되었나요?Who (Certificates – has the app been signed with a private key, which has a corresponding public key in the provisioning profile? 인증서는 또한 개발자를 개발 팀과 연결합니다.)The certificate also associates the developer with a development team)
  • 무엇(개별 앱 ID – Info.plist의 번들 식별자 설정은 프로비저닝 프로필의 앱 ID와 일치하나요?)What (Individual App ID – Does the Bundle Identifier set in the Info.plist match the App ID in the provisioning profile?)
  • 어디(디바이스 - 디바이스는 프로비전 프로필에 포함되어 있나요?)Where (Devices – Is the device contained in the provisioning profile?)

이러한 단계는 애플리케이션 및 디바이스를 포함하여 개발 프로세스 중에 만들어지거나 사용된 모든 항목이 Apple 개발자 계정에 대해 역추적될 수 있도록 합니다.These steps ensure that everything that is created or used during the development process, including the applications and devices, can be traced back to an Apple Developer account.

디바이스 프로비저닝Provisioning your device

iOS 디바이스를 프로비전하는 두 가지 방법이 있습니다.There are two ways to provision your iOS device:

  • 자동(권장) – 프로젝트에서 자동 프로비저닝 구성표를 선택하여 Visual Studio에서 서명 ID, 앱 ID 및 프로비전 프로필을 자동으로 만들고 관리하도록 합니다.Automatically (Recommended) – Select the Automatic Provisioning scheme in your project to have Visual Studio automatically create and manage your Signing Identities, App IDs, and Provisioning Profiles. 프로비전을 자동으로 관리하는 방법에 대한 자세한 내용은 자동 프로비전 가이드를 참조하세요.For information on how to automatically manage provisioning, see the Automatic Provisioning guide. iOS 디바이스를 프로비전하는 권장 방법입니다.This is the recommended way of provisioning an iOS device.

  • 수동 - 서명 ID, 앱 ID 및 프로비전 프로필은 수동 프로비전 가이드에 설명된 대로 Apple 개발자 포털을 통해 만들어지고 관리될 수 있습니다.Manually – Signing Identities, App IDs, and Provisioning Profiles can be created and managed via the Apple Developer Portal, as described in manual provisioning guide. 그런 다음, 이러한 아티팩트는 Apple 계정 관리 가이드에 설명된 대로 관리될 수 있습니다.These artifacts can then be managed as described in the Apple Account Management guide.

애플리케이션 서비스 프로비전Provisioning for Application Services

Apple은 Xamarin.iOS 애플리케이션에 활성화할 수 있는 다양한 애플리케이션 서비스(다른 이름: 기능)를 제공합니다.Apple provides a selection of special Application Services, also called capabilities, that can be activated for a Xamarin.iOS application. 이러한 애플리케이션 서비스는 앱 ID를 만들 때 iOS 프로비전 포털에서 구성하고 Xamarin.iOS 애플리케이션 프로젝트에 속하는 Entitlements.plist 파일에서도 구성해야 합니다.These Application Services must be configured on both the iOS Provisioning Portal when the App ID is created and in the Entitlements.plist file that is part of the Xamarin.iOS application's project. 앱에 애플리케이션 서비스를 추가하는 방법에 대한 자세한 내용은 기능 소개 가이드 및 자격 사용 가이드를 참조하세요.For information on adding Application Services to your app, refer to the Introduction to Capabilities guide and the Working with Entitlements guide.

  • 필요한 앱 서비스를 포함하는 앱 ID를 만듭니다.Create an App ID with the required app services.
  • 앱 ID를 포함하는 새로운 프로비전 프로필을 만듭니다.Create a new provisioning profile that contains this App ID.
  • Xamarin.iOS 프로젝트에서 자격 설정Set Entitlements in the Xamarin.iOS Project