2014-05-15 4 views
0

Sphero PhoneGap plugin을 최신 Cordova 3.4.1 및 XCode 5.1에서 작동하도록 업데이트하려고합니다.cordova 3.4.1 iOS 명령 줄 빌드가 유효한 아키텍처를 무시합니까?

XCode에서 실행하면 빌드가 정상적으로 작동합니다. Build Settings에서 "Valid Architectures"를 armv7armv7s으로 지정했습니다.

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을 필요로하며, 명령 행 출력에서 ​​지정된 링커 플래그를 사용하는 것 같습니다.).

+0

XCode의 "Build Active Architecture Only"를 "Yes"로 변경하여 실행할 수 있습니다. 그러나 나는 아직도 그것이 "Valid Architectures"에주의를 기울여야한다고 생각하고 그렇지 않습니까? – poshaughnessy

+0

나는이 문제를 Cordova 발행 추적기에 지금 작성했습니다 : https://issues.apache.org/jira/browse/CB-6716 – poshaughnessy

답변