2012-01-23 21 views
0

トラブルシューティングを行うソフトウェアハードウェア関連の問題があります。私のアプリはiPhone4、iOS5用に開発されたもので、Core Motionフレームワークを使ってリアルタイムで加速度計とジャイロスコープのデータを処理します。 iOS5をiOS5 CMMotionManager startDeviceMotionUpdatesToQueue:iPhone3GSでエラーが発生する

とiPhone 3GS上で実行する場合、アプリケーションが失敗した私の主なコア - モーション方式は次のようになります。

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

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

} 

私が持っているiPhone4のはそう返しながら、iPhone3GSのはisGyroAvailableにyesと戻らないことを報告します。

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以上でのみ?(利用可能なジャイロスコープを持つまたはデバイス?)

    私はiPhone4のからiPhone3GSのをどのように異なるかをよりよく理解する 上記のようなiOS5をする癖の詳細情報を見つけることができ ?

答えて

3

それは私が私のアプリはONLY iPhone4の上、上で実行したいXcodeプロジェクトのプロパティで任意の場所に指定することは可能ですか? (ジャイロスコープ付きまたはデバイス利用可能?)

はい、あなたはあなたのInfo.plistの UIRequiredDeviceCapabilitiesキー( gyroscopeは、この場合は要件になります)で、このような依存関係を指定します。

しかし、リリースされたアプリでは、残念ながらimpossibleという新しい要件を追加しています。

関連する問題