Статьи

iOS с нуля с Swift: Как протестировать приложение iOS на устройстве

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

Этот учебник охватывает два сценария:

  • развертывание приложения с бесплатным Apple ID
  • развертывание приложения в качестве участника программы Apple для разработчиков

В 2015 году Apple обновила свое предложение для разработчиков. В частности, стоит отметить два изменения.

В прошлом у Apple были отдельные программы для разработки под OS X, iOS и Safari. Это больше не так. С выпуском watchOS и tvOS Apple объединила свои существующие программы для разработчиков в одну программу — Apple Developer Program .

Это означает, что вам больше не нужно регистрироваться в нескольких программах, если вы хотите разрабатывать для OS X и iOS. Если вы зарегистрируетесь в Apple Developer Program, вы сможете разрабатывать для OS X, iOS, watchOS, tvOS и Safari.

Еще одно существенное изменение связано с бесплатным предложением Apple для разработчиков. В прошлом можно было создать бесплатный аккаунт разработчика. Однако с такой учетной записью вы не смогли развернуть приложения iOS на физическом устройстве.

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

Если вы планируете опубликовать приложение в одном из магазинов приложений Apple, вам необходимо зарегистрироваться в программе Apple для разработчиков. Это то, что мы обсуждали в предыдущей статье этой серии.

Развертывание приложения на физическом устройстве с Apple ID является простым. Но имейте в виду, что типы приложений, которые вы можете развернуть с помощью бесплатного Apple ID, в некоторой степени ограничены. Я рекомендую вам взглянуть на обзор Apple, если вы хотите узнать больше о том, что возможно, а что нет.

Давайте посмотрим, какие шаги предпринимаются для запуска приложения iOS на iPhone или iPad с бесплатным Apple ID. Если у вас нет Apple ID, то я предлагаю вам создать его на веб-сайте Apple, прежде чем продолжить этот урок. Это займет всего несколько минут, чтобы создать его.

Посетите веб-сайт разработчика Apple и нажмите « Центр участников» вверху. После входа с помощью Apple ID вас попросят принять Соглашение разработчика Apple . Прочитайте соглашение, установите флажок, если вы согласны, и нажмите Отправить . Теперь вы зарегистрированный разработчик Apple.

Запустите Xcode и создайте проект, как мы делали в предыдущем уроке. Я выбрал шаблон приложения Single View и настроил проект, как показано ниже. Скажите Xcode, где вы хотите сохранить файлы проекта, и нажмите « Создать» .

Настройте проект

После создания проекта Xcode покажет вам вкладку General единственной цели проекта. В разделе Идентичности XCode предупреждает нас, что мы не можем запустить приложение на устройстве. Предупреждение в нижней части раздела « Идентичность » говорит нам, что XCode не может найти идентификатор для подписи кода, и для Team установлено значение « Нет» . Вы можете легко исправить это, выполнив вход с помощью своего Apple ID.

Идентификационные данные подписи кода не найдены

Выберите Xcode в строке меню и выберите Настройки …, чтобы открыть Xcode окно настроек.

Открыть настройки Xcodes

Если вы откроете вкладку « Учетные записи », вы увидите, что еще нет учетных записей.

Нет аккаунтов в списке

Нажмите кнопку «плюс» в левом нижнем углу и выберите « Добавить Apple ID …» из списка параметров.

Добавить Apple ID

Введите свой Apple ID и пароль в диалоговом окне и нажмите « Добавить» . Если это не работает для вас, убедитесь, что вы сначала зарегистрировались в качестве разработчика Apple, как я показал вам ранее. Если добавление вашего Apple ID прошло успешно, то теперь оно должно появиться в списке учетных записей слева.

Добавление Apple ID

Закройте окно настроек и вернитесь на вкладку Общие цели проекта. В разделе Identity установите Team для учетной записи, которую вы добавили минуту назад. Даже если вы указали команду, Xcode все равно показывает предупреждение.

Не найдено подходящих профилей обеспечения

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

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

