У меня проблема с XCode, когда появляется ошибка «Служба исходного комплекта прекращена», а вся подсветка синтаксиса и завершение кода исчезают в Swift. Как я могу это исправить?
Вот пример изображения:
У меня проблема с XCode, когда появляется ошибка «Служба исходного комплекта прекращена», а вся подсветка синтаксиса и завершение кода исчезают в Swift. Как я могу это исправить?
Вот пример изображения:
Ответы:
Мой ответ (Xcode6-Beta7) был просто удалить папку «Производные данные».
Preferences > Locations > Derived Data > click the arrow to open in Finder > trash it.
Надеюсь, это кому-нибудь поможет. Очевидно, есть много причин, по которым этот сбой может произойти.
источник
Я полагаю, что, возможно, нашел решение более общего назначения. Ниже приведены шаги, которые я использовал, чтобы Xcode не выдавал
SourceKitService Terminated
ошибку.Симптомы у меня были:
Error running playground: Failed prepare for communication with playground.
см. Это изображение в твиттере .OS X
доiOS
, я получал еще одну ошибку (к сожалению, я ее не записывал).SourceKitService Terminated
проблему в этой теме.Процесс отладки:
IDEPlaygroundDocument: Error encountered running playground
com.apple.CoreSimulator.CoreSimulatorService[3952]: The runtime for the selected device is not installed.
Что я сделал, чтобы исправить эту проблему.
Если у вас возникла проблема только в контексте проекта Swift, попробуйте сначала в одиночку. Если это не сработает, попробуйте выполнить все шаги ниже.
Более длительный и сложный процесс. (Первые 3 шага не очень полезны, но я их сделал, поэтому запишите их здесь)
OS X
наiOS
.Анализ
Похоже, проблема в том, что Xcode6 не может правильно найти симулятор и подключиться к нему. Я не смог определить, почему это так, но это позволило мне продолжить разработку со Swift. Это может быть связано с тем, что двоичные файлы симулятора, кажется, переместились .
источник
Вам просто нужно удалить «ModuleCache», это какой-то кеш, используемый XCode для автозаполнения.
Скопируйте и вставьте следующую строку в Терминал:
rm -rf ~ / Библиотека / Разработчик / Xcode / DerivedData / ModuleCache
источник
SourceKitService падает в моей системе, как только я набираю
Я использую Xcode 6 beta 6, и это не имеет значения, если я введу его в пустой файл или добавлю в существующий. Как только источник содержит один
extension
блок, происходит сбой. Это происходит даже на вновь созданных проектах.Мое «решение» - избегать расширения в источниках, над которыми я сейчас работаю. Я закомментирую конец блока класса и начало блока расширения. Как только я закончил свою работу в классе, я комментирую их снова:
источник
Это начало происходить в моем проекте spritekit после вставки функции touchesMoved. Эта функция использует принудительное развертывание, которое, кажется, вызывает проблему:
После удаления восклицательных знаков и, следовательно, прекращения принудительного развертывания, SourceKitService перестала падать.
Надеюсь это поможет!
источник
Я нашел решение на форумах разработчиков Apple (которое требует входа в систему, поэтому я объясню и здесь).
TLDR : не импортируйте
@protocol
в заголовок моста Objective-C для Swift имя, совпадающее с именем@interface
. Например, Facebook SDK имеет протокол и интерфейс с именем «FBGraphObject».Вот сообщение на форуме:
источник
3.17.1
Используйте другое имя, чем Swift для проекта. «Свифт» зарезервирован.
источник
UIView
.У меня была эта проблема каждые несколько секунд в Xcode 6 Beta 3, и она продолжалась даже в совершенно новых проектах. Я изменил цель развертывания с 8.0 до 7.1, и она остановилась.
источник
Ваш проект назван
Swift
? При этом сообщении сборка тоже не удалась бы (<unknown>:0: error: module name "Swift" is reserved for the standard library
). Попробуйте использовать другое имя проекта, напримерSwiftTest
. Это будет работать.источник
Чтобы это исправить, у вас могут возникнуть странные проблемы с кодом Swift. Например, иметь несколько определений IBOutlets, потому что вы были в процессе копирования и вставки. обычно это просто синтаксическая ошибка, которая не может быть обработана.
источник
Я обнаружил, что путем явного (статического) набора типов переменных, а не их вывода, я решил эту проблему.
источник
Выйдите из Xcode, если он открыт. Затем из терминала запустить:
Это восстановит Xcode к настройкам по умолчанию. Откройте XCode, и все должно работать снова.
источник
Для меня (xcode 6.1) причина была в том, что я забыл перенести свой подкласс в протокол.
Например, это неправильно:
и это нормально
источник
Программа, состоящая только из этих двух строк (возможно, неправильная с точки зрения синтаксиса Swift), достаточна для того, чтобы вызвать ошибку «SourceKitService Termination» здесь:
Использование
let
вместоvar
заставляет редактор снова вести себя нормально. Версия Xcode 6.0 (6A215l)источник
Сегодня
println
возникла та же проблема, с чем я столкнулся, я только что попробовал старый стиль NSLog, чтобы напечатать значение:Способ, которым мы должны составлять строки в swift, эволюционировал от стиля printf к встроенному стилю, так что теперь вы встраиваете свои значения прямо в строку формата следующим образом:
Итак, для приведенного выше примера решение таково:
источник
У меня была такая же проблема с Xcode6 beta 3 для проекта, созданного в beta 2.
Это было из-за новых критических изменений в быстром языке, то есть синтаксиса объявления массива.
Проверьте исправленный код из-за критических изменений в бета-версии 3.
http://adcdownload.apple.com//Developer_Tools/xcode_6_beta_3_lpw27r/xcode_6_beta_3_release_notes__.pdf
Один из примеров в моем случае был:
Я должен был изменить:
в
Вывод: похоже, что если в исходном коде есть ошибка, в некоторых случаях эта ошибка создается Xcode.
Решение, пока ошибка не будет устранена: проверьте ее вручную :)
Удачи!
источник
Решением для меня стало изменение симулятора. Я использовал iPhone 5S для своего симулятора, и когда я переключил его на iPhone 5, все работало отлично. Надеюсь, в будущей версии это будет исправлено.
источник
Я обнаружил, что удаление производных данных из терминала решает проблему до следующего сбоя. : S
Он находится по адресу: / Пользователи / {Имя пользователя} / Библиотека / Разработчик / Xcode / DerivedData / {Имя проекта} - {Случайная последовательность символов}
Надеюсь, это поможет.
источник
Я думаю, что я выяснил одну (поскольку их, вероятно, много) из причин, по которым это происходит.
В моем случае я импортировал файлы Objective C через заголовок моста, который имел одно из следующих истинных значений:
Фиксирование целей приложения в файлах Objective-C ИЛИ удаление импорта этих файлов из заголовка Bridging все вместе, кажется, решает проблему.
К сведению - если вам нужно установить целевой файл заголовка (.h), который не имеет файла реализации (.m), вы можете выполнить следующие простые шаги: Не можете изменить видимость целевого членства в Xcode 4.5
источник
Просто чтобы добавить еще одно потенциальное решение, я случайно назвал класс var тем же именем, что и его тип:
Это приведет к краху SourceKit для уверенности. Глупая синтаксическая ошибка, но в случае, если кто-то другой сделает такую же ошибку.
Редактировать: также в соответствии с @Portland Runner:
Точно так же, если вы установите тип возвращаемого значения в имя функции, вы получите ошибку.
источник
func foo() ->foo{}
(не стесняйтесь добавлять его в свой ответ)Когда эта ошибка начинает появляться, просто закомментируйте последний / последний фрагмент кода, который вы написали, и подождите некоторое время. Подсветка синтаксиса должна появиться снова. Вот как я обхожу проблему.
источник
Об этом сообщает Apple (# 17266321):
Подробности:
Сводка: если мы пытаемся напечатать словарь со значением в виде массива, всплывающее окно продолжает выдавать сообщение: «SourceKit прекращен. Функциональность редактора временно ограничена». Xcode зависает и теряет распознавание контекста, в результате чего текст становится черным.
Шаги для воспроизведения: 1. Создайте массив как - "var iOSHistoryArray = [" iOS6 "," iOS7 "," iOS8 ",]"
Создайте словарь как - "var MacOSYosemiteFeatures: Dictionary = [" Устройство ": iOSHistoryArray]".
Распечатать словарь как - "println (" Словарь, содержащий значение массива:% @ \ n ", MacOSYosemiteFeatures)" (<< - Culprit - >>)
Шаг 3 вызывает комментирование проблемы, которое делает функциональность XCode снова.
Ожидаемые результаты: Xcode должен работать нормально.
Фактические результаты: Xcode становится нефункциональным, теряет распознавание контекста (весь шрифт теряется, а весь текст становится черным), весь Xcode становится неактивным.
Версия: версия 6.0 (6A215l)
источник
Попытайся:
источник
Проблема:
Мой случай: установлена бета-версия 3, проект только для OSX, один файл обнаружил ошибку «оператор полузакрытого диапазона был изменен с .. на .. <». Всплывающее окно начинает появляться, и подсветка кода начинает терпеть неудачу.
Решение:
источник
В xcode перейдите в строку меню >> окно >> устройства (shift + cmd + 2), появится новое окно, а слева внизу добавьте новый симулятор, в частности, тот, который работает на iOS 8.0, к редактированию существующего списка. : вам может понадобиться перезапустить xcode
ссылка: http://www.reddit.com/r/swift/comments/2bznfo/error_running_playground_unable_to_find_suitable/
источник
В моем случае я импортировал отсутствующие файлы в заголовок моста. После того, как я удалил неправильный импорт, уведомление об ошибке пропало.
источник
У меня была та же ошибка с вложенным проектом Objective-C ++, который теперь включает Framework с кодом Swift. Чтобы решить эту проблему, мне пришлось явно построить фреймворк. Как только я это сделал, проблема исчезла и больше не возвращается;)
источник
Все еще происходит с версией 6.0 xcode 6 (6A313)
Сбои
ps: новый Mac mini, никаких предыдущих установок xcode, ничего экзотического. Полагаю, просто бета-продукт.
источник
Xcode 6.1 Beta 3:
Как только вы определили псевдоним не закрытого типа (например,
typealias Foo = Int
) в одном файле Swift, введите буквуc
в другом файле, исходный сбой SourceKitService.Решение - либо отказаться от использования псевдонимов типов, дождаться следующей бета-версии или включить псевдонимы типов в определения классов:
и используйте это так:
источник
Изменение цели развертывания на iOS 8.0 сработало для меня. Я знаю, что кто-то сказал, что перенос его на <= 7.1 сработал, но, похоже, эта проблема возникла из нескольких источников, поэтому эта альтернатива может сработать.
источник