¿Pueden las aplicaciones de iPhone comenzar con la puesta en marcha?

He respondido dos preguntas diferentes ahora, ambas explican cómo las aplicaciones de VOIP no comienzan en el inicio, sin embargo, la gente parece pensar que sí.

No estoy 100% seguro de que alguien me haya vinculado a una parte de los documentos de Apple , lo que realmente no menciona nada sobre el inicio automático de las aplicaciones.

Originalmente iba en conocimiento previo y esta respuesta , pero después de que otra persona dijera que sí, realmente no estoy seguro.

Hasta donde yo sé, las aplicaciones solo reactjsn a las notificaciones push y no se pueden lanzar en segundo plano cuando se enciende un dispositivo.

¿Podemos aclarar si es posible iniciar una aplicación automáticamente o no?

Eche un vistazo a la sección UIBackgroundModes en este documento : parece indicar que al agregar la clave de voip iniciará automáticamente una aplicación en el arranque.

Editar: una aplicación de muestra parece confirmar este comportamiento.

Confirmo que la configuración del modo VOIP funciona. Sin embargo, descubrí que la aplicación no se reiniciará después del encendido, a menos que se esté ejecutando cuando el dispositivo se apagó. Además, la aplicación no se reiniciará en el dispositivo recientemente encendido hasta que el dispositivo se desbloquee después del encendido.

De acuerdo, no sé si esto se clasifica como una respuesta, pero me siento obligado a decir. Estoy desarrollando una aplicación que rastrea cambios significativos de ubicación y proporciona funciones de VoIP. La aplicación tiene una clave de voip en los modos de fondo requeridos . Intenté algunos casos en los que me gustaría compartir los resultados:

  • La aplicación está en modo de depuración: se apagó mientras se ejecutaba la aplicación (activa o en segundo plano): iOS 7.1.1 (11D201) y iPhone 4 (nombre del producto: iPhone3,2):

Cuando se inicia, la aplicación se ejecuta en segundo plano, así como otras aplicaciones que se estaban ejecutando antes. No creo que esto esté relacionado con VoIP de ninguna manera.

  • La aplicación está en modo de depuración: se apagó mientras se terminaba la aplicación: iOS 7.1.1 (11D201) y iPhone 4 (nombre del producto: iPhone3,2):

Cuando se inicia, la aplicación no se está ejecutando, no hay registros en la utilidad de configuración, el servidor dice que el usuario no está registrado, no puedo llamarlo desde otros dispositivos; y, sin embargo, las otras aplicaciones que no están relacionadas con el seguimiento de localización o voip pero que estaban abiertas antes de apagarse están cargadas al menos en la memoria. Es decir, la clave de voip no funcionó.

Continué la prueba con la misma aplicación pero esta vez la descargué de la tienda de aplicaciones. Los resultados son los mismos. Se cambió el dispositivo y el sistema operativo a iPhone 3G (nombre del producto: iPhone2,1) e iOS 6.1.6 (10B500). Nada ha cambiado tanto en los modos de depuración y liberación.

Le dije a mi jefe que Apple proporciona este comportamiento y que se puede hacer. Luego tuve dudas y lo intenté, ahora estoy tratando desesperadamente de encontrar otra manera. Voy a enviar mis saludos a Apple sobre esto.

No puede iniciar una aplicación sin la interacción del usuario. El usuario debe hacer clic en el ícono de la aplicación, en las notificaciones push, en un enlace personalizado. Puede haber otras formas que no conozco, pero incluso si existen, requieren la interacción del usuario para iniciar la aplicación intencionalmente.

Editar

Resulta que, como mencionó Tim, podría haber una excepción para las aplicaciones de VOIP.

El cambio de ubicación significativo o la supervisión de la región también provocan que una aplicación se inicie en el arranque siempre que se encienda y se deje encendida. No es necesaria ninguna clave UIBackgroundModes para esto.

He estado desarrollando aplicaciones VoIP y puedo confirmar que la aplicación VoIP se iniciará automáticamente cuando el iPhone se reinicie siempre y cuando el usuario no lo mate antes de reiniciar. Cuando iOS autotart aplicación de voip, solo se ejecutará la application:didFinishLaunchingWithOptions: es decir, applicationDidBecomeActive: no se ejecutará.

Solía ​​dudar si iOS reiniciará automáticamente la aplicación de VoIP cuando falle. Después de investigar, me parece que iOS reinicia automáticamente la aplicación de VoIP, pero si continúa bloqueando iOS, entonces probará el tiempo de los servidores antes de que finalmente se dé por vencido.

Si comprueba la salida de la consola de iPhone desde xcode, puede ver registros como estos después del primer locking.

 .. Service exited due to signal: Abort trap: xxx Unable to get short BSD proc info for xxxx: No such process Application 'UIKitApplication:xxxxx]' crashed. ...