У меня есть простой сценарий ksh, который запускается carthage update --platform iOS в качестве предварительного действия Build, и после обновления до Xcode 10. он запускается с ошибкой. При запуске команды в Terminal генерируется папка Carthage.
carthage update --platform iOS
Carthage
Для воспроизведенияВ этом случае выйдите из Xcode и удалите папки DerivedData и Carthage.Затем откройте Xcode 10 и попробуйте собрать.
DerivedData
Я получаю ошибку:
<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
Cartfile
carthage bootstrap
env -i
xcodebuild
carthage update
Тема без ответов на форумах Apple.
Закрытый билет Alamofire
Решение , которое работало , для меня заключалось в том, чтобы сбросить одну из переменных env, поступающих из XCode 10 непосредственно перед выполнением обновления карфагена:
unset LLVM_TARGET_TRIPLE_SUFFIX
обновление карфагена
Я нашел способ, который действительно делает свое дело и его:
написать одну действительную команду записи после команды обновления 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 (Это действительно помогает):
echo succeed
Протестированная среда:
Carthage 0.31.2
Xcode 10.1
Рабочая демонстрация
https://github.com/MojtabaHs/Carthage-WorkingDemo
Обратите внимание, что это всего лишь хак вокруг описанной проблемы, а не все проблемы с Carthage.