Я получаю 4 ошибки из-за неправильного формата JSON, и одна команда compileSwift завершилась с ошибкой ненулевого кода выхода.
Я понятия не имею, как это отладить, поскольку в нем не указано, в каком файле это происходит.
Я попытался удалить каталог рабочей области и модулей и выполнить новую установку модуля и обновление модуля.
Я попытался удалить производные данные.
Ни один из них не работал.
Почему люди минусуют это? У меня такая же проблема после перемещения некоторых файлов в Finder, чтобы избежать испорченного файла pbxproj. @mocode10 ты докопался до этого?
@DeclanMcKenna Я знаю, что для тебя, наверное, уже слишком поздно, но проверяй мой ответ на наличие ответов ;-)





Вкладка отчетов (последняя) на панели навигации поможет вам в таких ситуациях. Вы можете просматривать подробные журналы действий по сборке и отслеживать их.
Я столкнулся с точно таким же сообщением об ошибке при преобразовании рабочей области из Swift 4.2 в Swift 5. Даже с той же числовой последовательностью в сообщении об ошибке.
Команда swiftc умирала для некоторых символов Юникода в моем исходном файле (в шаблоне авторских прав в верхней части моего файла). Как предложил t0rst, вы можете использовать инспектор, чтобы увидеть, в каком файле команда умерла.
После удаления символов юникода сборка заработала. Я подозреваю, что могут быть некоторые проблемы с обновлением для использования UTF-8 в качестве класса хранения по умолчанию.
РЕДАКТИРОВАТЬ. Только что обнаружил, что хранилище Unicode в файле-нарушителе действительно было неправильным. В терминале запустите file *.swift на ваших исходных файлах. Файлы с «текстом Unicode UTF-8» в порядке. Файл, вызвавший проблему, отмечен как «текст ISO-8859». Используйте iconv -t UTF-8 src dst, чтобы исправить файл.
Я получал ту же ошибку, и, прочитав комментарии выше, я просмотрел свой код и увидел это «возврат 93а» Итак, после удаления этого «а» теперь все работает нормально.
Итак, вот моя история по той же самой проблеме, но совершенно по другой причине и решению.
TL; DR - декодируйте этот проблемный массив как строку и прочитайте его, это ваша настоящая проблема, а не проблема с JSON.
А вот и вся моя история...
Перво-наперво... Я получил эту ошибку, переместив файлы приложения в фреймворк и изменив их цель.
Я попробовал все, что вы, ребята, предложили, но безуспешно, мне потребовалось некоторое время, чтобы выяснить, как рекурсивно сообщать об этих файлах. Если кто-то хочет проверить свою кодировку во всем проекте, вот как это сделать:
find . -type f -name "*.swift" -exec file {} +
Все мои файлы сообщали либо ASCII, либо UTF-8, я даже удалил все символы Unicode, чтобы сделать их все ASCII, и это все равно не помогло.
Так или иначе, в полном отчаянии я решился на последнюю попытку... пытаясь расшифровать то, что было в этой не поддающейся расшифровке последовательности байтов.
Я открыл консоль браузера и сделал следующее:
String.fromCharCode(...[123, 10, 32, 32, 34, <the rest of the error array from XCode>])
И это спасло мой день, предоставив актуальную информацию о проблеме.
То, что я получил, было фактическим сообщением об ошибке, которое по какой-то причине (до сих пор мне неизвестной) компилятор не смог обработать.
Вот небольшой отрывок, из которого вы также можете понять, почему все люди видят одну и ту же последовательность в начале:
{
"kind": "finished",
"name": "compile",
"pid": 27181,
"output": ...
... /RecognizedSymbolBlock.swift:5:15: error: use of undeclared type 'CGRect'\n let rect: CGRect;\n ...
... /RecognizedTextBlock.swift:3:7: error: type 'RecognizedTextBlock' does not conform to protocol 'Decodable'\nclass RecognizedTextBlock ...
Итак, моя проблема заключалась в том, что фреймворк CoreGraphics не был включен в цель, а также не был добавлен с помощью import CoreGraphics в самом файле.
Как ни странно, когда я посмотрел на этот файл в XCode (чего я раньше не делал, поскольку это был всего лишь перенос кода, который работал раньше), я вдруг ясно отобразил все эти ошибки.
Мой последний странный вывод был после того, как я спросил себя: «Какого черта это сработало в исходной цели без import CoreGraphics?»
Оказалось, что наличие этого в заголовочном файле моста автоматически приводит к связанным с ним фреймворкам, как если бы они были импортированы во все мои файлы (это одна из связанных фреймворков, которые я использую, которая использует UIKit):
#import <TesseractOCR/TesseractOCR.h>
Но на самом деле это может быть что угодно, например:
#import <UIKit/UIKit.h>
Дело в том, что если вы используете заголовочный файл моста, он может легко скрыть тот факт, что вы не обязаны писать согласованный код со всеми необходимыми импортами.
В любом случае, моя основная цель — дать всем понять, что их первоначальная проблема, скорее всего, является чем-то совершенно другим, и первоначальная проблема на самом деле закодирована в том массиве байтов ошибок, который каждый получает. Даже если вы столкнетесь с проблемами кодирования, этот массив байтов может указать вам, что не так с вашим кодом.
Удачного исправления!
такой же. перенос кода во фреймворк. Я хотел бы уточнить... в консоли разработчика Google... String.fromCharCode(123, 10, 32, 32, 34, 107, 105, 110, 100, 34, 58,...) без [] даст вам именно то сообщение об ошибке, которое говорит @martinh_kentico. И это скажет вам, какой файл. В моем случае исправлено добавлением импорта для нового фреймворка.
интересно... У меня был класс под названием Категория. Что было хорошо, когда все было на уровне приложения. Но на уровне фреймворка это серьезно сбивало с толку компилятор. Я переименовал его в ABCCategory, и вся эта странная проблема с недопустимым быстрым JSON исчезла ... до переименования у меня было 14 из них.
В моем случае я случайно оставил один из исходных файлов зашифрованным во время компиляции. Благодаря вашему ответу я смог увидеть истинную ошибку, используя fromCharCode, которая была связана с недопустимыми символами UTF-8.
В моем случае эта ошибка компиляции была вызвана проблемой кодирования/декодирования исходного кода. Попробуйте закрыть Xcode и программы, работающие с кодом одновременно, и перезапустить Xcode
Я просто закрыл и снова открыл Xcode. Это устранило ошибку. Но потом я заметил мусорный символ в исходном коде, потому что моя глупая кошка наступила на клавиатуру моей книги Mac, когда шла к подоконнику. Будет, когда я научусь?
У меня были те же ошибки из вопроса. Я перетащил файл из проекта_1 в проект_2, и вдруг все эти ошибки появились внутри проекта_2. Странно то, что новый файл, который я перетащил, не имел ничего общего с ошибками, потому что они появились в совершенно других файлах, которые я ранее перетаскивал из проекта_1. Эти файлы работали нормально в течение нескольких месяцев, и ошибки не появлялись до тех пор, пока я не перетаскивал новый файл.
Я закрыл Xcode, снова открыл его, и пляжный мяч смерти начал вращаться. Xcode был в основном заморожен, мне пришлось ждать около 45 минут, чтобы он разморозился.
Я добавил скриншоты ошибок и шаги, которые я должен был сделать, чтобы решить эту проблему.
1- Это были исходные ошибки, как и в вопросе оператора. У меня была 151 ошибка:
2- После того, как пляжный мяч перестал вращаться, я начал просматривать все свои файлы. Я столкнулся с файлом, который каким-то образом был поврежден, и его обычный код каким-то образом был заменен странным кодом внутри средней/правой панели ниже.
Копирование и вставка поврежденного кода из средней/правой панели вообще не сработало, что было странно, но я выполнил глобальный поиск (cmmnd+4) для «закладки», и появилось еще 6 файлов, которые также содержали поврежденный код (показанный внутри левую панель навигации).
«закладка» — это первое слово в строке 1 внутри файла в средней/правой панели, поэтому я выбираю его:
3- Я скопировал 6 файлов из исходного проекта обратно в этот проект (поврежденный), и ошибки увеличились со 151 до 10 новых ошибок. Все 10 ошибок были Invalid UTF-8 found in source file:
4- Я заглянул во все 6 файлов и внутри закомментированного кода в самом верху файла был странный символ вместо символа копирайта в строке 6:
5- Я удалил странный символ и все снова заработало.
Я не знаю, как эти файлы были повреждены. Я думаю, что это как-то связано с перетаскиванием их из одного проекта в другой. Вероятно, это был просто случайный баг. Чтобы быть в безопасности, я удалил 6 файлов, а затем добавил их обратно один за другим, фактически создав новый файл внутри Xcode проекта_2. Затем я копирую код из того же файла из проекта_1 обратно в проект_2. Мне больше не нужно перетаскивать файлы Swift из проекта в проект.
Очень странно.
Я просто закрыл и снова открыл Xcode. Это устранило ошибку. Но потом я заметил мусорный символ в исходном коде, потому что моя глупая кошка наступила на клавиатуру моей книги Mac, когда шла к подоконнику. Будет, когда я научусь?
В моем случае я случайно добавил ярлык к быстрому файлу, а не к самому быстрому файлу.
Чтобы расшифровать приведенный выше код. Щелкните правой кнопкой мыши на странице браузера, нажмите «Проверить» и откройте вкладку «Консоль». На вкладке консоли String.fromCharCode(123, 10, 32,23) замените на свои числа и нажмите Enter. Вы получите точную задачу в читаемом формате.
То же самое уже было объяснено в этот ответ.
Что такое
checkin? Это третья сторона одной из ваших целей?