2012-06-21 3 views
1

Я хочу использовать две библиотеки 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?

+0

Некоторые подсказки здесь: http://stackoverflow.com/questions/6130568/issues-when-installing-th-json-framework-on-xcode4 Можно ли это зафиксировать на стороне MonoTouch? Или мне придется перекомпилировать проекты XCode здесь? – jonathanpeppers

ответ

1

Хорошо, нашел обходное решение.

тысячелетнего Media SDK, была папка с именем MMSDK_Split_Libraries, заглядывая внутрь, я нашел libMMSDK_4.5.5_withoutJSON.a файл, в комплекте с SBJsonParser файлов реализации для XCode. Используя эту разную библиотеку, по крайней мере мое приложение теперь компилируется. Я еще не интегрировал MM SDK, поэтому мне нужно будет убедиться, что он работает правильно или нет.

Любопытно узнать, есть ли у кого-то другой способ исправить ситуацию.

+0

MM SDK, похоже, работает нормально, он должен использовать 'SBJsonParser' из SDK для Facebook. Вид сумасшедший, но рад, что это сработало. – jonathanpeppers

Смежные вопросы