Apple iphone device ca сертификат что это

Обновлено: 06.07.2024

Несколько сертификатов, связанных с iOS-разработчиками

Что касается разработки сертификатов, идентификаторов и профилей обеспечения, я считаю, что студенты, которые занимаются разработкой iOS, не брошены. Для разработчика iOS Xiaobai, наполовину вешалки (такой как я) или ветеран, есть более или менее или были следующие неизвестные, сомнения, сомнения и даже путаница:

  1. Что такое идентификатор приложения? В чем разница между явным идентификатором / идентификатором приложения? Что такое идентификатор группы приложений?
  2. Что такое сертификат? Как подать заявку? Какая польза?
  3. Что такое пара ключей (открытый ключ / закрытый ключ)? Какая польза? Как это связано с сертификатом?
  4. Что такое подпись? Как подписать (CodeSign)? Как проверить (Подтвердить)?
  5. Что такое (команда) профилирования? Какая польза?
  6. Как настроить Xcode для использования реальной машины iOS для разработки и отладки?
  7. Как несколько компьютеров имеют общую учетную запись или сертификат разработчика?
  8. Что мне делать, если я столкнулся с проблемой конфигурации сертификата?

В этой статье будет систематически сочетаться шампуры вокруг связанных понятий.

1. Предположим, вы использовали устройство Apple (iMac / iPad / iPhone) иЗарегистрироватьсяПередан Apple ID (учетная запись Apple).

2. Предположим, вы или ваша команда разработчиков присоединились к Программе разработчиков Apple (зарегистрируйтесь в Программе разработчиков iOS, чтобы статьmember) УжеЗарегистрироватьсяУчетная запись разработчика (Apple Developer Account).

  • Только если у вас есть учетная запись разработчика, вы можете подать заявку на сертификаты разработки / выпуска и соответствующие файлы авторизации конфигурации, а затем разрабатывать и отлаживать приложения на реальном устройстве iOS или публиковать их в App Store.
  • Существует два типа учетных записей разработчиков: индивидуальные и компания / организация. Если нет особого объяснения, нижеприведенное основано на обычной индивидуальной учетной записи разработчика (Индивидуальная) за 99 долларов США в год.
  • Явный идентификатор приложения: уникальный идентификатор приложения, используемый для однозначной идентификации приложения. Например, идентификатор приложения «com.apple.garageband» используется для идентификации приложения, идентификатор пакета которого - «com.apple.garageband».
  • Подстановочный идентификатор приложения: идентификатор приложения, содержащий подстановочные знаки, используемый для идентификации группы приложений. Например, «*» (фактически префикс идентификатора приложения) означает все приложения, а «com.apple. *» Может означать все приложения, чей идентификатор пакета начинается с «com.apple» (Apple).
  • Apps signed by you or your team run only on designated development devices.
  • Apps run only on the test devices you specify.

1. Понятие сертификата

2. Концепция цифровых сертификатов

  • Цифровой сертификат - это файл с цифровой подписью центра сертификации, который содержит информацию о владельце открытого ключа и открытом ключе. Самый простой сертификат содержит открытый ключ, имя и цифровую подпись от центра сертификации.
  • Еще одной важной особенностью цифровых сертификатов является своевременность: действует только в течение определенного периода времени.
  • Дважды щелкните в Apple iphone device ca сертификат что этоCNNIC ROOT, В раскрывающемся списке [Доверие] | [При использовании этого сертификата] выберите [Никогда не доверяйте].

3. iOS (разработка) сертификат

  • Сертификат разработки используется для разработки и отладки приложений: Adevelopment certificate identifies you, as a team member, in a development provisioning profile that allows apps signed by you to launchon devices.
  • Производство в основном используется для распространения приложений (выполняющих разные роли в зависимости от типа сертификата): Adistribution certificate identifies your team or organization in a distribution provisioning profile and allows you to submityour app to the store. Only a team agent or an admin can create a distribution certificate.

4. Корневой сертификат iOS (разработка), сертификат


Итак, кто выдал сертификат разработки iOS? Или из какого CA мы подали заявку на сертификат для разработки и отладки приложения XCode?

iOS и Mac OS X (при установке Xcode) будут установлены автоматическиAppleWWDRCA.cerЭто промежуточный сертификат (Intermediate Certificates),Это фактически сертификат iOS (разработка), т. Е.Корневой сертификат(Apple Root Certificate)。

AppleWWDRCA (Apple Root CA) похож на регистрацию и управление регистрацией домохозяйств органами общественной безопасности, сертификат AppleWWDRCA.cer to iOS (разработка) похож на сертификат регистрации домохозяйства для идентификационной карты.

