Configuración del usuario-agente en AFNetworking

nuestra aplicación de iOS fue rechazada recientemente por Apple porque no pudo establecer una connection válida con nuestra API de server. Estamos utilizando un agente de usuario con formatting especial para registrar el token del dispositivo y así sucesivamente. Si el usuario-agente no cabe en nuestra sheme, el API bloquea la request.

Todo funcionó muy bien probando la aplicación tanto en el simulador como en un dispositivo real. El agente de usuario se configuró correctamente y las llamadas api funcionaron.

Cuando Apple probó la aplicación, la rechazaron porque la aplicación no pudo conectarse a la API. Al revisar los files de logging del server, notamos que todas las requestes enviadas por los probadores de Apple tenían un agente de usuario completamente diferente al que establecimos en el código.

El (correcto) user-agent, que se configuró cuando probamos la aplicación:

AppName -App/010002 iOS/8.1.2 on Apple iPhone/ DeviceToken

El agente de usuario (incorrecto), tal como apareció en nuestros loggings:

AppName /1.0.0.2 (iPad; iOS 8.1.3; Scale/2.00)

La aplicación utiliza AFNetworking y establece su agente de usuario de la siguiente manera:

ConnectionManager.requestSerializer.setValue(IOSREQUESTHEADER, forHTTPHeaderField: "user-agent")

¿Tienes alguna idea de por qué esto no funciona, ya que Apple testing la aplicación, mientras que está completamente bien cuando lo hacemos?

Atentamente

Traté de cambiar mi agente de usuario con el siguiente código

[self.requestSerializer setValue:@"VAL" forHTTPHeaderField:@"user-agent"];

pero no tiene ningún efecto hasta que cambie el nombre @"user-agent" a @"User-Agent"

Trate de hacer lo siguiente:

 NSString *userAgent = [self.manager.requestSerializer valueForHTTPHeaderField:@"User-Agent"]; userAgent = [userAgent stringByAppendingPathComponent:@"CUSTOM_PART"]; [self.manager.requestSerializer setValue:userAgent forHTTPHeaderField:@"User-Agent"]; 

Esto ahorrará generado por los datos de la networking de AF y también lo agregará su parte

El agente de usuario que aparece en sus loggings es el agente de usuario pnetworkingeterminado de AFNetworking. Esto significa que no se llamó el código que establece el encabezado.

¿Tal vez su código se comstack en una versión de lanzamiento? Esto podría suceder si tiene algo como #ifdef DEBUG o NSAssert() en una ruta lógica relacionada.

Si esto no es suficiente información, publique código adicional.