Почему плагин Phonegap для Facebook НЕ работает на 64-битных архитектурах?

Я имею в виду официальный плагин FBConnect от phonegap: https://github.com/phonegap-build/FacebookConnect< /а>

Все работает нормально при работе с iphone, а не с x64 (я полагаю, 32 бита)

Но при запуске приложения на 64-битной архитектуре этот плагин вызывает проблемы. Вот что у меня есть:

ld: warning: directory not found for option '-L/Users/YohannM/Documents/phonegap-facebook-plugin-master/src/ios/frameworks'
ld: warning: ignoring file /Users/YohannM/Library/Developer/Xcode/DerivedData/MeetMyFriends-bpzkrmogtgawjxbckzcgadbbsksi/Build/Products/Debug-iphonesimulator/libCordova.a, file was built for archive which is not the architecture being linked (x86_64): /Users/YohannM/Library/Developer/Xcode/DerivedData/MeetMyFriends-bpzkrmogtgawjxbckzcgadbbsksi/Build/Products/Debug-iphonesimulator/libCordova.a
Undefined symbols for architecture x86_64:
  "_CDVLocalNotification", referenced from:
      -[AppDelegate application:didReceiveLocalNotification:] in AppDelegate.o
  "_CDVPluginHandleOpenURLNotification", referenced from:
      -[AppDelegate application:handleOpenURL:] in AppDelegate.o
  "_OBJC_CLASS_$_CDVCommandDelegateImpl", referenced from:
      _OBJC_CLASS_$_MainCommandDelegate in MainViewController.o
  "_OBJC_CLASS_$_CDVCommandQueue", referenced from:
      _OBJC_CLASS_$_MainCommandQueue in MainViewController.o
  "_OBJC_CLASS_$_CDVPlugin", referenced from:
      _OBJC_CLASS_$_FacebookConnectPlugin in FacebookConnectPlugin.o
      _OBJC_CLASS_$_CDVDevice in CDVDevice.o
      _OBJC_CLASS_$_CDVLocation in CDVLocation.o
  "_OBJC_CLASS_$_CDVPluginResult", referenced from:
      objc-class-ref in FacebookConnectPlugin.o
      objc-class-ref in CDVDevice.o
      objc-class-ref in CDVLocation.o
  "_OBJC_CLASS_$_CDVViewController", referenced from:
      _OBJC_CLASS_$_MainViewController in MainViewController.o
      objc-class-ref in CDVDevice.o
  "_OBJC_METACLASS_$_CDVCommandDelegateImpl", referenced from:
      _OBJC_METACLASS_$_MainCommandDelegate in MainViewController.o
  "_OBJC_METACLASS_$_CDVCommandQueue", referenced from:
      _OBJC_METACLASS_$_MainCommandQueue in MainViewController.o
  "_OBJC_METACLASS_$_CDVPlugin", referenced from:
      _OBJC_METACLASS_$_FacebookConnectPlugin in FacebookConnectPlugin.o
      _OBJC_METACLASS_$_CDVDevice in CDVDevice.o
      _OBJC_METACLASS_$_CDVLocation in CDVLocation.o
  "_OBJC_METACLASS_$_CDVViewController", referenced from:
      _OBJC_METACLASS_$_MainViewController in MainViewController.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Конечно, я следовал инструкциям шаг за шагом, и (я думаю) раньше он работал нормально (до того, как мне пришлось обновить XCode. Может ли кто-нибудь помочь мне с этим? Что мне делать, чтобы он работал на моем iphone 64 бит?

Спасибо


person Miles M.    schedule 12.04.2014    source источник


Ответы (1)


На самом деле я нашел решение в другой ветке, там есть одна очень полная, но той, которая сработала лучше всего для меня, не было в этой ветке. Это было довольно просто:

Они только что выпустили новую версию 3.4.1, которые решают эту проблему.

Поэтому я обновляю один файл, чтобы он указывал на TAG 3.4.1:

/usr/local/lib/node_modules/cordova/platforms.js

строка 24 из:

version: '3.4.0'

to:

version: '3.4.1'

Затем вы удаляете папку iOS в своем проекте и запускаете:

cordova platform add ios

Это загрузит новый шаблон на основе 3.4.1 со всеми исправлениями.

спасибо @Fabrizio Giordano за указание на это

person Miles M.    schedule 02.05.2014