Если помощник по сертификату Key Keychain Access для Mac не установил сертификат при подаче заявки на него, сначала загрузите и установите его (для подписи необходимо, чтобы в вашей цепочке для ключей были установлены и удостоверение подписи, и промежуточный сертификат).

5.Подать заявку на сертификат (CSR: запрос на подпись сертификата)

  • Keep a secure backup of your public-private key pair. If the private key is lost, you’ll have to create an entirely new identity to sign code.
  • Worse, if someone else has your private key, that person may be able to impersonateyou.

1. Концепция профиля обеспечения

  • Во-первых, вам нужно указать его идентификатор приложения и убедиться, что идентификатор пакета соответствует ему;
  • Во-вторых, для подписи требуется закрытый ключ, соответствующий сертификату, который используется для определения того, что приложение является законным, безопасным и полным;
  • Затем, если это отладка реальной машины, необходимо подтвердить, авторизовано ли это устройство для запуска приложения.

2. Состав профиля обеспечения

Ниже приведен типичный файл конфигурации поставки * .mobileprovisionАнализ состава:

(1)Name: Имя файла мобильного предложения.

(2)UUID: Настоящее имя файла mobileprovision.

(3)TeamName: Имя учетной записи Apple ID.

(5)AppIDName:explicit/wildcard App ID name(ApplicationIdentifierPrefix)。

(6)ApplicationIdentifierPrefix: Префикс полного идентификатора приложения (TeamIdentifier. *).

(7)DeveloperCertificates: Содержит все сертификаты <data> <array>, которые можно использовать для подписи приложения с помощью файла конфигурации.

Сертификат основан на кодировке Base64 и соответствует формату PEM (PrivacyEnhanced Mail, RFC 1848), который может быть обработан с использованием OpenSSL (opensslx509 -text -in file.pem).

Извлеките содержимое из <data> </ data> из DeveloperCertificates в файл cert.cer (cert.perm):

Скопируйте содержимое между <data> </ data> здесь

Щелкните правой кнопкой мыши QuickLook на Mac, чтобы просмотреть cert.cer (cert.perm), щелкните правой кнопкой мыши Получить информацию в Keychain Access, чтобы просмотреть соответствующий сертификат ios_development.cer, нормальная ситуация (спаривание открытого и закрытого ключей KeyPair) должна совпадать, в Windows недостаточно информации (WWDRCA.cer), Сертификат не может быть проверен.

Если вы подпишете с помощью сертификата, которого нет в этом списке, приложение выдаст код ошибки, независимо от того, действителен ли сертификат.

keychain-access-groups: $ (AppIdentifierPrefix), см.Code Signing Entitlements(*.entitlements)。

Каждое приложение имеет приложение, которое можно использовать для безопасного хранения информации, такой как пароли, аутентификация и т. Д.keychainКак правило, ваши собственные программы могут получить доступ только к вашей собственной цепочке для ключей. Посредством некоторых настроек при подписании приложений вы также можете использовать цепочку для ключей для обеспечения возможности обмена информацией между различными приложениями по одной и той же визе разработчика (то есть с одним и тем же семенем пакета). Например, если у вас есть учетная запись разработчика и разработаны два разных приложения A и B, вы можете поделиться содержимым этой цепочки для ключей, указав общую группу доступа для группы доступа цепочки для ключей A и B.

application-identifier: Полное имя с префиксом, например, $ (AppIdentifierPrefix) com.apple.garageband.

com.apple.security.application-groups: Идентификатор группы приложений (group. Com.apple), см.Code Signing Entitlements(*.entitlements)。

com.apple.developer.team-identifier: То же, что и идентификатор команды.

(9)ProvisionedDevices: UDID <массив> устройства разработки, авторизованного этим мобильным поставщиком.

Provisioning ProfileНастроен на[XcodeTarget | Параметры сборки | Подписание кода | Профиль обеспечения], а затем выберите Идентификацию из профиля «. » (то есть сертификаты, включенные в Профиль обеспечения) в раскрывающемся списке Идентификация подписи кода.

1. Концепция Team Provisioning Profile

2. Время создания / обновления профиля TeamProvisioning

  • Add an Apple ID account to Xcode
  • Fix issue "No Provisioning Profiles with a valid signing identity" in Xcode
  • Assign Your App to a Team in Xcode project settings of General|Identity
  • Register new device on the apple development website or Xcode detected new device connected

1. Концепция группы приложений

2. Настройка группы приложений

  1. Идентификаторы приложений, помещенные в одну и ту же группу приложений, должны быть уникальными (явный, а не подстановочный знак)
  2. Идентификатор приложения расширения с указанием идентификатора приложения в качестве префикса / семени

