У меня есть две платформы в моем проекте XCode, которые оба определяют класс с одинаковым именем (B.framework и C.framework оба имеют класс с именем MyClass), что приводит к паре предупреждений, таких как:
Duplicate symbol _OBJC_METACLASS_$_MyClass originally in B.framework/B(MyClass.o) now lazily loaded from C.framework/C(MyClass.o)
Duplicate symbol _OBJC_CLASS_$_MyClass originally in B.framework/B(MyClass.o) now lazily loaded from C.framework/C(MyClass.o)
Затем во время выполнения загружается только одна из реализаций, и попытка использовать другую приведет к «нераспознанному селектору, отправленному экземпляру», потому что это совершенно разные классы (даже если они имеют одинаковое имя).
Я использую одну из реализаций MyClass непосредственно в своем коде, но другая инфраструктура использует только свой MyClass , и я понятия не имею, почему он даже экспортируется (его даже не упоминают в заголовочных файлах фреймворков, я использовал nm
для просмотра символов).
Как я могу заставить обе платформы работать?