Я пытаюсь связать сложный родной проект для Xamarin. Проект Obj-C UI, который зависит от обложек Native Obc-С++ поверх библиотеки С++ (это встроенный проект):
У меня есть собственный исходный и тестовый проект в Xcode, и все идет хорошо.
Затем я создаю живые библиотеки всех зависимостей, добавляю их в проект привязки к xamarin.
В основном проекте мне пришлось настроить параметры gcc для симулятора и устройства:
-vvvv -cxx --registrar:static -gcc_flags "-L${ProjectDir}/../RMSDKWrapper -dead_strip -lstdc++ -lstdc++.6.0.9 -lpthread -lsqlite3 -lxml2 -ObjC -ladept-iOS -lxml-iOS -lz -lcurl -lssl -lcrypto -ldp-iOS -lePub3-iOS -L/usr/lib -I/usr/include/libxml2"
Все отлично работает на Simulator, но когда я пытаюсь скомпилировать это для устройства, компоновщик не может связывать libs из-за повторяющихся символов. Я проверил все библиотеки с помощью "nm", все объекты выглядят одинаково для Simulator и Device.
Я видел, что только дублированные объекты - это классы Obj-С++ во встроенной оболочке (rmsdk_wrapper2.xcodeproj). nm
находит объекты в оболочке lib и в lib из хост-проекта (TestRMSD.xcodeproj). Но для симулятора он хорошо решает, ни для устройства.
UPD Версия XS: https://gist.github.com/ad1Dima/eb1cc390930e191a5454260da2410c91
Журнал сборки: https://gist.github.com/ad1Dima/8ea8c4a271ef63efb310252234b32ae5
Мне нужна идея, как я могу решить эту проблему.