l estado de @NSHTTPCookieStorage no se guardó al salir de la aplicación. ¿Algún conocimiento / documentación definitiva por ahí?

uchando con este problema y detesta implementar un sistema de gestión de cookies personalizado.

Parece que algún nivel oculto de la implementación de HTTP de iOS no puede administrar correctamente las cookies sin sesión. Cada vez que una respuesta HTTP establece o elimina una cookie, la inspección inmediata de las cookies NSHTTPCookieStorage arrojará los resultados esperados e indicará el valor correcto de SessionOnly.

Pero si la aplicación se cierra poco después de que una respuesta actualice las cookies, al relanzarlas sessionOnly = Las cookies FALSAS se revertirán a algún estado anterior y se perderán las actualizaciones más recientes.

Si las cookies se configuran / eliminan mediante un encabezado de respuesta o NSHTTPCookieSt, orage setCookie: no hay diferencia.

Algún almacenamiento en caché / sincronización de vudú debe estar sucediendo detrás de escena. El tiempo que tarda la cookie en volverse persistente puede ser de hasta 5 segundos.

ANYONE ¿Quién tiene o puede señalar alguna explicación definitiva de este comportamiento? ¿Es un error, simple y llanamente? ¿O alguna característica indocumentada cuyo propósito no puedo comprender?

Algún código que puede usar para reproducir:

- (void)applicationDidBecomeActive:(UIApplication *)application
{

    [[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookieAcceptPolicy:NSHTTPCookieAcceptPolicyAlways];

    NSHTTPCookie *cookie;
    for (cookie in [NSHTTPCookieStorage sharedHTTPCookieStorage].cookies) {
        NSLog(@"%@=%@", cookie.name, cookie.value);
    }

    NSMutableDictionary *cookieProperties = [NSMutableDictionary dictionary];
    [cookieProperties setObject:@"testCookie" forKey:NSHTTPCookieName];
    [cookieProperties setObject:[NSString stringWithFormat:@"%f", [[NSDate date] timeIntervalSince1970]] forKey:NSHTTPCookieValue];
    [cookieProperties setObject:@"www.example.com" forKey:NSHTTPCookieDomain];
    [cookieProperties setObject:@"www.example.com" forKey:NSHTTPCookieOriginURL];
    [cookieProperties setObject:@"/" forKey:NSHTTPCookiePath];
    [cookieProperties setObject:@"0" forKey:NSHTTPCookieVersion];

    // set expiration to one month from now
    [cookieProperties setObject:[[NSDate date] dateByAddingTimeInterval:2629743] forKey:NSHTTPCookieExpires];

    cookie = [NSHTTPCookie cookieWithProperties:cookieProperties];
    [[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookie:cookie];

}

Este código debería generar un nuevo valor en cada lanzamiento. En cambio, verá que si sale de la aplicación rápidamente, el valor no cambia.

Algunas preguntas de desbordamiento de pila posiblemente relacionadas:

iphone NSHTTPCookieStorage disponible en la reapertura de la aplicación?

iPhone: NSHTTPCookie no se guarda en los reinicios de la aplicación

NSHTTPCookies se niega a ser eliminado

deleted NSHTTPCookie regresa si la aplicación se termina

Respuestas a la pregunta(3)

Su respuesta a la pregunta