Ответ 1
Убедитесь, что ваша версия Swift Language Version находится в правильной версии. SwiftMessages 6.0.0 работает с Swift 4.2.
Я недавно обновил XCode до версии 10 и начал получать странную ошибку при попытке построить мой проект. Я в настоящее время на Swift 4.0, и я попытался обновить до версии 4.2 Swift. Но когда я это сделал, я получил эту же ошибку во многих моих фреймворках.
Сбой команды Compile Swift с ненулевым кодом завершения
Пока я удалил производную папку. Обновил все модули, также удалил все модули и переустановил их, используя команды терминала ниже.
sudo gem install cocoapods-deintegrate cocoapods-clean
pod deintegrate
pod clean
pod install
Это не сработало, чтобы исправить мою проблему. Тем не менее, я нашел кое-что, что могло бы сработать, добавив arm64
в Build Setting → valid architectures
и включив автоматический код. Но, когда я проверил, это уже было, и подписывание кода уже было включено.
Кроме того, у меня есть несколько других ошибок сборки, связанных с фреймворками.
SwiftMessages
Значение типа 'SwiftMessages.Config' не имеет члена 'presentationContext'
WhatsNewKit
Отсутствует аргумент для параметра 'backgroundColor' в вызове '
Я открыл проблемы с разработчиками каждой из этих платформ, чтобы обратиться за помощью в этих вопросах.
Проблема на GitHub SwiftMessage Проблема на GitHub WhatsNewKit
Когда я нажимаю presentationContext
он приводит меня к структуре в рамках SwiftMessages
Framework. Обычно, когда я получаю предупреждение "нет члена", я не могу щелкнуть, чтобы увидеть исходное место, где оно существует.
Я предполагаю, что это как-то связано с cocoa-бобами, но пока не удалось найти решение. Что я могу сделать, чтобы исправить эту проблему? Если бы кто-нибудь мог помочь, я был бы очень признателен, если бы я оставался в этом на один день.
Обновление: две последние сборки были для быстрой версии 4.2. Когда я изменил версию каждого фреймворка на тот, что был встроен в swift 4.0, я получил проект для сборки.
Убедитесь, что ваша версия Swift Language Version находится в правильной версии. SwiftMessages 6.0.0 работает с Swift 4.2.
для pod SwiftMessages, если ваше приложение не быстрое 4.2, вам нужно указать версию 5.01 pod 'SwiftMessages', '~> 5.0.1'
и он будет работать как шарм
Установите версию Swift на 4.2, затем деинтегрируйте pod, установите pod, исправьте эту проблему для меня. Спасибо @alejandro-iván
У меня было несколько фреймворков (доморощенных) плюс мое приложение. Каким-то образом они оказались несинхронизированы до версии Swift. Убедитесь, что все фреймворки имеют одинаковую версию. В моем случае все они должны были быть установлены на Swift 4.2. Если вы еще не выполнили переход на 4.2, помните, что Xcode помогает с этим: Правка → Преобразовать → В текущий синтаксис Swift.
Я решил так:
Повторите шаги 2 - 3 - 4 -5 для каждой библиотеки uncomment в вашем файле .pod
Надеюсь, это поможет.
Убедитесь, что в настройках вашей сборки проекта уровень оптимизации отсутствует в " Без оптимизации" [-Onone].
Все ответы были полезны для меня. В моем случае я устанавливаю фреймворки только вручную, но такая проблема также возникает. Я попробовал все ответы и все еще получал эту проблему во время сборки. Любопытно, что во время кодирования я мог щелкнуть кнопкой мыши и разрешить все "отсутствующие" компоненты. Я также очистил и удалил производные данные, перезапустил Xcode и т.д.
В конце концов я получил его, вызвав эти дополнительные шаги:
По каждому из рамочных проектов/целей (включая мою):
Та же проблема произошла со мной в Xcode 10.2, это была ошибка Xcode..! Итак, я открыл в более старой версии XCode (9.4), и он работал нормально. Затем я обновился до Xcode 10.2.1 после его выпуска → Очистите и постройте свой проект, теперь моя проблема решена.
В моем случае я подключаю реальный iphone, а не симулятор и запускаю приложение на нем, это решило проблему. Но сначала подключите iphone, затем выберите его в этом меню и нажмите кнопку запуска. Проблема тоже решит.
Я наткнулся на эту проблему при обновлении до Xcode 10.2 и Swift 5. После того, как попробовал все, я нашел это в примечаниях к выпуску:
Компилятор Swift может дать сбой во время сборки, когда включен Thread Sanitizer. (48719789)
И, конечно же, после отключения Thread Sanitizer мой проект может быть скомпилирован без ошибок снова.
Так что, если вы получили эту ошибку и включили Thread Sanitizer - выключите его!
У меня та же проблема, у меня версия Xcode 10.2.1 (10E1001), версия Cocoapods 1.7.0.beta.2.
Я вернулся к Cocoapods 1.6.1, и проблема была решена. Конкретные шаги:
pod deintegrate
чтобы отменить интеграцию.Удалите все Cocoapods.
for i in $( gem list --local --no-version | grep cocoapods );
do
gem uninstall $i;
done
Установите стабильную версию Cocoapods. На данный момент это 1.6.1.
gem install cocoapods
Чистый проект и пустые DerivedData
pod install
Позвольте мне поделиться своим опытом с исправлением этой проблемы.
Откройте цель → Этапы сборки → Копировать ресурсы комплекта и удалите info.plist.
Примечание. Если вы используете какие-либо расширения, удалите info.plist этого расширения из целей.
Надеюсь, поможет.
В моем случае это была ошибка кода:
self.myDto.map{ (dto)} in
var stringValue = (dto.value(forKey: "name") as! String)
stringValue.append("c")
return stringValue
}
Просто удалил эту переменную stringValue
чтобы stringValue
проблему.
У меня просто было то же сообщение об ошибке, и ни один из ответов здесь и в дубликатах этого вопроса не был применим к моему проекту или полезен. Я продолжал читать сообщения об ошибках и пришел к выводу, что я тупо назвал два отдельных файла swift в разных папках с одним и тем же именем, намереваясь изменить одну, но перед тем, как изменить одну, я попытался запустить свой проект и был раздражен в течение последнего часа.
В итоге, не случайно называйте ваши файлы одинаковыми именами и внимательно читайте коды ошибок!