Перейти к содержимому

Как удалить сертификат разработчика ios

  • автор:

Как удалить сертификат разработчика ios

Мне кажется перерыл уже весь интернет, но так и не разобрался.
Стоит вот такая задача: Есть ipa файл который «вытянут» с iPhone с помощью iMazing. Есть купленный сертификат разработчика в Lazyshop. Каким образом можно удалить подпись из приложения и подписать его своим сертификатом?

P.S. Варианты просто ввести пароль от apple id на новом устройстве не рассматриваются. Интересна техническая возможность переподписать приложения.
P.P.S. iOS App Signer с задачей не справляется.

29.09.22, 10:56 | #2


Постоянный
Реп: ( 369 )
tsodya @ 29.09.22, 01:34
Есть ipa файл который «вытянут» с iPhone с помощью iMazing

iMazing вытягивает с донора не совсем ipa (попробуйте его через itunes поставить)
Как вы из его архива ipa получали?

29.09.22, 22:11 | #3


Начинающий
Реп: ( 1 )
t.r.o.n. @ 29.09.22, 14:56
iMazing вытягивает с донора не совсем ipa (попробуйте его через itunes поставить)

При нажатии «экспорт .ipa» вытягивает. Через Xcode замечательно встает на любой телефон, но требует входа в аккаунт. После входа работает.

30.09.22, 09:46 | #4


Постоянный
Реп: ( 369 )
tsodya @ 29.09.22, 22:11
Через Xcode замечательно встает на любой телефон

Там иной механизм установки вообще и работы с подписями. Поэтому о тунце и сказал (Apple Configurator).
Ранще пробовал — тунец отказывался такие ipa ставить

Сообщение отредактировал t.r.o.n. — 30.09.22, 09:47

03.11.22, 08:46 | #5


Постоянный
Реп: ( 8 )
tsodya @ 29.09.22, 01:34
Каким образом можно удалить подпись из приложения и подписать его своим сертификатом?
11.11.22, 21:23 | #6


Постоянный
Реп: ( 2 )

Для удавления подписи, нужен рут т.е. Джейл, и после использовать декриптор, на форуме не все перечислены, поиск в ютубе например frida decrypt посмотри

Как удалить корневые сертификаты с вашего iPhone или iPad

сертификаты-корень-удалить

Многие из вас знают недавние споры по поводу Apple и корневых сертификатов. Компания из Купертино устранила большое количество блокировщиков контента из App Store, которые основывали свою работу на установке корневых сертификатов, поскольку они представляют потенциальный риск для конфиденциальности и безопасности пользователей, по крайней мере, они заявили об этом от Apple, чтобы оправдать его удаление. Тем не менее, Эти корневые сертификаты довольно легко удалить с наших устройств через приложение «Настройки iPhone», Сегодня в iPhone News мы научим вас, как их устранить менее чем за минуту и ​​без глубоких знаний iOS.

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

Как удалить корневые сертификаты с iPhone

  1. Входим в приложение Настройки с устройства iOS.
  2. Нажмите на раздел Общие.
  3. Выбираем вариант внизу Профили.
  4. Мы сможем наблюдать за профилями, если ни один не появится или тот, который появляется, является нашим доверием, лучше, нам не о чем беспокоиться или корневых сертификатах, которые ставят под угрозу нашу безопасность.
  5. Нажмите на профиль, и подробности откроются.
  6. Оказавшись внутри, внизу становится красным «удалить профиль«, так просто.

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

Содержание статьи соответствует нашим принципам редакционная этика. Чтобы сообщить об ошибке, нажмите здесь.

Полный путь к статье: Новости iPhone » iPhone » Учебники и руководства » Как удалить корневые сертификаты с вашего iPhone или iPad

8 комментариев, оставьте свой

Оставьте свой комментарий Отменить ответ

Диего т сказал

тому назад 8 лет
У меня нет опции профилей

Кокаколо сказал

тому назад 8 лет

