«$ {PODS_ROOT} / SwiftLint / swiftlint» вызывает «сбой команды PhaseScriptExecution с ненулевым кодом выхода» с Xcode 10

Обновление с Xcode 10.0 beta 2 до Xcode 10.0 бета 3 Теперь я получаю эту ошибку во время сборки проекта iOS:

sourcekit: [1:connection-event-handler:10499: 0.0000] Connection interruptsourcekit: [1:updateSemanticEditorDelay:10499: 0.0007] disabling semantic editor for 10 secondssourcekit: [1:pingService:10499: 0.0007] pinging servicesourcekitten: connection to SourceKitService restored!
Connection interrupted
Never call this for file that sourcekitd fails.: file File+Cache.swift, line 127
/Users/Coeur/Library/Developer/Xcode/DerivedData/My-App-eloayqptodupvfhbyegtkncnhcpu/Build/Intermediates.noindex/My-App.build/UAT-iphonesimulator/My-App-Debug.build/Script-379156A71D62F5C100574D04.sh: line 2: 34382 Abort trap: 6 "${PODS_ROOT}/SwiftLint/swiftlint"
Command PhaseScriptExecution failed with a nonzero exit code

Свифт 4.1
Какао-Стручки 1.5.3
SwiftLint 0.26.0

Временное примечание для гуглеров: похоже, есть регресс в CocoaPods, который будет исправлен в 1.6.x. Для меня ошибка исчезла после перехода на бета-версию 1.6.0 (и обновления всех зависимостей; не уверен, что это как-то связано с этим).

Raphael 05.10.2018 12:26

@Raphael Вы пишете о чем-то, не имеющем отношения к моему вопросу. Теперь я уточнил название, чтобы устранить неоднозначность. На самом деле, кто-то уже разместил журнал ошибок, о котором вы говорите, на stackoverflow.com/questions/52234957/….

Cœur 05.10.2018 12:46

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

Raphael 05.10.2018 13:52

В моем случае я забыл добавить pod 'SwiftLint' в свой подфайл при выполнении pod install.

Mohammad Zaid Pathan 06.02.2020 12:10
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
52
4
86 084
20
Перейти к ответу Данный вопрос помечен как решенный

Ответы 20

Ответ принят как подходящий

Похоже, это проблема со сценарием SwiftLint 0.26.0 при использовании Xcode 10.0 beta 3 или новее.

Причина

Кажется, это связано с SwiftLint # 2276, который сам связан с SourceKitten 0.21.0, исправлен в SourceKitten 0,21,1 и SwiftLint Master.

Решение

Обновите SwiftLint 0.27.0 или новее:

pod 'SwiftLint', '~> 0.27'

(и запустите pod update SwiftLint)

Правильный ответ, это проблема SwiftLint

onmyway133 26.02.2019 13:31

Проблема заключалась в том, что у меня было пробел в имени папки (каталога), где у меня был проект. например: не работает, когда "рабочий проект / MyProject", работает, когда "рабочий_проект / MyProject"

Ariven Nadar 01.07.2019 11:31

@ Cœur, я столкнулся с этой проблемой при использовании последней версии SwiftLint 0.33.0 на сегодняшний день.

Ariven Nadar 02.07.2019 11:39

@ cœur Я столкнулся с этой проблемой в mintfile "realm/[email protected]".

Pratik Sodha 27.02.2020 12:48

@PratikSodha, тогда ... проверьте, исправляет ли понижение версии SwiftLint это для вас, и если да, откройте вопрос на их GitHub?

Cœur 28.02.2020 04:39

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

Эта проблема решается для меня, когда я жду и позволяю проекту завершить индексацию, прежде чем что-либо делать!

Для меня добавление архитектуры arm64 в «Настройка сборки -> допустимые архитектуры» решило проблему.

Некоторые Framework или SDK требуют подписи кода.

Я подписал код и решил проблему за себя.

Мне пришлось «Включить подписку на разработку» (кнопка на скриншоте выше)

Daniel 21.11.2018 10:41

Большое спасибо - мне тоже пришлось включить подписку для разработчиков

George Vardikos 07.12.2018 14:41

Модуль, который я использовал, не был обновлен для Xcode 10, поэтому решение, которое сработало для меня, заключалось в том, чтобы удалить Cocoapods из моего проекта, а затем установить его снова (проект был создан на Xcode 9).

Чтобы удалить его, проще всего:

$ sudo gem install cocoapods-deintegrate cocoapods-clean
$ pod deintegrate
$ pod clean

После этого снова установите стручки.

Это нарушило мой код, поскольку не все библиотеки, которые я использую, совместимы с более новой версией pod. Мне пришлось восстановить свой код с машины времени.

zeeshan 30.12.2018 12:08

Я только что перезапустил свой Macbook, и он сработал.

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

Перезапуск Xcode 10.1 исправил это для меня; возник при обновлении Cocoapods ('RxSwift').

Если вы получаете

dyld: Library not loaded: /usr/local/opt/readline/lib/libreadline.7.dylib

и красный

Command PhaseScriptExecution failed with a nonzero exit code

Вам следует установите конкретную версию libreadline, которая вам нужна

