最新の Cordova 3.4.1 および XCode 5.1 で動作するようにSphero PhoneGap プラグインを更新しようとしています。
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
、起動に失敗します)。
iOS 7.1 を実行している iPhone 5S 用にビルドしようとしています。
私の限られた理解 (私は iOS 開発にかなり慣れていません) から、ビルド設定で指定された有効なアーキテクチャの制限が cordova によって無視されているように見えますか? 省略arm64
して実行できるようにする方法はありますか?
(関連する場合、ネイティブの「RobotKit」フレームワークでは、展開ターゲットを 6.0 に設定し、さまざまなリンカー フラグを設定する必要があるようです。コマンド ライン出力から、指定されたリンカー フラグを使用しているように見えます)。