Не может ссылаться на классы и методы универсального фреймворка 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".
1 ответ
В конце концов, это была известная проблема Xcode 10.248635615, которую можно найти здесь.
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