Подготовка устройства для Xamarin.iOSDevice 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, а их приложения не могут быть опубликованы в App Store.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 предлагает бесплатную подготовку в Xcode 7, которая позволяет запускать одно приложение на одном устройстве без участия в программе Apple для разработчиков.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 в качестве разработчика, чтобы приложение имело свой идентификатор, а также посредством требований предоставить сертификат и зарегистрировать устройство, на котором будет развернуто приложение.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)
  • Что (Идентификатор конкретного приложения — соответствует ли набор идентификаторов пакета в файле Info.plist идентификатору приложения в профиле подготовки?)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 автоматически создавала и управляла вашими удостоверениями подписывания, идентификаторами приложений и профилями подготовки.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.

  • Вручную — удостоверения подписывания, идентификаторы приложений и профили подготовки можно создавать и управлять через портал разработчиков 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. Эти службы необходимо настроить как на портале подготовки iOS при создании идентификатора приложения, так и в файле Entitlements.plist, входящем в проект приложения Xamarin.iOS.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.

  • Создайте идентификатор приложения с требуемыми службами приложений.Create an App ID with the required app services.
  • Создайте профиль подготовки, содержащий этот идентификатор приложения.Create a new provisioning profile that contains this App ID.
  • Задайте назначения в проекте Xamarin.iOSSet Entitlements in the Xamarin.iOS Project