1.Code Signing Identity

  • Если открытый ключ WWDRCA можно использовать для успешной расшифровки сертификата и получения открытого ключа (открытый ключ) и сводки содержимого (подпись), это доказывает, что этот сертификат действительно выпущен AppleWWDRCA, то есть источник сертификата является доверенным;
  • Затем используйте алгоритм хеширования для расчета дайджеста по самому сертификату. Если он соответствует дайджесту, полученному на предыдущем шаге, это доказывает, что сертификат не был подделан, то есть сертификат завершен.

2.Code Signing


Каждый сертификат (фактически открытый ключ) соответствуетЗакрытый ключБудет использоваться для оцифровки контента (исполняемый код, ресурсы, такие как изображения и файлы перьев, не подписаны)подпись(CodeSign) - использовать алгоритм хеширования для генерации контентарезюме(digest)。

Xcode требует авторизации при подписи с закрытым ключом, соответствующим указанному сертификату.После выбора [Всегда разрешать] окно подтверждения авторизации больше не будет появляться при использовании закрытого ключа для подписи в будущем.

3.Verify Code Signature with Certificate

  • Если открытый ключ сертификата может успешно расшифровать сводку содержимого (подпись) приложения (исполняемый код), это доказывает, что это приложение действительно выпущено сертифицированным разработчиком, то есть источнику доверяют;
  • Затем используйте алгоритм хеширования для вычисления дайджеста для самого приложения (исполняемого кода). Если он соответствует дайджесту, полученному на предыдущем шаге, это доказывает, что приложение (исполняемый код) не было подделано, то есть содержимое завершено.
  • Проверено соответствие CodeSign на основе профиля обеспечения;
  • Проверить надежность и целостность приложения на основе сертификата;
  • При запуске идентификатор устройства (UUID) реального устройства должен быть в профиле обеспеченияProvisionedDevicesсписок авторизации.

1. Xcode export account (* .developerprofile) илиФайл PKCS12 (* .p12)

  • Выберите адрес электронной почты, соответствующий учетной записи, в списке идентификаторов Apple ID и нажмите ☸ | Экспорт учетных записей после + -в экспорт *, который содержит информацию об идентификаторе учетной записи / подписи кода / профилях обеспечения.developerprofileФайл (экспорт профиля разработчика) используется для разработки Xcode на других компьютерах (импорт учетной записи).
  • Выберите запись «Signing Identity», которую вы хотите экспортировать, нажмите «+ + at | Export» в нижней части столбца, вы должны ввести пароль и вам необходимо авторизовать ключ экспорта «privateKey» из цепочки для ключей для экспортаCertificates.p12。

/ Library / MobileDevice / Provisioning \ Profiles], где реальное имя профиля обеспечения равно $ (UUID) .mobileprovision, например, "2488109f-ff65-442e-9774-fd50bd6bc827.mobileprovision", где <key> Name </ key> - это родовое имя описания, видимое в Xcode

2. Брелок Доступ к экспортуPKCS12Файл (*.p12)

Выберите сертификат для экспорта или его закрытый ключ в разделе «Связка ключей» | «Сертификаты», щелкните правой кнопкой мыши «Экспорт» или «Экспорт» в меню «Файл» | «Экспорт элементов».Certificates.p12——PKCS12 file holds the private key and certificate。

Дважды щелкните файл Certificates.p12 (введите пароль, если у вас есть пароль) на других компьютерах Mac, чтобы установить общий сертификат. После получения общего сертификата зарегистрируйте устройство iOS для отладки под именем учетной записи разработчика на веб-сайте разработчика и загрузите файл профиля обеспечения отладочного устройства iOS, авторизованного соответствующим сертификатом, перед разработкой и отладкой на реальном устройстве iOS. ,

1.no such provisioning profile was found

2.No identities from profile

Параметры сборки | Профиль обеспечения CodeSigning, после выбора локально установленного профиля обеспечения, в раскрывающемся меню «Идентификация подписи кода» появляется выпадающий списокNo identities from profile “…”or No identities from keychain.

Сертификаты разработчика в профиле обеспечения указанного UDID конфигурации XCode не существуют в локальном KeyChain (No identities are available) Или несовместимый (закрытый ключ в KeyPair отсутствует), вам нужно перейти на веб-сайт, чтобы проверить правильность конфигурации App ID-Certificate-Device в ProvisioningProfile. Если это общая учетная запись (* .developerprofile) или общий сертификат (* .p12), предоставленный кем-то другим, обязательно экспортируйте закрытый ключ в соответствующую пару ключей. При необходимости исправьте это непосредственно в проблеме Исправления XCode (это может автоматически генерировать iOS Team ProvisioningProfile).

