MonoTouch アプリで 2 つの Objective-C ライブラリ (Facebook ライブラリと Millennial Media の広告ライブラリ) を使用したいと考えています。
MonoTouch アプリを (シミュレーター用であっても) コンパイルしようとすると、次のエラーが表示されます。
ld: duplicate symbol _OBJC_CLASS_$_SBJsonParser in /var/folders/4s/lcvdj54x0g72nrsw9vzq6nm80000gn/T/tmp6024c613.tmp/libMMSDK_4.5.5.a(SBJsonParser.o) and /var/folders/4s/lcvdj54x0g72nrsw9vzq6nm80000gn/T/tmp6024c613.tmp/libFacebookSDK.a(SBJsonParser.o) for architecture i386
collect2: ld returned 1 exit status
両方のライブラリが使用SBJsonParser
されていると思いますが、それが問題です。
それで、それらを同じ MonoTouch バインディング プロジェクトに入れてみましたが、まったく同じエラーが発生しました。
私のバインディングは、GitHub の Xamarin バインディング プロジェクトから取得しました。リンカ フラグの設定は次のとおりです。
[assembly: LinkWith ("libMMSDK_4.5.5.a", LinkTarget.ArmV6 | LinkTarget.ArmV7 | LinkTarget.Simulator, Frameworks = "CoreGraphics QuartzCore MediaPlayer CoreLocation MobileCoreServices AudioToolbox AVFoundation SystemConfiguration UIKit", ForceLoad = true)]
...
[assembly: LinkWith ("libFacebookSDK.a", LinkTarget.Simulator | LinkTarget.ArmV6 | LinkTarget.ArmV7, ForceLoad = true, Frameworks = "CoreGraphics")]
これを修正するためにできることはありますか? 追加の MonoTouch コンパイラ フラグでしょうか。