тонело33 сказал

тому назад 8 лет

Он должен появиться как раз перед последней опцией «сбросить». я получил
— Синхронизация с iTunes через Wi-Fi
— VPN — Сброс настроек Теоретически, если у вас есть профиль VPN, он будет отображаться в разделе VPN как «профиль».
У меня нет ничего ниже VPN, поэтому у меня нет установленного профиля, но я помню, как создавал его, когда у меня был взломанный iPhone 4s

Дани сказал

тому назад 8 лет
Как удалить профили, в которых нет возможности удалить профиль

Рауль сказал

тому назад 8 лет

Я СПРАШИВАЮ ТО ЖЕ, КАК ДАНИ
Я не видел опции «Удалить профиль», там говорилось, что он заблокирован и не может быть удален! Это так??

Лотарингия сказал

тому назад 6 лет
У меня тоже самое, профили не появляются, где их можно удалить .

Самуил сказал

тому назад 6 лет

Вы смогли удалить профили mdm с iphone или iPad, я не смог, он не позволит мне, и если я подключу его к компьютеру, он его не распознает

Ашшурбанапал сказал

тому назад 1 год

Привет
У меня iphone XS Max, и я не вижу опции «Профили» для удаления сетей Securelogin aruba.
Есть ли другой способ выполнить это действие? Большое спасибо. Приветствие.

Кратко о главном

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

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

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

Что мы будем разбирать?

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

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

Что нам понадобится?

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

  • Рабочий Mac, либо PC с виртуальной машиной и установленной на ней Mac OS.
  • Действующий Apple ID. Его всегда можно бесплатно зарегистрировать на официальном сайте компании Apple.
  • На вашем Apple ID (либо у одной из компаний, которая добавила ваш Apple ID в свою команду) должна быть активирована так называемая Apple Developer Program — оплачиваемая раз в год «подписка», дающая вам доступ к Apple Developer Center и возможность публиковать ваши приложения в App Store. На текущий момент стоимость в пересчете на год невелика и составляет в районе $99 за год пользования.
  • И, конечно же, навыки разработки под iOS.

Ориентировка по разделам

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

  • 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)

В этом разделе размещено управление всеми устройствами Apple, которые вы можете использовать в рамках вашей Apple Developer Program. Есть ограничение, максимум 100 зарегистрированных девайсов одного типа (iPhone, iPad и так далее) на одну учетную запись в год, обычно этого более чем достаточно. При необходимости отладки на устройстве или выпуска Ad Hoc-сборки просто добавляйте сюда UDID нужных вам девайсов и используйте их при генерации профилей.

Профили (Provisioning Profiles)

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

  • Активного сертификата определенного типа (раздел Certificates). С помощью сертификата профиль подтверждает, что ваше приложение имеет право на выполнение определенной группы действий.
  • App ID (раздел Identities). Определяет конкретное приложение, для которого выпускается профиль.
  • В некоторых случаях, еще нужен список зарегистрированных устройств (раздел Devices). Определяет перечень устройств, на которые разрешено устанавливать вашу сборку. Используется только с некоторыми типами профилей.
Профили типа «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.

Вкратце об iTunes Connect

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