3.Code Signing Entitlements file do not match profile

"Invalid application-identifier Entitlement" or "Code Signing Entitlements file do not match those specified in your provisioning profile.(0xE8008016)."

(1)Проверьте, соответствует ли значение ключа «Группы доступа цепочки для ключей» в файле * .entitlements, указанном в соответствующей версии (Debug), элементу Entitlements в ProvisioningProfile (последний обычно является префиксом / семенем первого).

(2) Вы также можетеПрава соответствующей версии (Debug) в профиле обеспечения параметров сборки | подписи кода оставлены пустыми.

4. Ответ конфигурации XCode иногда не столь своевременен, вы можете обновить, сбросить соответствующий переключатель элемента конфигурации (если есть) или перезапустить XCode, чтобы попробовать.

В хранилищах доверия содержатся доверенные корневые сертификаты, предустановленные в iOS, macOS, watchOS и tvOS.

Сведения о хранилище доверия и сертификатах

В каждом хранилище доверия содержится три категории сертификатов.

    устанавливают цепочку доверия для проверки других сертификатов, подписанных доверенными корнями (например, для установки безопасного соединения с веб-сервером). Когда ИТ-администраторы создают профили конфигурации, нет необходимости включать эти доверенные корневые сертификаты. ненадежны, но они не блокируются. Если используется один из таких сертификатов, пользователю будет предложено выбрать, доверять ему или нет. считаются опасными и никогда не будут доверенными.

Выполните следующие действия, чтобы найти версию хранилища доверия, установленного на вашем устройстве iOS.

  1. Перейдите в меню «Настройки» > «Основные» > «Об устройстве».
  2. Прокрутите список до конца.
  3. Выберите пункт «Настройки доверия сертификатов».

Выполните эти действия, чтобы найти версию хранилища доверия, установленного на компьютере Mac.

  1. В программе Finder последовательно выберите пункты Переход > Переход к папке.
  2. Введите или вставьте «/Система/Библиотеки/Security/Certificates.bundle/Contents/Resources/TrustStore.html» и нажмите «Перейти».
  3. В появившейся папке откройте TrustStore.html. Версия хранилища доверия находится в правом верхнем углу страницы.

В этой статье перечислены сертификаты для хранилища доверия версии 2018071800, актуальной для iOS 12, macOS 10.14, watchOS 5 и tvOS 12.

Доверенные сертификаты

Недоверенные сертификаты

Название сертификата Кем выдан Введите с клавиатуры Размер ключа Алгоритм подписи Серийный номер Срок действия Политика EV Отпечаток пальца (SHA-256)
TRIAL PKIoverheid Organisatie TEST CA - G2 TRIAL PKIoverheid TEST Root CA - G2 RSA 4096 бит SHA-256 01 31 05 FF 16:00:39 24.03.2020 г. Не EV EA 0E AA 71 08 93 CC 16 04 7B F2 1C 62 4B DC 6F 0A 7C F1 10 67 52 E9 AD AE B0 19 BB 90 D9 EB 1F

Заблокированные сертификаты

Архивированные хранилища доверия

В этой статье содержатся сведения о хранилищах доверия для более ранних версий iOS, macOS, watchOS и tvOS.

Общество быстрыми темпами продвигается к оцифровке различных онлайн-процедур, а также к отказу от посещения физических точек для проведения другой регистрации. Чтобы иметь возможность аутентифицироваться в Интернете перед любой организацией или компанией, необходимо иметь сертификат, подтверждающий, что это вы. Это похоже на идентификацию с помощью документа, удостоверяющего личность, но в онлайн-мире. В этой статье мы объясним, как установить цифровой сертификат.

Что нужно знать о цифровом сертификате

Перед установкой цифрового сертификата важно точно знать, что вы собираетесь вводить самостоятельно. IPad or iPhone. Ниже мы расскажем, что вам следует знать об этом.

Что такое цифровой сертификат

Цифровой сертификат - это компьютерный файл, имеющий электронную подпись специализированного поставщика услуг. Обычно мы всегда ссылаемся на сертификаты открытых ключей, которые выдаются публичным органом, который проверяет подпись с конкретным подписывающим лицом. В этих сертификатах есть ключ, который связан исключительно с вашей личностью, как своего рода DNI. И дело в том, что в собственном DNI можно найти эти сертификаты, которые можно обновить, чтобы гарантировать безопасность, а также его подлинность.

Но они не ограничиваются электронными DNI, поскольку другие государственные органы также делают этот тип полностью цифровых файлов доступными для пользователей, которые могут храниться и запускаться на iPad или iPhone. Без сомнения, если вам нужно идентифицировать себя перед администрацией или какой-либо частной компанией, этот сертификат всегда должен быть установлен, чтобы ваша личность могла быть проверена.

