Невозможно ссылаться на классы и методы универсальной платформы Swift из универсальной платформы Objective-C.

У меня есть фреймворк Objective-C под названием «Box», в котором используется фреймворк Swift под названием «Utils». Оба имеют стандартную цель, которую я использую во время разработки, а также пользовательскую цель, которую я использую, когда разработка завершена, и мне нужно создать универсальную структуру.

До Xcode 10.2/swift 4 все работало хорошо, и я смог скомпилировать универсальные фреймворки «Box» и «Utils» и использовать их в тестовом приложении, написанном на Swift, или в качестве фреймворков внутри других фреймворков.

Переключившись на Xcode 10.2/swift 5, я больше не могу ссылаться на объекты и методы «Utils» из «Box», по крайней мере, не для всех целей.

Если я использую стандартную цель «Box» и реальное устройство, я могу создать структуру и запустить их в тестовом приложении. Я могу указывать и щелкать объекты/методы «Utils» из «Box», чтобы ссылаться на них.

Если я использую стандартную цель "Box" и симулятор, я не могу построить фреймворк, и у меня возникают такие ошибки, как:

"No visible @interface for 'UIColor' declares the selector 'initWithHexString:'" -> initWithHexString is a method declared into an extension of UIColor inside "Utils" framework

"use of undeclared identifier 'StringUtils'" -> StringUtils is a class declared inside "Utils" framework

то же самое, если я попытаюсь создать универсальный фреймворк "Box" с его пользовательской целью (цель с классическим скриптом, используемым для создания универсальных фреймворков)

Итак, по неизвестной причине, начиная с Xcode 10.2, для какой-то цели я больше не могу ссылаться на структуру «Utils» из «Box». Все методы отмечены @objc, так что это не проблема.

Любая идея о том, что может быть проблемой?

Не знаю, нужно ли добавить какую-то другую полезную информацию...

Большое спасибо!

Обновление: я попытался импортировать фреймворк «Utils» в фреймворк Swift, созданный «на лету», чтобы выполнить тест. И это, кажется, работает. Так что это кажется проблемой, когда я пытаюсь импортировать фреймворк Swift «Utils» в фреймворк Objective-C «Box».


person DSoldo    schedule 08.05.2019    source источник


Ответы (1)


В конце концов, это была известная проблема Xcode 10.2, 48635615, которую можно найти здесь.

https://developer.apple.com/documentation/xcode_release_notes/xcode_10_2_release_notes?language=objc

из этой ветки форума

https://forums.developer.apple.com/message/359642

Я нашел этот скрипт, который решил мою проблему

https://gist.github.com/Shehryar/0c29cce7eead9c724b4c16b018bab63f

person DSoldo    schedule 12.05.2019