Резюмируем

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

  1. Определиться, с каких конкретно машин будет производиться прямая отладка на устройствах через Xcode. Определить среди них основную машину (это может быть Mac разработчика, с которого чаще всего планируется производить отладку). Сгенерировать для основного Mac сертификаты группы Development, скачать и установить их. По необходимости, экспортировать информацию об этих сертификатах в файлы *.p12/*.pfx, которые потом можно будет разослать на другие целевые машины, где также планируется проводить отладку приложений.
  2. Узнать, с какой машины планируется собирать сборки для тестирования и/или публикации в App Store. Сгенерировать для нее сертификат группы Distribution. Повторить процедуру с экспортом из предыдущего пункта, если требуется поддержка нескольких машин.
  3. Проконтролировать наличие нужного идентификатора приложения в разделе App IDs и соответствие указанного там бандла значению поля Bundle Identifier в проекте в Xcode, при наличии несовпадения — устранить его либо в девцентре, либо в Xcode (где именно это править — зависит от вашей конкретной ситуации).
  4. Убрать (Revoke/Delete) все сертификаты, а затем и профили, которые обладают пометкой Expired (истекший сертификат) или Invalid (некорректный профиль). Также отмечу, что, в отличие от сертификатов, профили можно редактировать. То есть, сгенерировав новые сертификаты, вместо удаления старых профилей вы можете просто отредактировать их, указав им новые сертификаты в качестве подписи.
  5. Если профилей нет, либо не хватает нужных, то сгенерировать необходимые профили.
  6. Скачать и установить нужные для вашей машины сертификаты и профили на свой компьютер. Установка производится двойным кликом на файле. Сертификаты будут установлены в Связку Ключей (Apple Keychain), профили — в Xcode.
  7. Указать в настройках проекта Xcode нужные вам сертификаты в секции Build Settings — Code Signing Identity — Development/Distribution, а также указать необходимый Provisioning Profile.
  • Произвести запуск в режиме отладки (Project — Run) через Xcode на разрешенном устройстве, используя дев-профиль.
  • Создать сборку (Project — Archive с выбранным целевым устройством Generic iOS Device) на базе продакшн-профиля Ad Hoc для установки на конкретные устройства (такую сборку можно будет выслать, например, по электронной почте заказчику, чтобы он установил ее на свое разрешенное устройство).
  • Создать сборку аналогично предыдущему пункту, но на базе продакшн-профиля App Store. Это будет сборка для внутреннего и/или внешнего тестирования, а также для выкладки в App Store, которую можно использовать в iTunes Connect.
  • ios
  • ios development
  • ios разработка
  • ios programming
  • ios sdk
  • xcode
  • apple
  • apple store
  • app store
  • app store program development
  • apple developer program
  • apple developer center
  • apple development
  • objective-c
  • Разработка под iOS
  • Objective C
  • Xcode

Разрушая мифы iOS Provisioning, часть 2: управление сертификатами и профилями.

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

  • создать App ID
  • сгенерировать development and App Store сертификаты
  • создать development и distribution provisioning профили
  • создать схему (назовем ее App Store) в Xcode проекте
  • настроить сертификаты и профили в схеме

Provisioning

Многие задачи выполняются в разделе Provisioning в личном кабинете разработчика на сайте Apple Developer.

Если у вас уже есть оплаченный аккаунт, откройте Apple Developer website, выберете “Account” -> “Certificates, Identifiers & Profiles.”

Создание App IDs

App IDs

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

Шаги для регистрации на сайте apple разрабочика:

  1. Выберите “App IDs” под вкладкой “Identifiers”
  2. Нажмите “+” вверху списка
  3. Введите имя для App ID (используйте название приложения или название + дополнительное имя)
  4. Выберите “Explicit App ID” и введите ваш Bundle ID в текстовое поле
  5. Под “App Services” раздела, выберите сервисы нужные для вашего приложения (их можно будет отредактировать позже)
  6. Нажимаем “Continue”
  7. Если все хорошо — выбираем “Register”

Это все. Bundle ID зарегистрирован и можно генерировать профили на основе этого ID. Если в будущем вы измените Bundle ID, придется также удалить App ID (если он не будет использоваться) и пересоздать новый App ID.

Так, а в чем тогда разница между App ID и Bundle ID? В общем App ID это уникальный идентификатор приложения в экосистеме App Store, не может быть двух приложений там с одинаковыми App ID. Bunlde ID это идентификатор учетной записи разработчика (используется обратная доменная запись — com.mysite.appname).

Создание сертификатов

Я расскажу вам как создавать сертификат для App Store (другие сертификаты созадаются аналогично). Сертификат можно использовать для разработки и распространения всех ваших приложений.

Первое — нужно создать Certificate Signing Request (CSR) в личном кабинете разработчика, для этого:

Certificate Signing Request

  1. на вашем Mac откройте Keychain Access (находится тут — /Applications/Utilities).
  2. далее в Keychain Access > Certificate Assistant > Request a Certificate From a Certificate Authority.
  3. в окне введите ваш email и имя, затем выберите “Save to disk” в опции “Request is”.
  4. жмите Contunue и сохраните файл на компьютере Mac.

Теперь у на есть CSR, и мы готовы сгенерировать рабочий сертификат, для этого заходим в личный кабинет и:

certificate

  1. идем в раздел Certificates, Identifiers & Profiles > Certificates > All
  2. нажимаем “+” чтобы создать новый сертификат
  3. выбираем “iOS App Development” для создания development сертификата для отладки на зарегистрированных устройствах
  4. Continue
  5. дальше будут инструкции как сгенерировать CSR (мы уже это сделали!)
  6. загрузите запрос CSR (инструкции прилагаются)
  7. жмем на Download для загрузки сгенерированного сертификата, после этого двойным кликом мышки добавляем его в Keychain Access

Для проверки что сертификат установлен в системе, зайдите в Keychain Access > Login Keychain > Certificate, вы должны увидеть публичный и приватные ключи с префиксом “iPhone Developer” (это значит что сертификат для подписки ios приложений, у сертификатов для Mac приложений будет — “Mac development”).

“App Store and Ad Hoc” сертификаты создаются аналогично (разница в п.3 только), сертификат действителен один год, по окончании срока его нужно удалить и создать новый, при этом все связанные provisioning профили аннулируются и их также придется повторно сгенерировать.

Регистрация устройств

Тестовые устройства для отладки приложений регистрируются в помощью UDID — уникального идентификатора. Он включается в provisioning профили (создадим на следующем шаге), при добавлении/удалении нового устройства нужно повторно сгенерировать provisioning профиль. Поэтому мы сделаем этот шаг первым.

UDID устройства можно найти в iTunes или в Xcode (подключите устройство к Mac запустите Xcode, найдите в Window > Devices > ваше устройство и скопируйте UDID строку в разделе “Identifier”), это уникальный идентификатор вашего физического устройства.

Для регистрации UDID:

UDID

  1. идем в Certificates, Identifiers & Profiles > Devices > All (личный кабинет разработчика)
  2. жмем “+” для добавления нового устройства
  3. вводим имя, мы рекомендуем формат для этого “Имя/Тип устройства/Добавлен или Изменен/Дата”, удобно для больший команд
  4. вводим UDID
  5. нажимаем “Contunue”

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

Создание профилей

Provisionig профиль это ключевой момент для подписи приложения. Он определяет какие устройства имеют право запускать подписанное приложение, указывает на сертификат для подписи приложения, а также какие сервисы будут доступны для приложения на этом устройстве (iCloud, APNs и т.д).

Создать provision профиль довольно просто в личном кабинете разработчика, для этого:

  1. идем в Certificates, Identifiers & Profiles > Provisioning Profiles > All и видим список созданных профилей
  2. жмем “+” для добавления нового профиля
  3. выбираем из списка “iOS App Development” и жмем на Continue
  4. далее выберите App ID (созданный ранее) и опять Continue
  5. на этом экране вам предлагают выбрать сертификат для подписи профиля, указываем только что созданный сертификат, и жмем Contunue (можно выбрать несколько сертфикатов для профиля, каждый из них может подписать приложение)
  6. на экране “Select Devices” укажите устройства, на которых вы будете запускать приложение
  7. экран “Generate” предлагает дать профилю читаемое имя, в MartianCraft мы обычно используем формат: [App Name]: [Profile Type] Profile (например “MartianApp: Development Profile”), жмем по привычке Continue
  8. итак на последнем экране (вы тоже не любите неуместное употребление “крайний”?) можно загрузить созданный профиль. После загрузки перетащите его на иконку Xcode в доке (быстрый способ добавить файл в ~/Library/MobileDevice/Provisioning Profiles, это директория для всех профилей, можно сделать это вручную).

Для создания App Store профиля повторяем весь процесс, но на шаге 3 выбираем “App Store”, это профиль для распространия приложений в AppStore, и поэтому в него нельзя добавить устройства.

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

Provisioning profile details

Процесс обновления профиля простой: идем в Certificates, Identifiers & Profiles in the provisioning portal > Provisioning Profiles > All, находим нужный профиль и жмем Edit для изменений App ID, настроек сертификата или списка устройств.

Работа с схемами и сертификатами в Xcode

Наконец-то у нас есть все для подписи iOS приложения, мы соберем все вместе внутри Xcode и свяжем сертификат и provisioning профиль в особую схему.

По умолчанию, XCode автоматически создает две схемы: Debug и Release. Воспользуемся ими, для Debug схемы мы будем использовать Development профиль и сертификат, для Release — AppStore профиль и сертификат. Открываем “General” вкладку и ищем там “targets” (помним что для этого используем сертификаты добавленные в Keychain и Provisioning profiles это папка в XCode см. выше).

Manual signing

Снимаем галочку “Automatically manage signing”, так как мы будем подписывать “самостоятельно”. После этого появятся две секции: “Signing (Debug)” и “Signing (Release).”

В Signing (Debug) > Provisioning Profile выставляем Development профиль, а в Signing (Release) — AppStore профиль.

Это все что нужно сделать для работы с профилями в “ручном” режиме. Мне кажется не так уж и сложно 🙂 Теперь можно и поработать.

Частые ошибки и как их исправить

  • Provisioning Profile doesn’t match bundle ID Это значит что provisioning профиль был сгенерирован с неправильным App ID/Bundle ID и профиль содержит Bundle ID от другого проекта.
  • Code Signing Entitlements file do not match those specified in your provisioning profile Локальные права не соответствуют профилю (посмотрите Capabilites вкладку). При добавлении сервисов типа iCloud, Keychain они должны быть зарегистрированы в профиле.
  • No Matching Provisioning Profiles Found случается когда сертификату не имеет связанных профилей для подписи приложений. Проверьте что профиль импортирован в Xcode (можно вручную открыть папку: ~/Library/MobileDevice/Provisioning Profiles), посл этого в личном кабинете убедитесь, что профиль использует необходимый сертификат, в случае необходимости обновите профиль.

Более подробно ошибки описаны на сайте для разработчиков Apple Developer.

Сборка и подпись приложения

С нашими настройками удобно создавать сборки приложения и запускать на зарегистрированных устройствах. Для выпуска приложения под AppStore следует выбрать “Generic iOS Device”, затем Product > Archive, будет создан архив, подписанный профилем-сертификатом “AppStore Provisioning”.

Отправка приложения происходит в Xcode Organizer (Window > Organizer), выбирайте архив для отправки в AppStore и следуйте инструкциям в окне. Не забываем выбрать “Use local signing assets” при выборе команды разработчиков.

Выводы

В этих двух статьях мы рассмотрели все этапы provisioning процесса, для новичков это может показаться непростым делом, к счастью это нужно делать только раз в год и для старта нового проекта. Все коснулись всех базовых моментов provisioning и сборки приложения, если еще остались вопросы, у Apple есть несколько видео с прошлых WWDCC для более глубокого понимания процесса, ссылки ниже.

Ссылки на видео

  • WWDC ’16: “What’s New in Xcode App Signing”
  • WWDC ’14: “Distributing Enterprise Apps”
  • WWDC ’15: “iTunes Connect: Development to Distribution”
  • WWDC ’16: “Introduction to Xcode”

Записки мобильного разраба

  • Записки мобильного разраба
  • firsoffmaxim@gmail.com

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *