Подписание кода MacOS приложение для тестирования на Travis CI - PullRequest
0 голосов
/ 18 марта 2020

Я пытаюсь добавить автоматизированные тесты в мое приложение macOS на Travis CI, но не могу понять, что такое подпись кода.


Мой (частный) репозиторий GitHub настроен для запуска Travis собирать задания, когда я выполняю sh на мастере.

Для iOS проектов Xcode создает / запускает / тестирует проект для платформы Simulator, поэтому для тестирования подписывание кода не требуется (подпись с распространение идентификация необходима для развертывания сборки, конечно. Но я просто хочу запустить модульные тесты).

Но для приложений MacOS нет "Симулятора": код построен и запустить на самой машине разработки .

В этой статье объясняется, как добавить дистрибутив артефактов подписи кода на машину Трэвиса, чтобы она могла строить / подписывать двоичный файл дистрибутива для iOS.

Я изменил шаги, описанные там, чтобы использовать артефакты разработки macOS вместо iOS Распределение из них. Сценарии, которые расшифровывают мои артефакты и устанавливают их на компьютере Travis, похоже, работают без проблем.

Проблема

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

Как я могу Сборка и модульное тестирование приложений macOS на Travis CI?

1 Ответ

0 голосов
/ 18 марта 2020

TL; DR:

Я решил проблему с подписью кода, полностью отключив подпись кода (она не нужна для запуска модульных тестов), как объяснено в этот блестящий ответ by @robmayoff.

Подробности

Мне все еще нужна подпись кода для локального тестирования моего приложения (оно использует права для чтения / записи в выбранные пользователем файлы) и папки). Поэтому я создал новую конфигурацию в XCode путем клонирования Debug с именем UnitTest.

Я отключил подпись кода и установил для Team Development значение «none» для этой конфигурации.

Далее, Я создал выделенную схему (совместно используемую, конечно), которая использует конфигурацию UnitTest для сборки и тестирования. Я должен был сделать это как в цели приложения, так и в цели тестов (я отказался от тестов пользовательского интерфейса , потому что для их работы требуется доступность, а на удаленной машине таких разрешений нет). Мне пришлось это сделать, потому что я не смог заставить инструмент xcbuild использовать конфигурацию UnitTests.

У меня пока не получилось успешно завершить сборку Travis, но я преодолел большинство препятствий (включая подпись кода).

Надеюсь, это кому-нибудь поможет!

Обновление

Я наконец получил Travis CI для успешной сборки и тестирования моего приложения. Off-topi c, но мой код имел следующие проблемы:

  • Цель развертывания macOS 10.15 (последнее доступное изображение на Travis - 10.14 )
  • Проект связывался с CryptoKit.framework (доступно только с 10.15!); пришлось заменить его аналогичной функциональностью в CommonCrypto.

Каким-то образом вышеуказанные проблемы не помешали сборке приложению, только выполнению тестов. Я получаю сообщение об ошибке «изображение не найдено» для CryptoKit.framework.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...