Основное использование на ваших устройствах

Цифровые сертификаты имеют жизненно важное значение сегодня, особенно в контактах с государственной администрацией. Это позволяет вам идентифицировать себя в Интернете удобным и, прежде всего, безопасным способом для выполнения различных процедур, как если бы вы выполняли их лично. Ваша подпись будет иметь полную юридическую силу при выполнении различных соответствующих процедур, которые обычно вынуждают вас лично пойти в офис.

В случае с компьютером эту систему процедур всегда можно выполнить с помощью самого электронного DNI. Это заставляет вас всегда иметь под рукой считывающее устройство, чтобы ввести его и поставить цифровую подпись. В случае с iPad или iPhone это невозможно из-за ограничений самой операционной системы. В таких ситуациях всегда необходимо выбирать цифровые сертификаты, которые можно удобно установить, как если бы это был профиль конфигурации, например бета-версия. Всегда настоятельно рекомендуется установить их.

Вы можете использовать iPad или iPhone для выполнения любого типа управления данными или запроса. Во время инициирования процесса в данный момент можно обнаружить сертификат в данный момент, чтобы его было удобно идентифицировать. Очевидно, вы также должны быть очень осторожны с этим типом сертификата, поскольку он включает в себя всю вашу личную информацию и в любое время может использоваться для выдачи себя за вашу личность. Но он не ограничивается государственным управлением, но также может использоваться, например, перед различными частными организациями для подписания контрактов.

Установка цифрового сертификата

После того, как вы примете во внимание необходимость установки сертификата, поскольку это полезно для выполнения различных процедур, мы расскажем вам, как это можно сделать как на iPad, так и на iPhone.

Запросить сертификат на компьютере

Перед установкой сертификата на iPad или iPhone его необходимо получить на компьютере. Если вы находитесь в Испании, наиболее распространенным и наиболее часто используемым сертификатом является сертификат FNMT (Фабрика национальной валюты и почтовых марок). Этот сертификат нельзя загрузить непосредственно на iPad, но вам придется завершить процесс через его веб-сайт на Мак или ПК. Это связано с тем, что подпись всегда должна производиться через электронный DNI, поэтому необходимо подключиться к совместимому считывателю, а также иметь необходимое программное обеспечение для подписи процесса сертификата.

После того, как вся процедура будет выполнена перед администрированием с Mac, вы сможете загрузить зашифрованный файл, который можно установить на iPad. Важно помнить, что при загрузке этих файлов они всегда будут зашифрованы. Важно, чтобы вы знали пароль, который собираетесь выбрать, чтобы установить их на мобильное устройство, поскольку они попросят вас ввести пароль, который вы выбрали.

Перенесите его на свое устройство

Когда у вас есть электронный сертификат на вашем Mac, самое время перенести его на ваш iPad или iPhone. Он может быстро проходить по различным каналам, доступным в экосистеме. Один из них - AirDrop, наиболее используемый всеми и его можно использовать в том случае, если у вас есть Mac, на котором вы выполнили эту обычную процедуру.

Если вы запросили сертификат через Windows ПК, существуют и другие системы, позволяющие осуществить перевод. Среди наиболее известных - WeTransfer или отправка по e-mail. Хотя вы также можете использовать другие системы передачи, такие как WhatsApp или Telegram.

Выполните установку

Если у вас есть файл цифрового сертификата на вашем iPad или iPhone, вы можете с комфортом установить его. Очевидно, у вас будет этот файл в приложении «Файлы», чтобы иметь возможность сохранять его, когда это возможно, для его установки. Чтобы установить его, первое, что вам нужно сделать, это щелкнуть файл, как если бы вы хотели открыть его в обычном режиме. На данный момент iPadOS или Ios обнаружит его как профиль, как если бы это была установка новой бета-версии.


Как только это будет сделано, войдите в приложение «Настройки». Вверху вы найдете раздел с надписью «Загруженный профиль», на который вы должны щелкнуть. Здесь вы увидите информацию о сертификате, который вы собираетесь установить. Имейте в виду, что во многих случаях сертификат можно отнести к категории ненадежных ресурсов. Но если вы скачали его с официального сайта, этому сертификату можно без проблем доверять. Как только все это будет проверено в окне конфигурации, вы должны щелкнуть в правом верхнем углу, где написано «Установить».

