Próbuję połączyć skomplikowany projekt natywny dla Xamarin. To projekt Obj-C UI, który zależy od Native OBC-C++ wrapper nad C++ biblioteki (jest osadzony projektu): Xamarin iOS Łączenie natywne działa na symulatorze, duplikaty symboli na urządzeniu
mam własnego źródła i projekt testowy w Xcode i wszystko idzie dobrze.
Następnie tworzę fat biblioteki wszystkich zależności, dodam je do projektu wiązania xamarin.
W głównym projektu miałem do opcji konfiguracji samych gcc dla symulatora i urządzenia:
-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"
wszystko działa poprawnie na symulatorze, ale gdy próbuję skompilować to dla urządzenia, łącznikowa może Łącza biblioteki z powodu duplikatów symboli. Sprawdziłem wszystkie biblioteki używając 'nm', wszystkie obiekty wyglądają tak samo dla Symulatora i Urządzenia. Widziałem, że tylko obiekty, które zostały zduplikowane, to klasy Obj-C++ we wbudowanym opakowaniu (rmsdk_wrapper2.xcodeproj). nm
wyszukuje obiekty w bibliotece otoki i lib z hosta (TestRMSD.xcodeproj). Ale dla symulatora dobrze się sprawdza, nie dla urządzenia.
UPD XS Wersja: https://gist.github.com/ad1Dima/eb1cc390930e191a5454260da2410c91
Budowa Log: https://gist.github.com/ad1Dima/8ea8c4a271ef63efb310252234b32ae5
muszę jakiś pomysł jak mogę rozwiązać ten problem.
Ktoś? Dowolny pomysł? – ad1Dima
Czy możesz udostępnić pełny [dziennik kompilacji] (https://kb.xamarin.com/customer/en/portal/articles/1675684-where-can-i-find-my-version-information-and-logs-# verbose-build-output-logs) podczas budowania dla urządzenia. Jakiej wersji Xamarin.iOS używasz? –
@Prashant zaktualizował moje pytanie – ad1Dima