Построение командной строки Xcode 10: Ошибка архивирования с ошибкой Fabric Info.plist - PullRequest
0 голосов
/ 26 сентября 2018

У меня есть сервер Jenkins для автоматического построения проекта iOS, который имеет две цели.Сборки проекта с помощью утилиты командной строки xcodebuild.

Полные команды:

/usr/bin/xcodebuild -workspace "Our project.xcworkspace"
    -scheme "First target"
    -configuration Release
    archive
    DEVELOPMENT_TEAM=TEAMCODE
    -allowProvisioningUpdates

и

/usr/bin/xcodebuild -workspace "Our project.xcworkspace"
    -scheme "Second target"
    -configuration Release
    archive
    DEVELOPMENT_TEAM=TEAMCODE
    -allowProvisioningUpdates

До того, как я обновил Xcode до версии 10, он отлично работал,Но после обновления каждый раз, когда я вижу ошибку

error: Fabric: Info.plist Ошибка

Невозможно обработать Info.plist по пути / Users / Shared / Jenkins / Library / Developer /Xcode / DerivedData / Our_project-xxxx / Build / Intermediates.noindex / ArchiveIntermediates / Наш проект / BuildProductsPath / Release-iphoneos / First application.app/Info.plist Это может быть проблема синхронизации, убедитесь, что фаза сборки сценария запуска Fabric являетсяпоследний этап сборки, и никакие другие сценарии не были перемещены. Наш application.app из местоположения, созданного Xcode.Вы также можете добавить «$ (BUILT_PRODUCTS_DIR) / $ (INFOPLIST_PATH)» в качестве зависимости «Входные файлы» для фазы построения сценария запуска Fabric.

** СБОЙ АРХИВА **

После поиска в Google и чтения описания ошибки я открыл вкладку Build phases в XCode и настроил ее (переместите элемент Run script вниз, отметьте Run script only when installing и добавьте $(BUILT_PRODUCTS_DIR)/$(INFOPLIST_PATH) во входные файлы, а также удалите пустой элемент Run script).

Ручное построение из командной строки теперь работает - похоже, проблема решена.Даже Дженкинс построил первую цель!Но цель secong не с той же ошибкой.

Я открыл проект, посмотрел вкладку Фазы сборки и увидел, что элемент Run script поднялся и появился новый пустой Run script.После этого я провел эксперимент: установил фазы сборки, пересобрал проект в графическом интерфейсе XCode и увидел, что фазы снова переупорядочены.Итак, это происходит во время или после сборки.

Как я могу исправить эту ошибку?

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

Кроме того: эта ошибка появляется только при построении командной строки.Когда я собираю проект из графического интерфейса Xcode, он всегда завершается успешно.

Ответы [ 3 ]

0 голосов
/ 05 октября 2018

Хорошо, я получил решение от Fabrics.Для Xcode 10 добавьте этот путь к входным файлам в фазе сборки в XCode $ (BUILT_PRODUCTS_DIR) / $ (INFOPLIST_PATH)

enter image description here

0 голосов
/ 19 декабря 2018

Решение для завершения настройки Crashlytics и / или Fabric с использованием следующего: 1. Перейдите в Настройки сборки 2. Найдите «Формат информации отладки» 3. Измените значение «Отладка» с «DWARF» на «DWARF с файлом dSYM»4. Снова создайте свой проект.

Измените "DWARF"

enter image description here

на "DWARF с файлом dSYM"

enter image description here

0 голосов
/ 26 сентября 2018

Я нашел решение, похожее на костыль: выберите Legacy Build System в File -> Workspace Settings -> Build System в графическом интерфейсе Xcode.

Почему это решение плохое?Из-за:

  • Legacy Build System медленнее, чем New Build System (Default).

  • Это не настройка XCode, а рабочее пространство.Т.е. после очистки папки рабочего пространства в Jenkins или некоторых действиях системы управления версиями этот параметр будет сброшен до значения по умолчанию, и нерабочий параметр будет выбран снова.

...