В качестве меры безопасности в данный момент будет запрошен PIN-код устройства, которое вы используете для его разблокировки. Затем будет сообщено, что сертификат не был подписан, но это что-то совершенно безразличное, и что вы должны проигнорировать, снова нажав Установить в правом верхнем углу, подтвердив это действие, если вы уверены, что загрузка была произведена с надежный сайт. Затем операционная система попытается расшифровать его содержимое, чтобы получить доступ к сохраненной информации, но для этого ей потребуется пароль, который шифрует данные. Пришло время ввести его, и с этого момента вы сможете использовать любой тип цифрового сертификата, который вы установили.


Использовать установленный цифровой сертификат

После того, как вы установили сертификат, пора использовать его на разных веб-сайтах. Использование практически автоматическое, поскольку установка выполняется в корневые файлы любого установленного вами браузера. Это значительно упрощает доступ к нему для всех и совсем не является громоздким. Кроме того, когда установка будет завершена, для ее правильной работы больше не нужно выполнять другие задачи. Можно сказать, что после того, как он установлен, вы можете полностью беспокоиться о нем, поскольку он всегда будет там, пока вам не придется обновлять его в обычном режиме в течение двух лет.

В Apple Developer Center с незапамятных времен применяется довольно мудреная система сертификации ваших приложений на каждом из ключевых этапов — разработка, тестирование и публикация.

Зачастую при первом погружении в эту систему у начинающих (и не только) разработчиков возникают серьезные проблемы с пониманием того, как функционирует Apple Developer Center (будем называть его «девцентр» для простоты). В результате, мне в процессе профессиональной деятельности не раз приходилось наблюдать на новых местах работы огромные свалки из профилей и сертификатов в девцентре, в результате чего приходилось приступать к «разбору завалов».

При этом, в сети довольно не такой большой выбор материалов на эту тему. Конечно, в официальной документации Apple все хорошо структурировано и очень подробно описано, но зачастую просто не хватает времени на изучение такого количества материала. Как правило, хочется быстро понять, что именно и в каком порядке нужно сделать для корректной работы приложения на этапах разработки, тестирования и при публикации его в магазин App Store. В русском же сообществе подобных материалов, собранных в одном месте и в удобном доступе, я не видел вовсе, поэтому и решил написать эту статью. Для всех интересующихся — добро пожаловать под кат.

Мы разберем процесс управления вашим приложением в Apple Developer Center от его создания до публикации в магазине App Store. Мы будем говорить только о базовых вещах, таких, как разработка, тестирование и публикация, а также обсудим APNs (Push Notifications).

Отмечу тот факт, что далее я буду описывать принцип работы девцентра по состоянию на 31 марта 2016 года, поэтому если вы читаете эту статью позднее — все уже могло измениться.

Собственно, для работы нам нужно следующее:

В девцентре для полноценной работы с вашими приложениями нам понадобятся только два пункта:

  • Certificates, Identifiers & Profiles. Раздел обеспечивает управление всей системой сертификации ваших приложений. Работу именно с этим разделом мы и будем разбирать в данной статье.
  • iTunes Connect. Дает доступ к внутреннему и внешнему тестированию через TestFlight, а также к управлению публикацией ваших приложений в App Store.

Давайте подробно разберем понятия, лежащие в основе функционирования девцентра Apple.

Сертификаты (Certificates)

Этот раздел дает доступ к управлению сертификатами, которыми обладает ваша учетная запись Apple ID. Каждый из этапов, которые вы будете проходить, будь то разработка, тестирование или публикация, включая все значимые составляющие экосистемы Apple вроде Push Notifications, требует обязательного наличия актуального (действующего, Active) сертификата. Говоря проще, ваше приложение не сможет даже чихнуть, не имея на то разрешения из Apple Developer Center. Чуть подробнее о подразделах:

  • Pending. Запрошенные вами сертификаты, находящиеся в процессе обработки от Apple. Для дев (Development) и прод (Production) сертификатов конкретно в моем случае этот подраздел чаще всего пустует.
  • Development. Дев-сертификаты, обеспечивающие возможность отладки вашего приложения на конкретных девайсах (одном либо нескольких) через Xcode, а также создание дев-сборок «в отладочном режиме». Более подробно поговорим о них чуть ниже.
  • Production. Прод-сертификаты, обеспечивающие работоспособность приложения при тестировании в TestFlight и при публикации в магазине App Store.

Сертификаты типа «Development»

