2012-04-17 8 views
10

He tenido un envío de la tienda de aplicaciones de iTunes rebotar debido a problemas que se ejecutan en el hardware de iPhone 4.Restringir a ciertos dispositivos de destino de iOS para el envío de App Store

Básicamente, la aplicación está escrita para agrupar toda la actividad de red en una cadena de fondo para que la UI no se bloquee mientras espera que el servidor responda con una conexión de datos lenta (celular). Esto funciona bien en dispositivos de doble núcleo como el iPad 2 + iPhone 4S, pero causa tiempos de respuesta y errores lentos en hardware antiguo de un solo núcleo como el iPad/iPhone 4.

Incluí notas a ese efecto en mi presentación, pero me preguntaba si había una forma formal de restringir el dispositivo de destino en iTunes Connect.

¡Salud!

+0

No, no puede restringir los dispositivos, pero puede restringir las versiones de iOS en las que se puede utilizar la aplicación. Por ejemplo iOS 5.1+ – Manuel

+0

Parece que tienes un problema con tu código para mí. La actividad de red estándar no debería estar causando problemas como usted describe. –

+0

No necesita múltiples núcleos para ejecutar código en subprocesos de fondo. No existe una política de * un hilo por núcleo * en ningún procesador del que haya oído hablar alguna vez. – Nate

Respuesta

6

Desafortunadamente no por el momento, no existe una lista de opciones disponibles para que usted pueda restringir al usuario la compra de la aplicación, pero nada para restringir debido a los núcleos

lista: http://developer.apple.com/library/ios/#documentation/general/Reference/InfoPlistKeyReference/Articles/iPhoneOSKeys.html

+0

Me temo que ese puede ser el caso. Me pregunto si hay alguna API que pueda usar que impida que la aplicación se ejecute en dispositivos más antiguos. –

+0

Pueden existir pero no restringirían la descarga del usuario en primer lugar, realmente no es recomendable, lo cual es una pena ya que los dispositivos demasiado viejos para ejecutar aplicaciones correctamente es un gran problema –

+1

Definitivamente es un problema. Para algunas aplicaciones, particularmente aquellas que usan DSP, no se trata simplemente de 'programar mejor', el 3G/3GS e incluso el iPhone 4 simplemente no están listos para procesar tanta información de señal. –

15

En realidad, hay podría ser una forma:

Agregar un elemento a UIRequiredDeviceCapabilities en su Info.plist con el requisito de "bluetooth-le" debe limitar su aplicación a iPhone 4S/5 y iPad 3, 4 y mini. También podría incluir un requisito de "flash de cámara" para limitar la aplicación a iPhones solamente, en caso de que lo necesite.

Ver DeviceCompatibilityMatrix

+0

No había considerado bluetooth-le. +1 por eso. No debería tener que ir al extremo de usar el flash para hacer iPhone ... simplemente no puede construir una aplicación universal y lograr eso. –

+0

El enlace está muerto. – ChrisF

+7

Al intentar utilizar este método, nuestra aplicación fue rechazada, por lo que no es un enfoque válido. – snibbe

1

me acaba de encontrar la siguiente cuando se mira en él - esto debería ayudar a que envíe y aprobado por Apple, ya que es las directrices de Apple.

la compatibilidad de dispositivos

La lista de propiedades de información del archivo (Info.plist) contiene información crítica acerca de la configuración de la aplicación y se debe incluir en su paquete de aplicaciones. Cada nuevo proyecto que crees en Xcode tiene un archivo predeterminado Info.plist configurado con información básica sobre tu proyecto. Puede modificar este archivo para especificar detalles de configuración adicionales para su aplicación.

La clave UIRequiredDeviceCapabilities le permite declarar el hardware o las capacidades específicas que necesita su aplicación para ejecutarse. Se requiere que todas las aplicaciones tengan esta clave en su archivo Info.plist. App Store utiliza el contenido de esta clave para evitar que los usuarios descarguen su aplicación en un dispositivo que posiblemente no pueda ejecutarla. Las tablas de este capítulo muestran todos los dispositivos iOS y sus capacidades.

Espero que haya sido de ayuda.

1

Solo puede restringir su aplicación para iPhone o iPad en la configuración del proyecto, restringiendo también la publicación en el App Store.

Vea dónde puede establecer el tipo.

enter image description here

restringir el modelo como algunos iPhone 4/4s que debe hacer esto mediante programación conseguir el tamaño y volver a dirigir a algunos ViewController informándole de que su aplicación no es compatible en este modelo.

Vea aquí cómo obtener el tamaño de la pantalla.

CGSize result = [[UIScreen mainScreen] bounds].size; 

switch ((int) result.height) { 
    case 480: 
     NSLog(@"iPhone 4/4s"); 
     break; 

    case 568: 
     NSLog(@"iPhone 5/5c/5s"); 
     break; 

    case 667: 
     NSLog(@"iPhone 6/6s"); 
     break; 

    case 736: 
     NSLog(@"iPhone 6+/6s+"); 
     break; 

    default: 
     NSLog(@"Other screen size, could be an iPad or new device model.");   
     break; 
} 

Es importante recordar que Apple quiere el máximo apoyo posible para sus aplicaciones y no apoyar para un modelo específico puede rechazar su aplicación. Pero si solo no admite el iPhone 4/4s, probablemente lo publique como de costumbre. En primer lugar, intente adaptar su código para usar el diseño automático; solo si no es posible, puede restringirlo según el modelo de dispositivo.

Tengo una aplicación publicada y restrigo por iPhone 4s. Está aprobado como usal.

+0

¿Hay alguna manera de excluir iPods? Quiero decir, permitir que el usuario instale la aplicación en iPhones y iPads, pero no en iPods ... – allo86

Cuestiones relacionadas