Классы Objective C не могут быть распознаны в быстром после обновления до Xcode 10 - PullRequest
0 голосов
/ 26 сентября 2018

У меня есть проект iOS, который был разработан как Swift 4, так и Objective C, все хорошо, когда используется Xcode 9.

После обновления XCode до 10.0 мои swift классы не могут распознавать классы и библиотеки Objective C, которые выдают ошибку

'{project_name} -Swift.h' файл не найден

и

Использование необъявленного типа 'xxxxx'

Последняя ошибка появляется по крайней мере в следующих ситуациях:

  • Системный целевой класс C (например, UIImage, UIView ...)

  • Целевой класс C в библиотеках кокоподов (таких как AFNetworking 2 ...)

  • Пользовательская цель c классом

  • #define переменные в файле .h

Я все еще использую Swift 4 пока(не 4.2).Попробовал почистить папку сборки и удалить DerivedData и собрать заново, эти ошибки все еще существуют.

1 Ответ

0 голосов
/ 27 сентября 2018

Я решаю проблему, перемещая один из фреймворков в Фазах сборки.

Цели -> Фазы сборки -> Связать двоичные файлы с библиотеками -> (удалить) фреймворк

При просмотре ссылкиДвоичные файлы с библиотеками. Я заметил, что есть некоторые фреймворки, у которых значок имеет более светлый цвет (кажется, неактивен), после удаления фреймворка и повторной сборки все в порядке.

В моем случае я удаляю фреймворк Bolts, которыйУстановлен в сопровождении Facebook SDK.Ранее я использовал Cocoapods для обновления Facebook SDK вместо добавления библиотеки Facebook SDK в проект вручную.

...