Question

J'ai un problème lié à des logiciels logiciels que j'essaie de dépanner. Mon application a été développée pour iPhone4, iOS5 et utilise Core Motion Framework pour traiter les données de l'accéléromètre et du gyroscope en temps réel. L'application échoue lors de l'exécution sur iPhone 3GS avec iOS5

Ma principale méthode de mouvement de base ressemble à ceci:

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

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

}

J'ai des rapports selon lesquels iPhone3GS ne revient pas oui à IsGyroVailable, tandis que l'iPhone4 revient oui.

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

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

        }

J'ai douloureusement découvert qu'Apple vend mon application aux clients avec iPhone4, 4S et 3GS. L'application ne fonctionne pas pour les clients avec iPhone 3GS car l'appel ci-dessus ne semble pas transmettre les objets de mouvement au délégué d'étalonnage.

Je n'ai pas iPhone 3GS pour tester l'application, donc j'ai quelques questions:

  • Est-il possible de spécifier n'importe où dans les propriétés du projet Xcode que je veux que mon application s'exécute uniquement sur iPhone4 et au-dessus? (ou appareils avec gyroscope disponible?)

    Où puis-je trouver plus d'informations sur les bizarreries iOS5 comme celle ci-dessus pour mieux comprendre comment iPhone3GS diffère de l'iPhone4?

Était-ce utile?

La solution

Est-il possible de spécifier n'importe où dans les propriétés du projet Xcode que je veux que mon application s'exécute uniquement sur iPhone4 et au-dessus? (ou appareils avec gyroscope disponible?)

Oui, vous spécifieriez de telles dépendances dans le UIRequiredDeviceCapabilities clé de votre info.plist (gyroscope serait l'exigence dans ce cas).

Cependant, pour une application publiée, c'est malheureusement impossible Pour ajouter de nouvelles exigences.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top