トラブルシューティングを行うソフトウェアハードウェア関連の問題があります。私のアプリは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をする癖の詳細情報を見つけることができ ?