cordova 3.4.1 Сборка командной строки iOS игнорирует допустимые архитектуры?

Я пытаюсь обновить плагин Sphero PhoneGap для работы с последними версиями Cordova 3.4.1 и XCode 5.1.

Сборка работает нормально, если я запускаю ее в XCode. В настройках сборки я указал "Допустимые архитектуры", чтобы они просто armv7 а также armv7s,

Но если я сделаю cordova build --device ios в командной строке я получаю:

Running command: /Users/peteshau/dev/src/pearson/prototypes/robots-sphero/phonegap-test/platforms/ios/cordova/build --device
Build settings from command line:
    ARCHS = armv7 armv7s arm64
    CONFIGURATION_BUILD_DIR = /Users/peteshau/dev/src/pearson/prototypes/robots-sphero/phonegap-test/platforms/ios/build/device
    SDKROOT = iphoneos7.1
    VALID_ARCHS = armv7 armv7s arm64

...

ld: warning: ignoring file RobotsSphero/Plugins/com.orbotix.sphero.SpheroPlugin/RobotKit.framework/RobotKit, missing required architecture arm64 in file RobotsSphero/Plugins/com.orbotix.sphero.SpheroPlugin/RobotKit.framework/RobotKit (2 slices)
Undefined symbols for architecture arm64:
  "_OBJC_CLASS_$_RKRobotProvider", referenced from:
      objc-class-ref in spheroGap.o
  "_OBJC_CLASS_$_RKRawMotorValuesCommand", referenced from:
      objc-class-ref in spheroGap.o
  "_OBJC_CLASS_$_RKPingCommand", referenced from:
      objc-class-ref in spheroGap.o
  "_OBJC_CLASS_$_RKStabilizationCommand", referenced from:
      objc-class-ref in spheroGap.o
  "_OBJC_CLASS_$_RKRollCommand", referenced from:
      objc-class-ref in spheroGap.o
  "_OBJC_CLASS_$_RKCalibrateCommand", referenced from:
      objc-class-ref in spheroGap.o
  "_OBJC_CLASS_$_RKBackLEDOutputCommand", referenced from:
      objc-class-ref in spheroGap.o
  "_OBJC_CLASS_$_RKGoToSleepCommand", referenced from:
      objc-class-ref in spheroGap.o
  "_OBJC_CLASS_$_RKRGBLEDOutputCommand", referenced from:
      objc-class-ref in spheroGap.o
  "_RKDeviceConnectionOnlineNotification", referenced from:
      -[spheroGap setupRobot] in spheroGap.o
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

** BUILD FAILED **

(Те же ошибки с cordova run --device и он не запускается).

Я пытаюсь собрать его для моего iPhone 5S под управлением iOS 7.1.

Из моего ограниченного понимания (я довольно незнаком с разработкой для iOS), похоже, что ограничение Valid Architectures, указанное в настройках сборки, игнорируется cordova? Есть ли способ, которым я могу сказать, чтобы опустить arm64 чтобы я мог заставить его работать?

(В случае, если это уместно, для собственных платформ "RobotKit" требуется, чтобы для целевого объекта развертывания было установлено значение 6.0 и были установлены различные флаги компоновщика. Из вывода командной строки, по-видимому, используются указанные флаги компоновщика в порядке).

1 ответ

Решение

Это подтвержденный "недостаток" Кордовы:

https://issues.apache.org/jira/browse/CB-6716

Я смог обойти это сейчас, изменив "Build Active Architecture Only" на "Yes".

Другие вопросы по тегам