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".