iOS9 GoogleAnalytics и NSAppTransportSecurity

Я столкнулся с проблемой из-за новой возможности безопасности от iOS9 от Apple, чтобы ограничить ssl-запросы для любого типа серверов.

Смотрите ссылку:https://developer.apple.com/library/content/documentation/General/Reference/InfoPlistKeyReference/Articles/CocoaKeys.html#//apple_ref/doc/uid/TP40009251-SW33

На самом деле, я хочу использовать значение по умолчанию и не разрешать какие-либо подключения NSAllowsArbitraryLoads: false

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

Конечно, некоторые соединения предназначены, и я получаю данные с собственных серверов, а также со сторонних серверов.

Либо вы можете теперь прослушивать трафик приложения, генерируемый сторонними инструментами, либо использовать протоколирование всего сетевого трафика, на который ссылаются здесь:Как определить, какой URL-адрес блокируется App Transport Security?

В этом журнале легко отследить все возникающие ошибки (не слишком сложно найти код ошибки). Таким образом, я легко мог видеть, какие соединения были установлены и, возможно, не удалось из-за ограничений нагрузки (конечно, хорошие программисты знают наизусть;))

Любой вид стороннего трекера или настройка собственной сети работает нормально, несмотря на Google Analytics. Сначала я скачал последние примеры кода и посмотрел их, конечно, вы не можете ожидать, что библиотека уже будет поддерживать самые последние бета-системы, тем не менее, я попробовал. И это не удалось, как только NSAllowsArbitraryLoads установлено в false / NO

Даже с ограничением как можно меньшего количества сторонних разработчиков я не смог заставить его работать:

<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>

Также попробовал google-analytics.com и включить субдомены NSIncludesSubdomains: true. И, как простой веб-сайт вызова в браузере "https://google-analytics.com"перенаправляет на"https://www.google.com/analytics/«Я также пытался разрешить google.com в качестве дополнительного домена исключений, что также не удается.

Даже взглянул на поддерживаемые ssl-шифры, думаю, здесь они не проблема:

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

Таким образом, отслеживание Google Analytics по-прежнему не удается для таких запросов, как:https://ssl.google-analytics.com/collect? [....]

Кто-нибудь придумал решение или, может быть, нашел какую-то ошибку в моем подходе?

Ответы на вопрос(1)

Ваш ответ на вопрос