2012-01-23 2 views
0

У меня есть проблема с программным обеспечением, связанная со сбоями, которую я пытаюсь устранить. Мое приложение было разработано для iPhone4, iOS5 и использует платформу Core Motion для обработки данных акселерометра и гироскопа в реальном времени. Приложение терпит неудачу, когда работает на iPhone 3GS с iOS5iOS5 CMMotionManager startDeviceMotionUpdatesToQueue: fail на iPhone3GS

Мой основной метод ядро-движения выглядит следующим образом:

 [motionManager startDeviceMotionUpdatesToQueue:motionQueue withHandler:^(CMDeviceMotion *motion, NSError *error) { 

      //notify calibration delegate 
      if(calibrationDelegate) 
      { 
       [calibrationDelegate collectCalibrationMotionData:motion]; 
      } 
//a lot more processing 

} 

У меня есть сообщения о том, iPhone3GS ли да не возвращаться в isGyroAvailable, в то время как iPhone4 возвращается да.

BOOL accelerometerAvailable = (motionManager.isAccelerometerAvailable)?YES:NO; 
BOOL gyroscopeAvailable  = (motionManager.isGyroAvailable)?YES:NO; 

     if(!accelerometerAvailable && ! gyroscopeAvailable) 
     { 
//handle error 
      remoteControlState = kRemoteControlStateError; 

     } 

Я болезненно обнаружил, что компания Apple продает свое приложение для клиентов с iPhone4, 4S и 3GS. Приложение не работает для клиентов с iPhone 3GS, потому что вызов выше, похоже, не передает объекты движения делегату калибровки.

У меня нет iPhone 3GS, чтобы протестировать приложение на, поэтому у меня есть несколько вопросов:

  • Можно ли указать где-нибудь в свойствах XCode проекта , что я хочу, чтобы мое приложение, чтобы запустить ТОЛЬКО на iPhone4 и выше? (или устройства с гироскопом в наличии?)

    Где я могу найти более подробную информацию о iOS5 причуды, как один выше , чтобы лучше понять, как iPhone3GS отличается от iPhone4?

ответ

3

Можно указать где-нибудь в свойствах проекта XCode, что я хочу, чтобы мое приложение, чтобы работать только на iPhone4 и выше? (или устройство с гироскопом в наличии?)

Да, вы бы указать такую ​​зависимость в UIRequiredDeviceCapabilities ключе вашего Info.plist (gyroscope бы требование в данном случае).

Однако, для выпущенного приложения, к сожалению, impossible добавить новые требования.

Смежные вопросы