Подтвердить что ты не робот

Выполнение script только для сборки "Архив" в Xcode 4

У меня есть script, который я запускаю с использованием osascript из Run script Build Phase в Xcode 4. Этот script выполняет некоторые проверки, чтобы попытаться поймать любую человеческую ошибку в plists и т.п.

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

Есть ли способ тестирования для этой ситуации? Либо в оболочке script, либо в Apple Script?

4b9b3361

Ответ 1

В Xcode 4+ вы можете запустить этот script как предварительный или пост-действие script в действии "Архив" . Однако сценарии до и после действия не считаются частью самой сборки; их вывод не является частью журнала сборки, а сбой script не приведет к сбою сборки.

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

Наконец, откройте основную схему проекта, а в теге "Build" добавьте новую цель проверки и установите ее только для включения в действие "Архив" . Это должно привести к тому, что ваша контрольная панель script будет запущена как часть сборки только при выборе "Архив" , а если script возвращает ненулевое значение, сборка завершится неудачно.

A screenshot showing how to configure the scheme

Ответ 2

  • Добавить "Новый запуск Script Этап" в проект "Сформировать фазы"
  • Переместить (перетащить и сбросить) свой Script в нужное положение
  • Проверьте "Запуск Script только при установке"

Если вы не выполняете 3., то Script будет работать все время, но если вы установите этот флажок, он будет работать только при архивировании.

Ответ 3

Быстрый тест в моей собственной системе не показывает разницы в подробном выходе script между прямыми "Build" и "Build and Archive".

Кроме того, вы не можете проверить наличие (или отсутствие) архива, поскольку он создается только в самом конце процесса, когда все скрипты запущены.

Насколько я вижу, в Xcode 3 нет текущей опции для этого. Может быть, файл запроса расширения с Apple?

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

Xcode "Build and Archive "" из командной строки