Невозможно запустить приложение

Xcode показывает нам довольно загадочное сообщение об ошибке, и мне понадобилось несколько минут, чтобы понять, что происходит. Если вы посмотрите на свое устройство, то увидите, что приложение установлено. Если вы нажмете на значок, чтобы запустить его, вы узнаете, в чем проблема. Операционная система сообщает нам, что приложение от ненадежного разработчика.

Ненадежный разработчик

К счастью, операционная система также дает нам подсказку. Откройте приложение « Настройки» и выберите « Основные»> «Профили» . Выберите профиль с вашим Apple ID и нажмите « Доверие» <Apple ID> . Выберите « Доверие» в появившемся диалоговом окне, чтобы завершить процесс. Теперь вы сможете запустить приложение на своем устройстве.

Выберите профиль с вашим Apple ID

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

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

Сертификат — это электронный документ, который связывает вашу цифровую идентификацию с другой информацией, такой как ваше имя, адрес электронной почты и информация об организации. Сертификат разработки состоит из секретного закрытого ключа и общего открытого ключа. Если вы знакомы с SSL-сертификатами для защиты веб-сайтов, то вы, вероятно, уже знаете, что такое сертификат и как он работает.

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

Вы можете создать CSR, используя утилиту Keychain Access для OS X, которую вы можете найти в папке « Программы»> «Утилиты ». Откройте меню Keychain Access , выберите Certificate Assistant и выберите Request a Certificate from the Certificate Authority ….

Заполните форму, указав свое имя и адрес электронной почты, с которыми вы зарегистрировались в Программе разработчиков Apple. Оставьте адрес электронной почты центра сертификации (адрес электронной почты CA) пустым и обязательно установите флажок Сохранено на диск, чтобы сохранить запрос на подпись сертификата на вашем компьютере. Оставьте Позвольте мне указать информацию о паре ключей без проверки.

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

Нажмите « Продолжить» , укажите местоположение для сохранения CSR и нажмите « Сохранить» . Перейдите к указанному местоположению, чтобы убедиться, что CSR был создан. В разделе « Связка ключей» в категории « Ключи » вы можете видеть, что закрытый и открытый ключи были добавлены в вашу цепочку ключей входа.

Создайте пару ключей PublicPrivate

Откройте браузер и перейдите на сайт разработчика Apple. Нажмите « Центр участников» вверху, войдите в свою учетную запись разработчика и выберите « Сертификаты, идентификаторы и профили» .

Сертификаты Идентификаторы Профили

На следующей странице выберите Сертификаты в разделе iOS-приложений .

Сертификаты iOS Apps

Нажмите кнопку «плюс» в правом верхнем углу, чтобы добавить новый сертификат. Из списка параметров выберите iOS App Development . Это тип сертификата, который нас интересует. Нажмите « Продолжить» внизу.

Выберите тип сертификата

На следующей странице описаны шаги по созданию CSR. Поскольку у нас уже есть CSR, вы можете нажать Continue внизу.

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

Загрузите CSR и нажмите « Создать» внизу.

Загрузка запроса на подпись сертификата

Вот и все. Нажмите кнопку Загрузить , чтобы загрузить сертификат разработки. После загрузки сертификата разработки дважды щелкните его, чтобы установить его в Keychain Access . Обязательно создайте резервную копию сертификата, потому что вы не хотите его потерять.

Загрузка сертификата

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

Добавление сертификата в связку ключей входа

В Keychain Access выберите Мои сертификаты слева и найдите сертификат, который вы добавили, чтобы убедиться, что вы правильно его установили.

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

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

Перейдите в раздел « Сертификаты, идентификаторы и профили » портала разработчика, выберите вкладку « Устройства » в разделе « Приложения iOS » и нажмите кнопку «плюс» в правом верхнем углу. Чтобы зарегистрировать устройство, введите имя для устройства и его UDID. UDID — это идентификатор, который однозначно идентифицирует устройство iOS. Обратите внимание, что UDID не совпадает с серийным номером устройства.

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