В первую очередь, нужно знать, что девелоперский сертификат всегда привязывается к одной конкретной машине. Поэтому для отладки на вашем Mac вам понадобится доступ к этому сертификату. Тут есть варианты. Например, если, вы устроились на работу iOS-программистом, и в ваши задачи входит отладка на устройствах (как правило, так и есть), то есть два пути решения (какой из них выбирать — зависит от вас и условий работы в вашей компании):

  • Создать отдельный дев-сертификат конкретно для вашего Mac, скачать и установить его. Плюс понадобится сгенерировать и установить на свой Mac девелоперский профиль на основе этого сертификата, но об этом позже.
  • Либо экспортировать с машины, на которую заведен сертификат, файл *.p12/*.pfx (это можно сделать в связке ключей Apple). Такой файл защищается паролем при экспорте, и, зная этот пароль, информацию о сертификате можно будет импортировать на любом другом Mac. В этом случае отпадает необходимость создавать для каждого Mac отдельные Development-сертификаты и отдельные Development-профили. Небольшая оговорка: профиль хоть и должен быть сгенерирован для той машины, на которую выпущен экспортируемый сертификат, но в этот профиль понадобится добавить UDID вашего устройства прежде, чем выдавать профиль вам для установки, иначе ничего работать не будет.

Наличие дев-сертификата означает, что, скачав его и установив двойным кликом в Связку Ключей (Apple Keychain), вы сможете запускать ваше приложение напрямую через Xcode в режиме отладки на устройстве, подключив это устройство проводом к вашему Mac. Перечень разрешенных конкретных устройств Apple нужно будет обязательно указать при генерации девелоперского профиля, но об этом позже. Также, вы сможете собрать и экспортировать сборку с дев-профилем, но стоит учесть, что в этом случае ваше приложение не будет иметь доступа к продакшн-возможностям (APNs будет только в режиме sandbox, например).

Сертификаты типа «Production»

Для начала на всякий случай поясню, что сборкой iOS-приложения называют *.ipa-файл, архив, выпускаемый с соблюдением правил сертификации Apple через команду Project — Archive в Xcode.

Теперь о сертификации. Прод-сертификаты обеспечивают функционирование различных подсистем приложения в «боевых» условиях, то есть в магазине App Store, а также на устройствах, где выполняется внутреннее и внешнее тестирование приложения через TestFlight. Здесь, по аналогии с Development-сертификацией, есть тип App Store & Ad Hoc Production, а также тип APNs Production, использующийся веб-сервером для рассылки push-уведомлений. Если вы планируете выпустить приложение, поддерживающее работу с пушами, то вам понадобятся оба сертификата, как App Store & Ad Hoc (на основе которого вы сделаете сборку и отправите приложение в iTunes Connect), так и APNs Production (его вы отдадите серверу, а тот воспользуется им для получения прав на рассылку пушей). В довесок к уже упомянутым подсистемам есть еще несколько других, обеспечивающих доступ к Wallet, Apple Watch и так далее, но их обзор выходит за рамки данной статьи.

Очень часто возникает вопрос о том, в чем же разница между App Store и тем самым Ad Hoc. Ранее они были представлены разными сертификатами, с некоторого времени Apple объединила их в единое целое, за что им большое спасибо. Чуть подробнее об этих разновидностях:

  • Выпуск сборок типа App Store. Обеспечивает возможность тестировать приложение в TestFlight, как в режиме внутреннего, так и в режиме внешнего тестирования. Также дает возможность опубликовать приложение в App Store.
  • Выпуск сборок типа Ad Hoc. Термин «Ad Hoc» можно перевести как «специальный», «для конкретной цели». Такой тип сертификации обеспечивает возможность запускать ваше приложение (включая все нужные подсистемы типа APNs) в боевых условиях, но только на конкретных девайсах, и без участия Xcode в процессе запуска. Другими словами, Ad Hoc необходим, если вы захотите поставить ваше приложение на стороннее устройство, не имея к нему прямого доступа (то есть не подсоединяя его проводом к вашему Mac, так как в этом случае вам бы хватило Development-сертификата), но при этом и не выкладывая приложение в iTunes Connect. Такой сертификат используется при создании специального Ad Hoc-профиля, о котором пойдет речь чуть позже.

Intermediate Certificates

Некоторое время назад Apple внесла изменения в логику работы девцентра и своей системы сертификации, после чего на большинстве компьютеров пропала возможность делать сборки приложений, несмотря на наличие активных дев- и прод-сертификатов и актуальных профилей. Причина этого была в том, что Apple добавила дополнительное требование, чтобы на вашем Mac в связке ключей был установлен специальный сертификат под названием «Worldwide Developer Relations Certificate Authority». Он устанавливается автоматически с новыми версиями Xcode, но те, у кого Xcode уже был установлен ранее, просто должны были установить этот сертификат вручную, скачав его по прямой ссылке из секции Intermediate Certificates в девцентре Apple, после чего проблемы со сборками исчезали. Больше никакой смысловой нагрузки этот сертификат не несет.

Идентификаторы (Identifiers)

Данный раздел обеспечивает управление идентификаторами. Для вашего приложения в минимальном исполнении понадобится App ID, управление которыми доступно в одноименном подразделе.

В буквальном переводе «App ID» означает «идентификатор приложения», что полностью отражает его суть. Любое ваше приложение, которое вы хотите отлаживать на устройстве Apple, тестировать через TestFlight и/или публиковать в магазин App Store, должно обладать собственным уникальным именем, по которому его можно однозначно идентифицировать среди тысяч других приложений. При добавлении нового App ID вам будет предложено ввести несколько элементов:

  • App ID Description. Имя вашего приложения. К примеру, если ваше приложение называется Mail Printer, то прямо так его и записываем в это текстовое поле.
  • App ID Prefix. Префикс вашего приложения, он выдается вам автоматически и будет общим для конкретной команды Apple Team, где подключена и активна Apple Developer Program.
  • App ID Suffix. Здесь нам понадобится выбрать Explicit App ID, чтобы указать бандл (bundle) приложения. Это идентификатор, обычно имеющий вид com.mycompany.myappname, где mycompany — имя вашей компании или вашего домена. Например, com.homecompany.MailPrinter. Обращаю ваше внимание, что точно такой же бандл должен быть выставлен в настройках таргета (Target) вашего приложения в Xcode (секция настроек General, поле Bundle Identifier).
  • App Services. Здесь вам нужно отметить те сервисы, которые вы планируете использовать в вашем приложении. По умолчанию там отмечены только Game Center и In-App Purchase, их использование обязательно, удалить их нельзя. Остальные сервисы подключайте по мере необходимости.

Устройства (Devices)

Профили (Provisioning Profiles)

Дословно название этого раздела переводится как «Профили обеспечения». Чуть более развернуто я бы описал понятие «профиль» как «Специальный файл, обеспечивающий доступ к некоторой функциональности в конкретной сборке вашего приложения». В данном разделе девцентра вы можете управлять вашими профилями, обеспечивая себе возможность выпускать сборки приложения для различных целей, то есть «профилировать» его. По сути, профиль является результатом объединения двух (иногда трех) компонентов:

Профили типа «Development»

Это профиль для разработки, то есть его основное назначение — отладка вашего приложения на конкретных устройствах через Xcode с прямым подключением устройства проводом к вашему Mac. Дев-профили представлены двумя видами:

  • iOS App Development. Требует указания перечня разрешенных устройств из раздела Devices.
    Используется для отладки iOS-приложений.
  • tvOS App Development. Аналогично, только используется для tvOS-приложений.

Профили типа «Distribution»

Эти профили используются для выпуска сборок вашего приложения для различных целей. Продакшн-профили представлены четырьмя видами:

  • App Store. Используется для тестирования (как внутреннего, так и внешнего) в TestFlight, а также для выпуска приложения в App Store.
  • tvOS App Store. Аналогично предыдущему, только для tvOS.
  • Ad Hoc. Требует указания перечня разрешенных устройств из раздела Devices.
    Используется, если вы хотите выпустить сборку, которую можно будет поставить в режиме «Production», но только на некоторых устройствах. Реальная ситуация, когда это может понадобится, например, следующая. Вы разрабатываете приложение, а в процессе работы заказчик попросил у вас «дать ему пощупать приложение» на своем Apple-устройстве. В iTunes Connect для активации внешнего тестирования вы еще выходить не готовы, но просьбу заказчика нужно выполнять — вот тут как раз и пригодится Ad Hoc-профиль, сгенерированный на базе прод-сертификата App Store & Ad Hoc Production Certificate. Важный момент: в моем случае часто возникали проблемы при экспорте сборок подобным способом, если в Xcode не был также установлен и Development-сертификат. Ошибки были разного рода, от невозможности подписать сборку до абсурдного «App ID is not available», хотя это фактически не так (замена на другой бандл ничего не давала). Поэтому, по моему предположению, для удачного экспорта Ad Hoc-сборок необходимо, чтобы, помимо Ad Hoc-профиля, был также установлен и дев-сертификат с соответствующим профилем.
  • tvOS Ad Hoc. Аналогично предыдущему, только для tvOS.

Этот сервис предоставляет вам возможность управлять внутренним и внешним тестированием в TestFlight, а также выкладывать приложение в App Store. Рассмотрение этого процесса выходит за рамки данной статьи, упомяну лишь тот факт, что для корректной работы этому сервису необходимы сборки, созданные на базе профиля типа Distribution — App Store (для iOS либо tvOS). Другие типы профилей здесь не поддерживаются.

По сути, при получении доступа к девцентру с активной Apple Developer Program ваш алгоритм действий должен сводиться к следующему:

Читайте также: