Не может ссылаться на классы и методы универсального фреймворка Swift из универсального фреймворка Objective-C - PullRequest
0 голосов
/ 08 мая 2019

У меня есть среда 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 Ответ

0 голосов
/ 12 мая 2019

В конце концов это была известная проблема 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...