- Что нам понадобится?
- Что мы будем разбирать?
- ❶ как выполнить сертификацию приложения
- 5 лучших программ для создания сертификатов, которые стоит приобрести – gadgetshelp,com
- Intermediate certificates
- Бесплатный конструктор сертификатов – выбирайте шаблон и создавайте собственный дизайн | vistacreate
- Вкратце об itunes connect
- Идентификаторы (identifiers)
- Кратко о главном
- Краткое руководство как стать google certified associate android developer
- Ориентировка по разделам
- Профили (provisioning profiles)
- Профили типа «development»
- Профили типа «distribution»
- Резюмируем
- Сертификаты (certificates)
- Сертификаты типа «development»
- Сертификаты типа «production»
- Терминология
- Устройства (devices)
Что нам понадобится?
Собственно, для работы нам нужно следующее:
Что мы будем разбирать?
Мы разберем процесс управления вашим приложением в Apple Developer Center от его создания до публикации в магазине App Store. Мы будем говорить только о базовых вещах, таких, как разработка, тестирование и публикация, а также обсудим APNs (Push Notifications).
Отмечу тот факт, что далее я буду описывать принцип работы девцентра по состоянию на 31 марта 2021 года, поэтому если вы читаете эту статью позднее — все уже могло измениться.
❶ как выполнить сертификацию приложения
Если ваш смартфон выполнен на базе платформы Symbian, то рано или поздно вы столкнетесь с тем, что не сможете установить скачанное приложение. При этом на экране появится сообщение «Срок действия сертификата истек». Для решения этой проблемы необходимо выполнить сертификацию приложения.
Инструкция
5 лучших программ для создания сертификатов, которые стоит приобрести – gadgetshelp,com

