Создание приложений Objective-C или Swift для iOS

Важно!

Прекращение поддержки Центра приложений Visual Studio запланировано на 31 марта 2025 г. Хотя вы можете продолжать использовать Центр приложений Visual Studio, пока он не будет полностью выведен из эксплуатации, существует несколько рекомендуемых вариантов, на которые вы можете рассмотреть возможность миграции.

Узнайте больше о сроках поддержки и альтернативных вариантах.

Чтобы создать свое первое собственное приложение для iOS, необходимо выполнить следующие действия:

  1. Подключение к учетной записи службы репозитория (GitHub, Bitbucket, VSTS, Azure DevOps)
  2. Выберите репозиторий и ветвь, в которой находится ваше приложение
  3. Настройте проект или рабочую область сборки, а также схему, которую вы хотите построить.

Примечание

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

1. Связывание репозитория

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

2. Выбор ветви

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

3. Настройка первой сборки

Настройте проект iOS перед первой сборкой.

3.1. Проект/рабочая область и схема

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

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

Помните, что вы не можете экспортировать .xcscheme файл и разместить его в любом месте проекта. Он должен находиться в папке xcshareddata/xcschemes/ . Убедитесь, что этот путь отсутствует в файле .gitignore .

Пометить схему как общую

3.2. Версия Xcode

Выберите версию Xcode для запуска сборки.

3.3. Триггеры сборки

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

3.4. Приращение номера сборки

Если этот параметр включен, CFBundleVersion в Info.plist в приложении автоматически увеличивается для каждой сборки. Изменение происходит перед сборкой и не будет зафиксировано в репозитории.

Примечание

Чтобы номер сборки increment работал, назовите .plist file как *Info.plist , например Production-Info.plist.

3.5. Тесты

Если выбранная схема содержит тестовое действие с выбранным целевым объектом тестирования, можно настроить выполнение тестов в рамках каждой сборки. В настоящее время Центр приложений может выполнять модульные тесты XCTest.

3.6. подписывание кода;

Для создания приложения iOS для реальных устройств требуется подписывать его действительными учетными данными. Чтобы подписать сборки в Центре приложений, включите подписывание кода в области конфигурации и отправьте профиль подготовки (.mobileprovision) и действительный сертификат (.p12) вместе с паролем для сертификата.

Параметры в проекте Xcode должны быть совместимы с отправляемыми файлами. Дополнительные сведения о подписи кода см. в официальной документации для разработчиков Apple.

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

3.7. Запуск успешной сборки на реальном устройстве

Используйте созданный .ipa файл, чтобы проверить, запускается ли приложение на реальном устройстве. Запуск на реальном устройстве добавит еще примерно 10 минут к общему времени сборки. Дополнительные сведения о настройке тестов запуска см. в этой статье.

3.8. CocoaPods

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

Предупреждение

Если репозиторий уже содержит папку /Pods, центр приложений предполагает, что вы вернули модули pod в репозитории и больше не будет выполнять .pod install Если вы удалите или измените папку /Pods , возможно, потребуется повторно сохранить конфигурацию сборки вручную с помощью Save или Save and Build , чтобы обновление войло в силу.

3.9. Распространение в группу рассылки

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

После сохранения конфигурации новая сборка запустится автоматически.

4. Создание результатов

После активации сборки она может находиться в следующих состояниях:

  • queued — сборка находится в очереди в ожидании освобождения ресурсов.
  • building — сборка выполняет предопределенные задачи.
  • succeeded — сборка завершена и выполнена успешно.
  • failed — сборка завершена, но не выполнена. Вы можете устранить неполадки , проверив журналы сборки.
  • canceled — сборка была отменена действием пользователя или истекло время ожидания

4.1. Журналы сборки

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

|-- 1_build.txt (this is the general build log)
|-- build (this folder contains a separate log file for each build step)
    |-- <build-step-1> (e.g. 2_Get Sources.txt)
    |-- <build-step-2> (e.g. 3_Pod install.txt)
    |--
    |-- <build-step-n> (e.g. n_Post Job Cleanup.txt)

Журналы для конкретных этапов сборки (расположенные в build/ каталоге архива) полезны для устранения неполадок и понимания того, на каком этапе и почему произошел сбой сборки.

4.2. Приложение (.ipa)

Файл .ipa является архивным файлом приложения устройства iOS, который содержит приложение iOS.

  • Неподписанные сборки не создают .ipa файл. Артефакт неподписаемой сборки — это .xcarchive файл, который можно использовать для создания .ipa файла с помощью организатора архивов Xcode.
  • Если сборка подписана правильно, файл можно установить на реальном устройстве, соответствующему профилю подготовки, .ipa используемому при подписи. Дополнительные сведения о подписи и распространении кода с помощью Центра приложений см. в документации по подписывке кода iOS в Центре приложений.
  • Если сборка не подписана, .ipa файл может быть подписан разработчиком (например, локально с помощью codesign) или использоваться для других целей (например, отправить в службу тестирования для тестирования пользовательского интерфейса на реальных устройствах или запустить в симуляторе).

4.3. Файл символов (.dsym)

Файлы .dsym содержат отладочные символы для приложения.

  • Если вы ранее интегрировали пакет SDK центра приложений в приложение с включенным модулем отчетов о сбоях, служба отчетов о сбоях требует этот .dsym файл для сборки для отображения читаемых (символических) отчетов о сбоях.
  • Если вы ранее интегрировали другой пакет SDK для создания отчетов о сбоях в своем приложении (например, пакет SDK HockeyApp), для соответствующей службы требуется .dsym , чтобы файл отображал отчеты о сбоях, доступные для чтения.

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

Поддерживаемые версии и требования

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