Carthage не запускается при запуске из Xcode 10 Build pre-action - PullRequest
0 голосов
/ 25 октября 2018

У меня есть простой сценарий ksh, который запускается carthage update --platform iOS в качестве предварительного действия Build, и после обновления до Xcode 10. он запускается с ошибкой. При запуске команды в Terminal генерируется папка Carthage.

Для воспроизведенияВ этом случае выйдите из Xcode и удалите папки DerivedData и Carthage.Затем откройте Xcode 10 и попробуйте собрать.

Я получаю ошибку:

<unknown>:0: error: unable to load standard library for target 'arm64-apple-ios8.0-simulator'

** ARCHIVE FAILED **


The following build commands failed:
    CompileSwift normal armv7
    CompileSwiftSources normal armv7 com.apple.xcode.tools.swift.compiler
    CompileSwift normal arm64
    CompileSwiftSources normal arm64 com.apple.xcode.tools.swift.compiler
(4 failures)
Build Failed

Установка

  • Карфаген 0.31.1 - 0.33.0
  • Cartfile указывает на Alamofire 4.7.3

Вещи, которые я пробовал

  • Использование carthage bootstrap, не работало
  • ПовышениеЦель зависимости Alamofire для iOS 8.4 и 10 (из локального форка), не работает
  • Все ответы из этого SO вопроса. , не работает
  • Использование env -i как рекомендовано в открыть билет в Карфаген , не работает

Решения

  • Выберите "Универсальное устройство iOS" при сборке в первый раз.
  • Передача параметра SDK непосредственно в xcodebuild, , найденная в этом ответе. Это вынуждает вас написать свой собственный carthage update, состоящий из проверки и сборки.Только эта опция работала как предварительный шаг Xcode Build. Решение было протестировано.

Некоторые ссылки

Тема без ответов на форумах Apple.

Закрытый билет Alamofire

Ответы [ 2 ]

0 голосов
/ 01 марта 2019

Решение , которое работало , для меня заключалось в том, чтобы сбросить одну из переменных env, поступающих из XCode 10 непосредственно перед выполнением обновления карфагена:

unset LLVM_TARGET_TRIPLE_SUFFIX

обновление карфагена

0 голосов
/ 04 ноября 2018

Я нашел способ, который действительно делает свое дело и его:

написать одну действительную команду записи после команды обновления Carthage

Так что следуйте этому контрольному списку:

  • Убедитесь, что инструменты командной строки настроены для использования Xcode 10.1.Запустите следующую команду из терминала:

    sudo xcode-select -s <path to Xcode 10.1>/Contents/Developer

  • Убедитесь, что для файла сценария требуются разрешения:

    chmod 777 <path-to-script-file>

  • Записать одну действительную команду записи после команды carthage update, например echo succeed (Это действительно помогает):

    Example

Протестированная среда:

  • Carthage 0.31.2
  • Xcode 10.1

Рабочая демонстрация

https://github.com/MojtabaHs/Carthage-WorkingDemo

- САМЫЙ ВАЖНЫЙ ШАГ

  • НЕ ЗАБЫВАЙТЕ для записи одной действительной команды записипосле команды обновления Carthage

Обратите внимание, что это всего лишь хак вокруг описанной проблемы, а не все проблемы с Carthage.

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