Я хочу использовать две библиотеки Objective-C в приложении MonoTouch: библиотеку Facebook и рекламную библиотеку от Millennial Media.MonoTouch - конфликт между двумя объектами привязки
Когда я пытаюсь скомпилировать мое приложение 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, но все же получил ту же ошибку.
Мои привязки были получены от the Xamarin binding projects on GitHub. Вот как устанавливаются флаги компоновщика:
[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?
Некоторые подсказки здесь: http://stackoverflow.com/questions/6130568/issues-when-installing-th-json-framework-on-xcode4 Можно ли это зафиксировать на стороне MonoTouch? Или мне придется перекомпилировать проекты XCode здесь? – jonathanpeppers