Sphero PhoneGap plugin을 최신 Cordova 3.4.1 및 XCode 5.1에서 작동하도록 업데이트하려고합니다.cordova 3.4.1 iOS 명령 줄 빌드가 유효한 아키텍처를 무시합니까?
XCode에서 실행하면 빌드가 정상적으로 작동합니다. Build Settings에서 "Valid Architectures"를 armv7
및 armv7s
으로 지정했습니다.
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
와 같은 오류를하며 시작 실패) : 나는 명령 줄에서 cordova build --device ios
을 할 경우
는하지만, 그때 얻을.
iOS 7.1을 실행하는 iPhone 5S 용으로 제작하려고합니다.
필자의 제한된 이해 (iOS 개발에 익숙하지 않음)에서 빌드 설정에 지정된 유효한 아키텍처 제한이 cordova에 의해 무시되고있는 것 같습니다. 내가 실행할 수 있도록 arm64
을 생략하도록 말할 수있는 방법이 있습니까?
(해당되는 경우 네이티브 "RobotKit"프레임 워크는 및 다양한 Linker flags to be set을 필요로하며, 명령 행 출력에서 지정된 링커 플래그를 사용하는 것 같습니다.).
XCode의 "Build Active Architecture Only"를 "Yes"로 변경하여 실행할 수 있습니다. 그러나 나는 아직도 그것이 "Valid Architectures"에주의를 기울여야한다고 생각하고 그렇지 않습니까? – poshaughnessy
나는이 문제를 Cordova 발행 추적기에 지금 작성했습니다 : https://issues.apache.org/jira/browse/CB-6716 – poshaughnessy