brew install readline
brew list --versions readline
brew switch readline 0.0.0

Это из-за доступа к связке ключей.

  • Открытый доступ к связке ключей
  • Щелкните правой кнопкой мыши вкладку входа
  • Заблокировать брелок Войти
  • Щелкните правой кнопкой мыши вкладку входа снова
  • Разблокировать логин брелка

и проблема решена :)

И почему вы все еще будете использовать SwiftLint 0.26.0 или более раннюю версию в 2019 году? Вопрос давно решается простым обновлением SwiftLint!

Cœur 29.01.2019 08:56

Я вообще не использую Swift или SwiftLint, потому что использую Obj-C. Этот ответ решил мою проблему в Xcode 9+ и iOS 10+.

AndaluZ 18.02.2019 11:32

@AndaluZ практически невозможно получить сообщение об ошибке SwiftLint без его использования.

Cœur 26.02.2019 13:38

@ Cœur У меня была эта ошибка «Ошибка выполнения команды PhaseScriptExecution с ненулевым кодом выхода», она не была основана на материалах, связанных со Swift. Кстати, это решение также не относится к материалам, связанным с Swift, я думаю, оно больше связано с инструментами сборки Xcode.

AndaluZ 27.02.2019 09:56

Спасибо. Это мое решение, потому что я работаю над подписанием сертификата push-уведомлений.

littlecodefarmer758 01.03.2019 04:02

У меня это не сработало, проверьте: stackoverflow.com/questions/54937724/…

user10813210 01.03.2019 05:34

Если в каталоге, в котором находится ваш проект, есть пустые места, возникает проблема. Чтобы решить эту проблему, добавьте двойные кавычки (""). Например:

"$ (SRCROOT) / моя структура / путь"

В моем случае срок действия сертификата разработки Apple истек.

Чтобы проверить, откройте Связку ключей -> Мои сертификаты -> проверьте, действителен ли сертификат разработчика. Если сертификат недействителен, выполните следующие действия.

  • Откройте свою учетную запись разработчика Apple и создайте новый сертификат разработки.
  • Загрузите и добавьте его в свою связку ключей.
  • Перейдите в профили, откройте существующий профиль разработки и добавьте вновь созданный сертификат.
  • Загрузите свежий профиль и установите его.

Надеюсь, это тебе тоже поможет.

У меня возникла эта проблема в моем приложении ionic4 после того, как я использовал cocoapods. Моя проблема заключалась в том, что в Targets-> Build Phases-> Embed Pods Frameworks у меня был неверный путь к скрипту Pods-MyApp-frameworks.sh, исправляющий этот путь, решивший проблему для меня. Это потому, что в большинстве случаев переменная $PODS_ROOT не устанавливается после установки модулей.

Решение сработало для меня

Я удалил все файлы и папки, созданные подом, как указано ниже.

  • Podfile.lock
  • Папка Pods
  • ProjectName.xcworkspace

Снова установите pod для этого проекта.

Теперь откройте .xcworkspace. Сборка и запуск ...

Удалил все файлы, созданные после установки pod.

pallavi 26.12.2019 10:43

Это может вызвать версию iOS 13. Моя ошибка - посмотреть ниже

Assignment/Pods-Assignment-frameworks.sh: eval: line 131: unexpected EOF while looking for matching `''
Command PhaseScriptExecution failed with a nonzero exit code

Pods -> Targets Support Files -> Pods-AppName -> Pods-AppName-frameworks.sh. Просто прокомментировал конкретная строка 131

 # eval "$code_sign_cmd"

затем очисти и беги

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

else
echo "warning: SwiftLint not installed, download from https://github.com/realm/SwiftLint"
fi

Я решил проблему, изменив ее на

if swiftlint
then
echo "swiftlint installed"
else
echo "warning: SwiftLint not installed, download from https://github.com/realm/SwiftLint"
fi

Не уверен, это может быть связано с моей версией XCode (10.3)

Я решил проблему, переписав файл .sh. Xcode 10 с Swift 3.

1. переименуйте файл проблема.sh и command+A, затем command+C.
2.vi *problem*.sh и command+V.
3.:wq!, чтобы сохранить новый файл.

Тогда все будет хорошо.

Если нет, chmod a+x *problem*.sh и попробуйте еще раз.

Мне помогло только следующее.

  1. Удалить Podfile.lock
  2. запустить установку модуля
  3. Необязательно - обновить версию SwiftLint

Для меня это была проблема с swiftlint. Это происходит, когда возникают серьезные ошибки, например принудительное разворачивание, который проверяет swift lint.

Фактические ошибки SwiftLint не показаны. Вместо этого отображается эта ошибка «Команда PhaseScriptExecution завершилась неудачно с ненулевым кодом выхода». После небольшой борьбы я понял, что если имя каталога вашего проекта или любые его папки иерархии имеют апостроф с, то фактические ошибки или предупреждения swiftlint не отображаются даже после включения для него сценария выполнения.

Так что мне просто пришлось переименовать свои папки.

Например:

Пользователь -> Проекты Дэйва -> Git -> ProjectName

следует изменить на

Пользователь -> Проекты Daves -> Git -> Имя проекта

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

Другие вопросы по теме