estado @NSHTTPCookieStorage não foi salvo na saída do aplicativo. Algum conhecimento / documentação definitivo por aí?

Lutando contra esse problema e relutante em implementar um sistema de gerenciamento de cookies personalizad

Parece que algum nível oculto da implementação de HTTP do iOS falha ao gerenciar corretamente os cookies sem sessão. Sempre que uma resposta HTTP definir ou excluir um cookie, a inspeção imediata dos cookies NSHTTPCookieStorage produzirá os resultados esperados e indicará o valor sessionOnly correto.

Mas se o aplicativo fechar logo após uma resposta atualizar os cookies, ao reiniciar os cookies sessionOnly = FALSE, serão revertidos para algum estado anterior e as atualizações mais recentes serão perdida

Se os cookies são definidos / excluídos por um cabeçalho de resposta ou pelo NSHTTPCookieSt, orage setCookie: não faz diferenç

Algum vodu de cache / sincronização deve estar acontecendo nos bastidores. O tempo necessário para que o cookie se torne persistente pode levar até 5 segundo

ANYONE lá fora, quem tem ou pode apontar para uma explicação definitiva desse comportamento? É um bug, puro e simples? Ou algum recurso não documentado cujo propósito não compreendo?

Algum código que você pode usar para reproduzir:

- (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 deve gerar um novo valor a cada lançamento. Em vez disso, você verá que, se você sair do aplicativo rapidamente, o valor permanecerá inalterad

Algumas perguntas possivelmente relacionadas ao estouro de pilha:

iphone NSHTTPCookieStorage disponível na reabertura de aplicativos?

iPhone: NSHTTPCookie não é salvo nas reinicializações de aplicativos

NSHTTPCookies se recusam a ser excluídos

deleted NSHTTPCookie retorna se o aplicativo for encerrado

questionAnswers(3)

yourAnswerToTheQuestion