Edraw Certificate Maker, один из лучших производителей сертификатов в своей категории, представляет собой компактное приложение для создания диаграмм, которое превосходит своих конкурентов в создании профессиональных сертификатов.
Он поставляется с простым интерфейсом, который больше похож на интерфейс MS Office.
Будь то бизнес, образование, спорт, социальные цели, он позволяет легко создавать профессиональные сертификаты. Это помогает пользователям создавать красивые сертификаты, которые покрыты персонализированным дизайном, узорами и материей.
Он предлагает простой способ для начинающих с помощью готовых шаблонов.
Все, что нужно сделать, — это открыть выбранный шаблон, вставить текст и изображения, изменить цвета, а затем перенести его в (экспорт) различных форматов (PDF, SVG, PNG, Word, EPS или PS).
Используйте это программное обеспечение для чтения PDF для просмотра ваших сертификатов на ПК.
Кроме того, пользователи могут начать заново с помощью готовых элементов сертификата в фиксированной библиотеке. Умные инструменты для автоматического форматирования, привлекательные темы, высококачественная векторная графика или плавающие диалоги — вот некоторые из его основных функций.
Цена: от 99 долларов за подписку.
Intermediate certificates
Некоторое время назад Apple внесла изменения в логику работы девцентра и своей системы сертификации, после чего на большинстве компьютеров пропала возможность делать сборки приложений, несмотря на наличие активных дев- и прод-сертификатов и актуальных профилей.
«Worldwide Developer Relations Certificate Authority»
. Он устанавливается автоматически с новыми версиями Xcode, но те, у кого Xcode уже был установлен ранее, просто должны были установить этот сертификат вручную, скачав его по прямой ссылке из секции Intermediate Certificates в девцентре Apple, после чего проблемы со сборками исчезали. Больше никакой смысловой нагрузки этот сертификат не несет.
Бесплатный конструктор сертификатов – выбирайте шаблон и создавайте собственный дизайн | vistacreate
Вкратце об itunes connect
Этот сервис предоставляет вам возможность управлять внутренним и внешним тестированием в TestFlight, а также выкладывать приложение в App Store. Рассмотрение этого процесса выходит за рамки данной статьи, упомяну лишь тот факт, что для корректной работы этому сервису необходимы сборки, созданные на базе профиля типа
Distribution — App Store
(для iOS либо tvOS). Другие типы профилей здесь не поддерживаются.
Идентификаторы (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, их использование обязательно, удалить их нельзя. Остальные сервисы подключайте по мере необходимости.
После создания App ID вы можете использовать его для генерации любых типов профилей, об этом чуть позже.
Кратко о главном
В Apple Developer Center с незапамятных времен применяется довольно мудреная система сертификации ваших приложений на каждом из ключевых этапов — разработка, тестирование и публикация.
Зачастую при первом погружении в эту систему у начинающих (и не только) разработчиков возникают серьезные проблемы с пониманием того, как функционирует Apple Developer Center (будем называть его «девцентр» для простоты). В результате, мне в процессе профессиональной деятельности не раз приходилось наблюдать на новых местах работы огромные свалки из профилей и сертификатов в девцентре, в результате чего приходилось приступать к «разбору завалов».
При этом, в сети довольно не такой большой выбор материалов на эту тему. Конечно, в официальной документации Apple все хорошо структурировано и очень подробно описано, но зачастую просто не хватает времени на изучение такого количества материала.
Как правило, хочется быстро понять, что именно и в каком порядке нужно сделать для корректной работы приложения на этапах разработки, тестирования и при публикации его в магазин App Store. В русском же сообществе подобных материалов, собранных в одном месте и в удобном доступе, я не видел вовсе, поэтому и решил написать эту статью. Для всех интересующихся — добро пожаловать под кат.
Краткое руководство как стать google certified associate android developer

В данной статье я вкратце опишу процесс получения сертификата начинающего андроид разработчика. Разработкой под андроид я занимаюсь уже более 4-х лет, но до настоящего момента так и не удосужился обзавестись никаким соответствующим сертификатом, хотя парочкой сертификатов по Java я обзавелся. А сложилось так по одной простой причине — сертификаты андроид разработчиков выдавали какие угодно компании, кроме собственно компании разработчика этого самого Android. Вышеупомянутые Java сертификаты были выданы компанией Oracle, что делает их наличие хоть немного осмысленными.
И вот наконец свершилось — Google открыла свою программу сертификации андроид разработчиков. Но и тут не обошлось без ложки дегтя — пока доступен только сертификат начинающего андроид разработчика. Мне он в общем-то без надобности, но любопытство и тяга к коллекционированию подтолкнули меня к его получению. Полезность получения сертификатов как таковая является отличной темой для холивара. Я немного затрону этот вопрос в конце статьи, а пока перейду к описанию процесса.
Впервые программа сертификации была анонсирована компанией Google на I/O в мае 2021. Где-то в июне появилась возможность предварительной записи на сертификацию. Нужно было заполнить формочку на сайте, после чего ждать письма счастья. Письма я так и не дождался, поэтому когда я зашел на сайт в следующий раз где-то в июле, там уже была формочка, позволяющая выбрать желаемую дату начала сертификации. Я выбрал период с 1 по 7 августа и пошел дальше по своим делам. Никакого подтверждения я не получил, поэтому ближе к дате зашел на сайт еще раз и снова заполнил формочку.
И тут наконец пришло первое письмо, которое сообщало мне, что Udacity, а именно через нее проводится сертификация, в курсе моего желания пройти сертификацию в указанный период, но в связи с большим наплывом желающих мне придется подождать еще недельку от желаемой даты. Так как я никуда не торопился, то закрыл письмо и забыл про него. Неделька несколько растянулась, и следующее письмо я получил 23 августа. В нем меня просили убедиться, что я соответствую всем требованиям, после чего начать процесс получения сертификата.
На данный момент всей вот этой предварительной тягомотины надеюсь больше нет. И пришла пора рассказать, куда идти и что делать. Итак, для начала можно зайти на сайт посвященный сертификации. Ничего особо полезного на нем нет, кроме краткой информации, ссылки на обучение и кнопки записи на курс. Если вы считаете, что ваши навыки разработки под андроид оставляют желать лучшего, или вообще отсутствуют, то рекомендую сходить подучиться. Ссылка с сайта ведет на страничку Udacity, посвященную разработке под андроид. При нажатии кнопки Sign Up попадаем со страницы Google, посвященной сертификации на аналогичную страницу Udacity.
Здесь уже достаточно подробно расписывается, что именно будет спрашиваться на экзамене и с чем в принципе кандидату предстоит столкнуться. Здесь же озвучена стоимость. Сертификат стоит 149$, но на текущий момент есть скидка (раньше попадалось на глаза, что до конца года, но сейчас не вижу). С учетом скидки придется выложить 99$. Что не так уж много, если сравнивать с Oracle.
Экзамен состоит из двух частей: «написания приложения» (coding project) и интервью с разработчиком Google. Почему в кавычках? Потому, что писать там придется не столь много. Будет дан уже почти законченный проект, в который надо будет внести изменения и дополнения. Но о подробностях чуть позже.
Рассмотрю подробнее, что же требуется от кандидата:
В общем и целом никаких особых сюрпризов. Да, интервью будет тоже на английском.
Теперь перейдем к процессу. Сертификация состоит из следующих этапов:
Итак, пойдем по пунктам.
Регистрация
Процесс регистрации завершается быстро и без проблем.
Оплата
Через что именно проводится оплата я точно не помню, но платил я картой. Так что скорее всего там достаточно банальная формочка оплаты. В любом случае процесс затруднений не вызвал.
Скачиваем проект
Перед скачиванием проекта, да и вообще перед началом процесса сертификации рекомендую подготовить рабочую машину. Т.е. обновить Android Studio и все сопутствующие элементы. Проект в архиве занимает несколько сот килобайт. Скачивается быстро, в студии открывается без проблем.
Пишем код
И вот мы дошли до самой интересной части — «написания приложения». Как я уже говорил, писать придется не очень много. Я не буду в подробностях описывать проект, что он делает и как устроен, так как скорее всего эта информация не подлежит разглашению. Да и скорее всего количество разнообразных проектов достаточно велико. Могу сказать, что проект представляет собой простое приложение, охватывающее собой изрядную часть Android Framework. Т.е. он с одной стороны затрагивает многие области, в которых кандидат должен проявить свои знания, с другой сложного там ничего нет. У меня ушло меньше дня на внесение всех изменений, тестирование и правку багов. Всего потребуется добавить в проект около 5 фич, исправить около 5 багов и написать тест.
Отсылаем проект
Когда сочтете, что ваш проект совершенен, можно отсылать его обратно. Чистим от мусора (необязательно, но не помешает), архивируем, посылам.
Но как я упоминал выше, к проекту нужно приложить PDF с фото/сканом документа, удостоверяющего личность. Например права или паспорт. И вот тут я затруднюсь сказать, что именно подойдет. Я уже полтора года живу не в России, поэтому мой основной документ это загранпаспорт. Права у меня местные. Подойдут ли российский паспорт или российские права я затрудняюсь сказать. Поэтому наверное лучше будет это уточнить перед оплатой. Ну а если у вас есть загранспаспорт, то он точно подходит.
Ожидание
Оплатил я участие в сертификации 28 августа вечером. Отправил задание 30 августа. В то же день получил письмо, подтверждающее получение проекта и заверяющее, что в течении 45 дней он будет оценен. 28 сентября пришло письмо с просьбой еще раз подтвердить личность путем отсылки документов через какой-то сайт. Мне не сложно — подтвердил. 18 октября очередное письмо с «радостной новостью», что мой проект вот-вот оценят. И вот наконец 28 октября письмо о том, что я мой проект прошел проверку. Пора переходить к интервью.
Запись на интервью
Последнее письмо содержало ссылку на сайт, где можно назначить дату интервью. И тут меня ждал легкий шок. На ближайший год доступного времени не было. Почесав репу, поинтересовался в поддержке Udacity, шутка это или баг. Ответили, что на данный момент все занято, но они работают на увеличением количества слотов для интервью. Сообщат как только так сразу. Да-да, так я в это и поверил. Стал каждый день заходить на сайт и в итоге был вознагражден тем, что 2 ноября углядел доступное время и записался на 4 ноября. Уведомление от Udacity я получил только 9 ноября. Чем в общем уже не был сильно удивлен.
Интервью
Итак интервью. Проводится оно через какой-то сайт. При этом что-то надо установить на комп. Поэтому ссылочку лучше посетить заранее. На работе у меня например по ней не получилось перейти, только с домашнего компа. Для интервью нужно при себе иметь все тот же документ, удостоверяющий личность. Так же должна иметься веб камера. Ну и естественно микрофон и колонки/наушники. Вас хотят как видеть, так и слышать. Само интервью у меня заняло минут 10. Интервьюер был вежливый и приятный. Сначала попросил показать паспорт. Потом задал 5 вопросов. Сначала спросил, что было сложным в проекте. Потом задал ряд вопросов по конкретной реализации. Так как дело было давно, в процессе я смотрел код и на ходу комментировал, что же вижу. Если вы не уверены, что так сможете, лучше освежить в памяти, что происходило и что было сделано.
Получение сертификата
На следующий день получил письмо, в котором говорилось, что теперь я могу гордо носить звание Google Certified Associate Android Developer. Также упомянулось, что скоро придет еще письмо, в котором мне пришлют мой «цифровой значок» (digital badge), который собственно и является сертификатом. А так же расскажут, куда его засунуть что с ним делать. Вроде можно радоваться, но не зря эта статья написана 24 ноября. Именно сегодня я получил таки письмо с этим самым значком и инструкциями к нему. В промежутке же пришлось снова потревожить техподдержку сначала Udacity, а потом и Google.
Значок кстати выглядит вот так.
Таким образом, весь процесс занял у меня почти 3 месяца и обошелся в 99$. Любопытство свое я удовлетворил, значок в коллекцию получил. Так что своих целей я достиг. А так же получил новый опыт, которым с вами в этой статье и поделился. Сертификат вроде как действует 3 года (раньше видел такую информацию, сейчас на глаза не попалось).
Кстати, для сравнения, последний полученный мною сертификат Oracle я получил за 3 дня (если не считать месяца подготовки) и 250 евро. Сертификат бессрочный.
Как и обещал, в конце немного наброшу на вентилятор. Многие задаются вопросом, а зачем же вообще нужны эти сертификаты и кто на них смотрит. В общем и целом, с одной стороны они не нужны. С другой стороны, наличие сертификата может зацепить глаз HR, особенно в ситуации с начинающим разработчиком. Наличие сертификата показывает, что у кандидата есть хоть какие-то минимальные знания в интересующей области, а так же есть умение достигать поставленной цели. Лично я свой первый сертификат (Oracle Certified Programmer Java SE6) получил, когда решил переквалифицироваться с С разработчика в Java или Android разработчика. Одной из целей было как раз подтверждение того, что я что-то знаю в Java, так как предыдущие записи в резюме отражали только опыт работы с C и Assembler. Второй же целью было «расширить и углубить» свои знания в Java. И вот как раз второй цели я более чем достиг. В процессе подготовки к сертификации я открыл для себя много новых вещей в мире Java, которые мне до этого не попадались в книгах, которые я читал.
Второй сертификат я получил полгода назад для коллекции и опять же с целью расширить свои знания. Сертификат аналогичный, только теперь по Java 8. Пытливый читатель скажет, что мол можно было бы и так взять и выучить то, что нужно. И будет прав. Но как известно, наличие кнута (потеря денег за попытку сертификации) и морковки (бумажка в коллекцию) делают обучение гораздо более мотивированным.
Ну и как я уже говорил, сертификат андроид разработчика я получил уже чисто для коллекции и из любопытства. новых знаний он мне не принес. Буду ждать следующих уровней сертификации.
Так что получать сертификаты или нет каждый думаю решит сам для себя. Я же только могу пожелать успеха тем, кто на это решится.
P.S. На всех этапах сертификации Google и Udacity извинялись за задержки и клятвенно обещали ускориться в будущем. Надеюсь, что так и случится.
Ориентировка по разделам
В девцентре для полноценной работы с вашими приложениями нам понадобятся только два пункта:
Профили (provisioning profiles)
Дословно название этого раздела переводится как «Профили обеспечения». Чуть более развернуто я бы описал понятие «профиль» как «Специальный файл, обеспечивающий доступ к некоторой функциональности в конкретной сборке вашего приложения». В данном разделе девцентра вы можете управлять вашими профилями, обеспечивая себе возможность выпускать сборки приложения для различных целей, то есть «профилировать» его. По сути, профиль является результатом объединения двух (иногда трех) компонентов:
На выходе как раз и получаем профиль для выпуска сборок с определенными целями. Давайте рассмотрим разновидности профилей.
Профили типа «development»
Это профиль для разработки, то есть его основное назначение — отладка вашего приложения на конкретных устройствах через Xcode с прямым подключением устройства проводом к вашему Mac. Дев-профили представлены двумя видами:
Профили типа «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.
Резюмируем
По сути, при получении доступа к девцентру с активной Apple Developer Program ваш алгоритм действий должен сводиться к следующему:
Сертификаты (certificates)
Этот раздел дает доступ к управлению сертификатами, которыми обладает ваша учетная запись Apple ID. Каждый из этапов, которые вы будете проходить, будь то разработка, тестирование или публикация, включая все значимые составляющие экосистемы Apple вроде Push Notifications, требует обязательного наличия актуального (действующего, Active) сертификата.
Теперь разберем типы сертификатов.
Сертификаты типа «development»
В первую очередь, нужно знать, что девелоперский сертификат всегда привязывается
к одной конкретной машине
. Поэтому для отладки на вашем Mac вам понадобится доступ к этому сертификату. Тут есть варианты. Например, если, вы устроились на работу iOS-программистом, и в ваши задачи входит отладка на устройствах (как правило, так и есть), то есть два пути решения (какой из них выбирать — зависит от вас и условий работы в вашей компании):
Сертификаты типа «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-профиля, о котором пойдет речь чуть позже.
Еще один частый вопрос: чем отличаются сборки, собранные на паре Development Certificate Development Profile, и сборки, созданные через связку Distribution Certificate Ad Hoc Profile? Ведь и там, и там нужно указывать перечень разрешенных для установки устройств, и то, и то можно устанавливать через iTunes.
В чем же различие? На деле, разница в том, что дев-сборка будет запускаться «в отладочном режиме», то есть, например, APNs ей будут доступны только в режиме «sandbox». Продакшн-сборка будет обладать «боевыми» правами, с доступом во все подсистемы Apple вроде «настоящих» APNs, iCloud и так далее.
Терминология
Давайте подробно разберем понятия, лежащие в основе функционирования девцентра Apple.
Устройства (devices)
В этом разделе размещено управление всеми устройствами Apple, которые вы можете использовать в рамках вашей Apple Developer Program. Есть ограничение, максимум 100 зарегистрированных девайсов одного типа (iPhone, iPad и так далее) на одну учетную запись в год, обычно этого более чем достаточно.
