по какой причине текущий SwiftyJSON (через Swift 3.0.2) не может быть импортирован с помощью Swift 3.1

Когда я сегодня попытался обновить Xcode8.3 (8E162) — после обновления carthage — возникла ошибка:

Текущий SwiftyJSON (через Swift 3.0.2) не может быть импортирован с балабалой Swift 3.1

и я обнаружил, что SwiftyJSON не выполнил успешную проверку в терминале. Позже, утомив меня в течение нескольких часов, я обнаружил, что решение содержится в официальном
Ошибка репозитория GitHub №771:
«Текущий SwiftyJSON (через Swift 3.0) не может быть импортирован с помощью Swift 3.0.2».
.

А также с командой

:carthage update --no-use-binaries SwiftyJSON --platform iOS

вам нужно удалить и снова добавить SwiftyJSON.framwork.

Хотя эта проблема решена, но я не знаю причину, знает ли кто-нибудь из друзей, почему?


person Lawrence    schedule 29.03.2017    source источник
comment
Я улучшил некоторые основные (код) форматирование/орфографию/выделение и грамматику.   -  person zx485    schedule 29.03.2017
comment
на самом деле, я хочу спросить: в чем причина этой ошибки?   -  person Lawrence    schedule 30.03.2017
comment
Приношу свои извинения за то, что мне не удалось в достаточной мере переосмыслить ваш вопрос. Но если вы знаете лучше, потому что вы задали этот вопрос, почему бы вам не отредактировать его соответствующим образом?   -  person zx485    schedule 30.03.2017
comment
О нет, это моя вина, что я впервые задаю вопрос на этой платформе, у меня нет опыта, как кратко интерпретировать мой вопрос, большое спасибо.   -  person Lawrence    schedule 31.03.2017
comment
Извините, если я вас оскорбил, но вместо того, чтобы просто отредактировать ваш вопрос должным образом (и это ваш способ!), вы решили и дальше принижать мои усилия помочь вам.   -  person zx485    schedule 31.03.2017


Ответы (2)


Пожалуйста, убедитесь, что вы используете быстрый запуск 3.1, набрав «swift --version» в CLI. Если вы все еще видите «Apple Swift версии 3.0.2», это означает, что ваш Mac использует компилятор swift 3.0.2. Попробуйте заменить xcode 8.3 на xcode 8.2.1, может поможет.

person Hung Nguyen    schedule 31.03.2017
comment
да, я думаю, что эту ошибку можно обойти, если я перезапущу свой Mac при обновлении Xcode. - person Lawrence; 31.03.2017

Спасибо, ваш вопрос заставил меня работать, потратив на него целый день - я не мог понять, в чем проблема.

Теперь я знаю, в чем была проблема, похоже, причина в том, что SwiftyJSON публикует бинарные версии своего фреймворка, которые Carthage скачивает и использует. Они не были обновлены для Swift 3.1 (SwiftyJSON 3.1.4 был выпущен 10 января), и без переключателя --no-use-binaries Carthage будет использовать его, даже если он недействителен.

person Colin Nicholson    schedule 10.04.2017
comment
Ага, Звучит очень разумно, возможно, мне нужно понять основной принцип карфагена, чтобы действительно избежать таких проблем в будущем - person Lawrence; 11.04.2017