¿Qué significa el objetivo de implementación?

107

esta es una pregunta muy simple que estoy asumiendo. ¿Alguien puede decirme qué significa el objetivo de implementación? Si elijo IOS 10, ¿significa eso que solo los usuarios con iOS 10 pueden descargar la aplicación? ¿Es malo elegir un objetivo de implementación más bajo? TAMBIÉN, continuando con el objetivo de implementación, no se recomienda ejecutar en un objetivo de implementación inferior.

Michaelcode
fuente

Respuestas:

149

Supongamos que ha establecido un objetivo de implementación mínimo para iOS 9. Esto significa que su aplicación es compatible con dispositivos iOS 9 y superiores .

La aplicación no se ejecutará en dispositivos inferiores a 9.0, pero puede ejecutarse en cualquier versión de iOS superior a iOS 9.0.

Manish Pathak
fuente
¿Puede el usuario con una versión inferior seguir viendo la aplicación al menos en la tienda de aplicaciones?
Sagrian
2
@Sagrian Sí, pueden, pero les mostrará que no es compatible con el sistema operativo de su dispositivo
FreakyAli
¿Cuál es la diferencia entre el objetivo de implementación y la información? Xcode, elija una versión de iOS en 2 lugares.
Daniel Springer
@DanielSpringer La configuración en Deployment Targetúltima instancia cambia el Info.plist. Es una forma conveniente agregada (probablemente) después de Xcode 4.x
Naveed Abbas
@NaveedAbbas Lo siento, pero no entiendo cómo responde eso. ¿Por qué dos lugares? ¿Para qué sirve cada uno?
Daniel Springer
19

El objetivo de implementación determina la capacidad de su aplicación para ejecutarse en versiones anteriores de iOS.

App with deployment target set to 10 will work on iOS version 10+ (10, 11, 12, 13 ...) but won't work on 9.x.

Cuando se lanza una nueva versión de iOS, algunas personas no se molestan en actualizar sus dispositivos a la última versión de iOS y, por lo tanto, lo hacen can't download your app from the App Store.

Ejemplo

Si elige un objetivo de implementación más alto (e.g 12.1), su aplicación no podrá descargarse para las personas que incluso tienen los dispositivos más recientes, pero tienen una versión de iOS anterior (iPhone X con 11.0). En contraste Si elige el objetivo de implementación más bajo posible (e.g 6.0), intenta hacer que su aplicación sea el máximo compatible con versiones anteriores (por lo que incluso si alguien no ha actualizado su iOS en años, podrá descargar su aplicación).

PRECAUCIÓN

Muchos (casi todos) los marcos y funciones más nuevos no podrán ejecutarse correctamente (comportarse como se esperaba) en versiones inferiores de iOS, lo que aumenta las posibilidades de que la aplicación se bloquee.

Qué afecta el objetivo de implementación

A continuación se presentan algunos factores que exigen un objetivo de implementación más alto.

1) Usando el último SDK de iOS (solo)

2) Utilizando las últimas funciones específicas del SDK de iOS (restricciones, archivos XIB más nuevos, etc.).

3) Uso de bibliotecas / marcos externos de rápida adaptación (por ejemplo, SDK de Facebook, Firebase, etc.).

4) La versión Swift superior (5.0) requiere un objetivo de implementación más alto en comparación con escribir su aplicación en el objetivo anterior C) !Needs citation.

SOLUCIÓN

Hemos estado utilizando Deploymate para obtener el máximo soporte hacia atrás. Principalmente nos ayuda a advertir lo siguiente:

1) API más nuevas que no funcionarán en versiones inferiores de iOS

2) Usar métodos obsoletos que no funcionarán en las versiones más recientes de iOS.

Aquí es cuando comienza a corregir su código para que esté disponible para versiones inferiores de iOS para una máxima compatibilidad.

Nota: Xcode también informa sobre varias trampas. Deploymate no está asociado con nosotros ni nos paga de ninguna forma. Puedes buscar otras alternativas.

Naveed Abbas
fuente
1

Deployment Targetes una versión mínima de iOS compatible con su objetivo.

Esto significa que:

  • como desarrollador, admite esta versión y puede admitir todas las siguientes compatibilidades
  • ad un usuario debe tener al menos esta versión de iOS

Para cambiarlo en Xcode 11.5

Build Settings -> iOS Deployment Target
yoAlex5
fuente
-4

Si es nuevo en Xcode, le sugiero que acepte el valor predeterminado y lo considere una restricción en su proyecto.

A medida que aparezcan nuevas versiones de Xcode, se eliminará la compatibilidad con valores de destino más antiguos. Las empresas que tienen una amplia base de clientes tienen que afrontar este problema a su manera.

En la mayoría de los proyectos en los que he trabajado, la versión de iOS es importante porque dicta qué dispositivos pueden ejecutar su aplicación.

Por ejemplo, iOS 10 esencialmente dejó atrás todos los conectores estilo iPod.

benc
fuente
1
votos negativos, pero sin comentarios ... no es útil ... Yo agregaría, ahora que iOS 13 está disponible a través de Xcode 11, muchos objetivos predeterminados en proyectos antiguos han tenido que moverse hacia arriba.
benc
Upvoted: información útil "desde las trincheras". Sería más adecuado como comentario, pero no obstante.
timmi4sa
Prefiero ser pragmático con una repetición un poco más baja. Ser nuevo en Xcode es mucho para digerir.
benc