Подтвердить что ты не робот

Понимание профилей и сертификатов Provisioning в iOS

Является ли мое понимание относительно профилей подготовки, правильность сертификатов (во время разработки)?

  • Приложения устанавливаются с сертификатом разработчика с xcode при установке на устройство? Сертификат должен существовать в профиле обеспечения (хранится в IPad/IPhone), а deviceid установочного устройства также должен присутствовать в профиле подготовки.
  • Поэтому, когда вы нажимаете на приложение, когда устройство не подключено к вашему мактору разработчика, сертификат подписанного приложения должен соответствовать одному в профиле подготовки (который существует на устройстве), а идентификатор устройства должен также соответствовать одному в настройке профиль, только тогда приложение будет работать.
  • Когда устройство подключено к Mac, на котором выполняется xcode, и вы хотите отлаживать его, тогда публичный + закрытый ключ, хранящийся в цепочке ключей, входит в игру, xcode пытается разблокировать открытый + закрытый ключ, хранящийся в цепочке ключей, используя сертификат и следовательно, идентифицирует mac, а также выполняет вышеописанную марку, и если это так же верно, то вы можете успешно отлаживать
4b9b3361

Ответ 1

Прежде всего, выбор профиля инициализации в Xcode вводит в заблуждение; здание в Xcode фактически не имеет ничего общего с профилями! Фактически, Xcode просто сопоставляет сертификат открытого ключа в профиле с одним в вашей цепочке ключей, а затем использует закрытый ключ для подписи исполняемого файла. Это подписание стандартного исполнения Mach-O. Именно поэтому они изменили его в Xcode 5, чтобы быть более четким. То же, что и ошибки в профилях (идентификация подписи не найдена) - это означает, что Xcode не смог найти закрытый ключ, соответствующий любому из открытых ключей в профиле.

Ваш личный сертификат разработчика - это стандартный материал PKI; ваш Mac отправляет запрос Apple на сертификат таким образом, что Apple не знает ваш закрытый ключ (аналогично запросам SSL-сертификата). Apple генерирует сертификат, а цепочка ключей сопоставляет его с исходным запросом, предоставляя вам общедоступные и закрытые ключи для сертификата. Когда профиль создается для отдельного разработчика, этот открытый ключ разработчика указан. Когда создается профиль команды, включаются открытые ключи для всех выбранных членов команды. Это позволяет членам команды подписывать исполняемый файл, но имя подписывающего лица будет именем команды, а не отдельным.

Когда iOS запускает любой исполняемый файл, он сначала проверяет подпись. Если подпись подписана Apple App Store, она запускается.

Если нет, тогда он проверяет установленные профили подготовки. Профили включают: 1. Список сертификатов разработчика 2. Идентификатор приложения 3. Права на предоставление (например, iCloud, Game Center и т.д.). 4. Список UDID устройств 5. Все это завершено и подписано Apple.

Профиль проверяется, чтобы убедиться, что он был подписан ключом Apple (с использованием открытого ключа Apple). Затем он подтверждает, что текущий идентификатор UDID устройства находится в списке. Он также проверяет соответствие идентификатора приложения (хотя допускаются подстановочные знаки). Затем он проверяет подпись Mach-O на список открытых ключей сертификата разработчика. Если какой-либо из них соответствует, исполняемый файл запускается и получает перечисленные права. Если нет, он заблокирован.

Я настоятельно рекомендую открыть файл .mobileprovision в текстовом редакторе; вы узнаете много!