iOS9 GoogleAnalytics e NSAppTransportSecurity

Estou com problemas devido à nova oportunidade de segurança do iOS9 da Apple para restringir solicitações de SSL a qualquer tipo de servidor.

Ver referência:https://developer.apple.com/library/content/documentation/General/Reference/InfoPlistKeyReference/Articles/CocoaKeys.html#//apple_ref/doc/uid/TP40009251-SW33

Na verdade, quero usar o padrão e não permitir nenhum tipo de conexão NSAllowsArbitraryLoads: false

<key>NSAppTransportSecurity</key>
    <dict>
        <key>NSAllowsArbitraryLoads</key>
        <false/>
    </dict>

É claro que algumas conexões são pretendidas e eu recupero dados de servidores próprios e de servidores de terceiros.

Agora você pode detectar o tráfego do aplicativo, gerado por ferramentas de terceiros, ou usar o log de todo o tráfego de rede, mencionado aqui:Como posso descobrir qual URL está sendo bloqueado pelo App Transport Security?

É fácil rastrear todos os erros que ocorrem neste log (não é muito difícil procurar um código de erro). Dessa maneira, eu era capaz de ver facilmente quais conexões estavam sendo estabelecidas e talvez falharam devido a limitações de carga (é claro, bons engenheiros de software sabem de cor;))

Qualquer tipo de rastreador de terceiros ou a própria configuração de rede está funcionando bem, apesar do Google Analytics. No início, baixei os últimos códigos de exemplo e os observei, é claro que você não pode esperar que uma biblioteca já suporte os sistemas beta mais recentes; no entanto, tentei. E falhou assim que o NSAllowsArbitraryLoads é definido como false / NO

Mesmo limitando o mínimo possível para terceiros, não fui capaz de executá-lo:

<key>NSAppTransportSecurity</key>
    <dict>
        <key>NSAllowsArbitraryLoads</key>
        <false/>
            <key>NSExceptionDomains</key>
            <dict>
        <key>ssl.google-analytics.com</key>
        <dict>
            <key>NSRequiresCertificateTransparency</key>
            <true/>
            <key>NSThirdPartyExceptionMinimumTLSVersion</key>
            <string>TLSv1.2</string>
            <key>NSThirdPartyExceptionRequiresForwardSecrecy</key>
            <false/>
            <key>NSThirdPartyExceptionAllowsInsecureHTTPLoads</key>
            <true/>
        </dict>
    </dict>

Também tentei google-analytics.com e para incluir subdomínios NSIncludesSubdomains: true. E, como o site simples chama no navegador de "https://google-analytics.com"redireciona para"https://www.google.com/analytics/"Também tentei permitir o google.com como domínio de exceção adicional, o que também falha.

Até deu uma olhada nas ssl-cifras suportadas, acho que não são problema aqui:

nmap --script ssl-enum-ciphers -p 443 ssl.google-analytics.com

|   TLSv1.2: 
|     ciphers: 
|       TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA (dh 256) - C
|       TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA (dh 256) - A
|       TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 (dh 256) - A
|       TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (dh 256) - A
|       TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA (dh 256) - A
|       TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 (dh 256) - A
|       TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (dh 256) - A
|       TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 (dh 256) - A
|       TLS_ECDHE_RSA_WITH_RC4_128_SHA (dh 256) - A
|       TLS_RSA_WITH_3DES_EDE_CBC_SHA (rsa 2048) - C
|       TLS_RSA_WITH_AES_128_CBC_SHA (rsa 2048) - A
|       TLS_RSA_WITH_AES_128_CBC_SHA256 (rsa 2048) - A
|       TLS_RSA_WITH_AES_128_GCM_SHA256 (rsa 2048) - A
|       TLS_RSA_WITH_AES_256_CBC_SHA (rsa 2048) - A
|       TLS_RSA_WITH_AES_256_CBC_SHA256 (rsa 2048) - A
|       TLS_RSA_WITH_AES_256_GCM_SHA384 (rsa 2048) - A
|       TLS_RSA_WITH_RC4_128_MD5 (rsa 2048) - A
|       TLS_RSA_WITH_RC4_128_SHA (rsa 2048) - A

Portanto, o rastreamento do Google Analytics ainda falha em solicitações como:https://ssl.google-analytics.com/collect? [....]

Alguém encontrou uma solução ou encontrou algum tipo de erro na minha abordagem?

questionAnswers(1)

yourAnswerToTheQuestion