Вы можете найти UDID устройства, подключив устройство к вашей машине, запустив Xcode и выбрав Devices в меню Window . Буквенно-цифровая строка из сорока символов рядом с идентификатором является UDID устройства.

Поиск UDID устройства

Идентификатор приложения — это идентификатор, который однозначно идентифицирует приложение на iOS. Это очень похоже на UDID устройства, который однозначно идентифицирует устройство. Идентификатор приложения используется операционной системой в целях безопасности и является важным компонентом push-уведомлений Apple и сервисов iCloud, среди прочего.

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

По умолчанию идентификатором пакета является имя вашего приложения с префиксом идентификатора организации вашего проекта. Вы можете изменить идентификатор пакета на любой, какой захотите. Рекомендуется использовать обратную запись доменного имени , например, com.tutsplus.my-first-application . Полным идентификатором приложения будет xxxxxxxxxx.com.tutsplus.my-first-application .

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

Начните с присвоения своему идентификатору приложения описательного имени, чтобы вы могли найти его позже. Оставьте поле префикса идентификатора приложения нетронутым. В разделе Суффикс идентификатора приложения введите идентификатор пакета вашего приложения. Убедитесь, что вы ввели его в раздел « Явный идентификатор приложения» .

Создать идентификатор приложения

Вы также можете выбрать идентификатор приложения с подстановочными знаками и заменить имя приложения в идентификаторе пакета на звездочку, например com.tutsplus. * . Это полезно, если вы намереваетесь создать набор приложений, которым нужен общий доступ к цепочке для ключей или вообще не требуется доступ к цепочке для ключей. Звездочка или подстановочный знак должны быть последним компонентом идентификатора пакета.

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

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

Давайте создадим профиль обеспечения для вашего приложения. В разделе « Сертификаты, идентификаторы и профили » портала разработчика выберите вкладку « Профили подготовки » в разделе « Приложения iOS ». Нажмите кнопку «плюс» в правом верхнем углу, чтобы создать новый профиль обеспечения. Выберите « Разработка приложений для iOS» в разделе « Разработка » и нажмите « Продолжить» .

Создайте профиль обеспечения

На следующем шаге выберите идентификатор приложения, который вы создали несколько минут назад, и нажмите « Продолжить» .

Выберите идентификатор приложения

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

Выберите сертификат

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

Выберите устройства

Дайте профилю обеспечения описательное имя, чтобы вы могли легко найти его позже. Нажмите « Создать» и загрузите профиль обеспечения на свой компьютер для разработки. Дважды щелкните профиль обеспечения, чтобы добавить его в XCode.

Создайте профиль обеспечения

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

Прежде чем вы сможете собрать и запустить приложение на своем устройстве, вам необходимо обновить настройки сборки цели в вашем проекте XCode.

Откройте проект Xcode, который вы создали в предыдущем уроке, и выберите проект в Навигаторе проектов слева. Выберите « Мое первое приложение» в разделе « Цели » и откройте « Настройки сборки» вверху.

Откройте настройки целевой сборки

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

Установить код подписи

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

Установить схему и пункт назначения

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

Открыть настройки XCode
Аккаунты не настроены

Нажмите кнопку «плюс» в левом нижнем углу и выберите « Добавить Apple ID …» из списка параметров. Введите свои учетные данные и нажмите Добавить .

Добавить Apple ID

Добавив вашу учетную запись разработчика в XCode, она может общаться с порталом для разработчиков от вашего имени. Это делает некоторые задачи намного проще.

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

Не стесняйтесь прочитать эту статью несколько раз, чтобы по-настоящему понять, как различные части сочетаются друг с другом. Это значительно упростит проблемы отладки, связанные с инициализацией, и я могу гарантировать, что вы столкнетесь с такими проблемами в какой-то момент своей карьеры iOS.

Если у вас есть какие-либо вопросы или комментарии, вы можете оставить их в комментариях ниже или обратиться ко мне в Twitter .