Xamarin iOS Native链接适用于模拟器,设备上的重复符号

ad1*_*ima 10 c++ gcc xamarin.ios ios xamarin

我正在尝试为Xamarin链接复杂的本机项目.它的Obj-C UI项目依赖于C++库上的Native Obc-C++包装器(这是嵌入式项目): 在此输入图像描述

我在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"
Run Code Online (Sandbox Code Playgroud)

在Simulator上一切正常但是当我尝试为Device编译时,链接器因为重复符号而无法链接库.我使用'nm'检查了所有库,所有对象看起来都与Simulator和Device相同.我看到只有重复的对象是嵌入式包装器中的Obj-C++类(rmsdk_wrapper2.xcodeproj).nm从主机项目(TestRMSD.xcodeproj)中找到包装器lib和lib中的对象.但对于模拟器而言,它既能很好地解析,也不适用于设备.

UPD XS版本:https: //gist.github.com/ad1Dima/eb1cc390930e191a5454260da2410c91

构建日志:https: //gist.github.com/ad1Dima/8ea8c4a271ef63efb310252234b32ae5

我需要知道如何解决这个问题.

ad1*_*ima 0

我必须将所有本机代码移至一个 XCode 项目中才能解决此问题。所以我有一个库并且设备上没有链接错误。

但我不明白链接器出了什么问题。