Xamarin не может скомпилировать собственный код

Я пытаюсь использовать Good Dynamics SDK в Xamarin, я не знаю Objective-C, поэтому я немного потерялся здесь. Это попытка доказательства концепции, я не уверен, что это действительно выполнимо.

Я добавил GD-файл как GD.a из каталога GD.framework и попытался реализовать привязку API и дублировать логику запуска приложения из примера проекта XCode.

Мне удалось создать его, хотя Mono Develop демонстрирует все, начиная с ApiDefinition в красном цвете.

При построении это часть журнала ошибок Полная версия здесь

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/gcc -Wl,-no_pie -arch i386 -gdwarf-2 -fobjc-legacy-dispatch -fobjc-abi-version=2 -miphoneos-version-min=6.0 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator6.0.sdk /var/folders/1t/cbdvyj0x4n35m7674l7wvyjc0000gn/T/tmp6df5493a.tmp/main.x86.o -o /var/folders/1t/cbdvyj0x4n35m7674l7wvyjc0000gn/T/tmp6df5493a.tmp/GDTest -framework CFNetwork -framework Foundation -framework GameKit -framework MapKit -framework MediaPlayer -framework MessageUI -framework OpenGLES -framework StoreKit -framework UIKit -framework AddressBookUI -framework SystemConfiguration -framework AddressBook -framework AudioToolbox -framework AVFoundation -framework QuartzCore -framework CoreGraphics -framework CoreLocation -framework MobileCoreServices -framework Security -framework CoreData -framework ExternalAccessory -weak_framework AssetsLibrary -weak_framework Accounts -weak_framework CoreBluetooth -weak_framework CoreTelephony -weak_framework EventKit -weak_framework EventKitUI -weak_framework CoreMotion -weak_framework GLKit -weak_framework iAd -weak_framework NewsstandKit -weak_framework Social -weak_framework Twitter -weak_framework PassKit -weak_framework CoreImage -weak_framework CoreText -weak_framework ImageIO -weak_framework CoreMedia -weak_framework CoreMIDI -weak_framework CoreVideo -weak_framework AdSupport -weak_framework QuickLook -lz -u _mono_pmip -u _CreateZStream -u _CloseZStream -u _Flush -u _ReadZStream -u _WriteZStream -liconv -lmono-2.0 -lmonotouch -L/Developer/MonoTouch/SDKs/MonoTouch.iphonesimulator.sdk/usr/lib -u _catch_exception_raise -force_load /var/folders/1t/cbdvyj0x4n35m7674l7wvyjc0000gn/T/tmp6df5493a.tmp/GD.a Undefined symbols for architecture i386: "std::basic_istream<char, std::char_traits<char> >::gcount() const", referenced from: GT::AES::decode(std::basic_istream<char, std::char_traits<char> >&, std::basic_ostream<char, std::char_traits<char> >&, unsigned int&, bool)in GD.a(gtaes.o) GT::AES::encode(std::basic_istream<char, std::char_traits<char> >&, std::basic_ostream<char, std::char_traits<char> >&, unsigned int&, bool)in GD.a(gtaes.o) "std::basic_string<char, std::char_traits<char>, std::allocator<char> >::find_first_of(char const*, unsigned long, unsigned long) const", referenced from: -[GDSetPasswordViewController checkPasswordStrength:] in GD.a(GDSetPasswordViewController.o) GD::EacpCReq::EacpCReq(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, GT::Dbb&)in GD.a(GDEacpCommands.o) GD::RawSocket::connect() in GD.a(GDRawSocket.o) "std::basic_string<char, std::char_traits<char>, std::allocator<char> >::copy(char*, unsigned long, unsigned long) const", referenced from: GD::Socket::toString() constin GD.a(GDSocket.o) "std::basic_string<char, std::char_traits<char>, std::allocator<char> >::data() const", referenced from: -[GTContainerDH setRemotePublic521:] in GD.a(GTContainerCrypto.o) -[GTContainerDH initWithP521] in GD.a(GTContainerCrypto.o) -[NSData(GTContainerEncryption) GTEncryptedDataUsingDerivedKey:] in GD.a(GTContainerCrypto.o) -[NSData(GTContainerEncryption) GTDecryptedDataUsingDerivedKey:] in GD.a(GTContainerCrypto.o) -[GTEncryptedFile streamDidReceiveData:] in GD.a(GTEncryptedFile.o) +[NSData(Base64) dataFromBase64String:] in GD.a(NSData+Base64.o) +[GTJsonCommandProcessor parseNSData:] in GD.a(GTICCJsonCommandProcessor.o) ... 

Это продолжается намного дольше и заканчивается ошибкой

 ld: symbol(s) not found for architecture i386 collect2: ld returned 1 exit status error MT5202: Native linking failed. Please review the build log. 

Теперь я немного застрял. Есть идеи?

благодаря

В сообщении ld сообщается, что ваш файл статической библиотеки .a не содержит кода для i386. Эта архитектура требуется для запуска кода на iOS-симуляторе.

Возможно, пакет GD предоставляет разные .a для разных архитектур. В этом случае вы можете использовать инструмент lipo для создания толстой библиотеки, которая будет содержать несколько архитектур.

Мне нужно было добавить -cxx в «Дополнительные аргументы mtouch» в настройках сборки iPhone.

Это старый вопрос, но через много часов у нас есть полное решение для использования Good Dynamics с Xamarin.iOS, написанным подробно здесь … около 5 различных обходных решений.

http://blog.westmonroepartners.com/using-good-dynamics-sdk-v1-8-x-with-xamarin-ios/

  • Проблемы с производительностью при записи подписи в iOS
  • Панель вкладок в нижней части с MonoTouch.Dialog?
  • Есть ли приложение вроде «Codea», но для MonoTouch?
  • Monotouch + UIWebView = случайные сбои
  • Ошибка MT1108: Не удалось найти инструменты для этого устройства
  • Поместите изображение на большой размер холста с помощью GPU (возможно, CIFilters) без использования контекста изображения
  • MonoTouch v. Objective-C для новых разработчиков iPhone
  • Как передавать данные из PerformSegue в моноточе
  • Где ушел «оконный» проект?
  • Может ли приложение приложения iOS XCode установить MonoTouch?
  • Ошибка компиляции JIT с protobuf-net на устройстве MonoTouch / iOS (iPhone / iPad)
  • Давайте будем гением компьютера.