cómo ejecutar el process en segundo plano en iOS usando API privadas para sincronizar elementos de correo electrónico sin jailbreaking el teléfono

Estoy trabajando en una aplicación empresarial, que es similar a los contactos, calendar. Me gustaría sincronizar mi calendar y contacto, incluso cuando mi request está en segundo plano. También soy bueno usar API privadas, ya que no voy a enviar a la tienda de aplicaciones. Tenga en count que aquí es, quería hacer que esto funcione sin jailbreaking el dispositivo.

Ya hay una pregunta similar publicada aquí . Estoy creando este nuevo hilo ya que el ya publicado tiene una solución sugerida para el dispositivo Jailbreaked.

Si se trata de una aplicación empresarial y no se está enviando a Apple, exploraré que su aplicación se identifique como una aplicación de VOIP. Luego puede configurar keepAliveTimer y get time de procesamiento periódico en segundo plano para hacer lo que necesita.

Estoy compartiendo la respuesta para mi propia pregunta, ya que esto podría ayudar a otros

Pasos:

1: Agregue la key "Modalidades de background requeridas" en su aplicación-info.plist y asigne un valor como "La aplicación proporciona services de voz sobre IP" a su elemento.

2: en su file appdelegate.m, aplique el método "applicationDidEnterBackground:" como el fragment de código debajo.

static int counter; - (void)applicationDidEnterBackground:(UIApplication *)application { //Minimun keepAliveTimeout is 600 seconds [[UIApplication shanetworkingApplication] setKeepAliveTimeout:605 handler:^{ //do your task counter ++; NSLog(@"Counter # %d", counter); }]; } 

Aquí, por ejemplo, estoy imprimiendo la variable de contador en el intervalo de time dado. A continuación se muestra el post de logging de salida:

 2012-08-27 14:06:09.216 BackgroundApplicationForVOIP[1129:207] Counter # 1 2012-08-27 14:16:14.218 BackgroundApplicationForVOIP[1129:207] Counter # 2 2012-08-27 14:26:19.219 BackgroundApplicationForVOIP[1129:207] Counter # 3 2012-08-27 14:36:24.220 BackgroundApplicationForVOIP[1129:207] Counter # 4 2012-08-27 14:46:29.221 BackgroundApplicationForVOIP[1129:207] Counter # 5 2012-08-27 14:54:21.000 BackgroundApplicationForVOIP[1129:207] Counter # 6 2012-08-27 15:19:48.099 BackgroundApplicationForVOIP[1129:207] Counter # 7 2012-08-27 15:26:03.201 BackgroundApplicationForVOIP[1129:207] Counter # 8 2012-08-27 15:39:50.167 BackgroundApplicationForVOIP[1129:207] Counter # 9 2012-08-27 16:07:28.112 BackgroundApplicationForVOIP[1129:207] Counter # 10 2012-08-27 16:13:43.217 BackgroundApplicationForVOIP[1129:207] Counter # 11 2012-08-27 16:23:48.218 BackgroundApplicationForVOIP[1129:207] Counter # 12 2012-08-27 16:33:53.219 BackgroundApplicationForVOIP[1129:207] Counter # 13 2012-08-27 16:43:58.220 BackgroundApplicationForVOIP[1129:207] Counter # 14 2012-08-27 16:54:03.221 BackgroundApplicationForVOIP[1129:207] Counter # 15 

Si quieres correr de forma continua, otra idea es habilitar "audio" en los modos de background requeridos en Info.plist y seguir haciendo un mp3 silencioso hasta que quieras seguir ejecutando.