Я обновил Xcode до 8.1 GM и теперь получаю следующую ошибку для SwiftyJSON. Другие импортированные фреймворки вроде работают. Есть ли способ заставить это работать в Swift 3, пока SwiftyJSON не обновит свою структуру? Я использовал Carthage для импорта / обновления фреймворков. Я также Use Legacy Swift language version
безрезультатно пытался включить или выключить.
Модуль, скомпилированный с помощью Swift 3.0, невозможно импортировать в Swift 3.0.1: Modules / SwiftyJSON.swiftmodule / arm64.swiftmodule
источник
Cartfile
так, чтобы я мог просто печатать, аcarthage update
другим разработчикам не нужно было знать / беспокоиться о дополнительных флагах?Удалите приложение chache из DerivedData и перестройте. ошибка может быть исправлена.
Путь DerivedData выглядит следующим образом:
~/Library/Developer/Xcode/DerivedData/
источник
Убедитесь, что вы поместили новый пакет XCode 8.1 GM в папку «Приложения». Мы столкнулись с этой проблемой, когда один из нас запускал Carthage для обновления наших зависимостей, но не заменил старое приложение XCode 8.0 в папке приложений (8.1 GM работала с рабочего стола).
Вы хотите убедиться, что когда вы запускаете в терминале следующее:
xcrun swift -version
что он возвращаетсяApple Swift version 3.0.1
.источник
carthage update --platform iOS --no-use-binaries
но до сих пор не работает. Я очистил свой проект и перезапустил Xcode, но по-прежнему получаю сообщение об ошибке. Что еще я могу попробовать?Apple Swift version 3.0.1 (swiftlang-800.0.58.6 clang-800.0.42.1) Target: x86_64-apple-macosx10.9
Xcode
Для меня сработало обновление по умолчанию на новый на терминале.Шаг 1. Используйте следующую команду, чтобы обновить версию Xcode до последней версии в Терминале. Ссылка
sudo xcode-select -switch <path/to/>Xcode.app
Шаг 2. Теперь попробуйте команду обновления carthage.
источник
Просто чтобы дать последние обновления:
Carthage выпустила версию 0.20 27 февраля 2017 года.
Carthage теперь использует предварительный двоичный файл только в том случае, если доступный предварительный двоичный файл совместим .
При этом вам больше не нужно использовать:
--no-use-binaries
чтобы избежать несовместимой предварительной сборки.Поэтому убедитесь, что у вас есть версия Carthage выше,
0.20
и просто выполните:источник
--no-use-binaries
? Carthage должен уметь определять, совместим ли двоичный файл с вашей версией компилятора. Если он несовместим, он должен автоматически удалить загруженный двоичный файл и построить фреймворк локально.Как сказал @zirinisp:
carthage update --platform iOS --no-use-binaries
xcrun swift -version
чтобы увидеть версию SwiftXcode->preferences->locations
чтобы очистить производные данные и данные архивов, наиболее важно изменить инструменты командной строки на "Xcode 8.1
"xcrun swift -version
вы можете увидеть, что версия swift - 3.0.1Use Legacy Swift Language Version = NO
Я надеюсь это поможет тебе
источник
Переместите бета-версию / GM-версию, если Xcode в папку / Applications, и назовите ее Xcode-beta.
Проверьте вывод:
xcrun swift --version
при запуске этой команды в терминале ее выходные данные должны совпадать с версией Swift, которую вы хотите, чтобы приложение скомпилировало, потому что Carthage использует выходные данные этой команды для определения локальной версии Swift.
Обновите версию Xcode до последней версии в терминале, выполнив следующую команду:
sudo xcode-select -s /Applications/Xcode-beta.app/
Соберите библиотеки для iOS и предотвратите загрузку Carthage существующих (но несовместимых) предварительно скомпилированных двоичных файлов, выполнив следующую команду:
carthage update --platform iOS --no-use-binaries
Очистить и построить
источник
У меня была точно такая же проблема с библиотекой
XCTest_Gherkin
, у меня она работала:Product
->Scheme
->XCTest-Gherkin
Product
->Build
Надеюсь, это поможет. Я использую Cocoapods.
источник
В настройках сборки Xcode убедитесь, что ваши пути поиска Framework содержат соответствующую папку сборки Carthage:
$(inherited) $(PROJECT_DIR)/Carthage/Build/iOS
источник