iOS 5: https (ASIHTTPRequest) перестает работать

У меня есть приложение, использующее ASIHTTPRequest .

Я перекомпилировал свое приложение с iOS 5 (sdk: 5.0 / xcode: 4.2 Build 4D199) и https-соединения не работают с сообщением об ошибке (тот же вызов с https отключено работает нормально):

Error Domain=ASIHTTPRequestErrorDomain Code=1 "A connection failure occurred" UserInfo=0xa8e66e0 {NSUnderlyingError=0xa8ac6c0 "The operation couldn’t be completed. (OSStatus error -9844.)", NSLocalizedDescription=A connection failure occurred}

С включенным журналом отладки:

[STATUS] Starting asynchronous request 

[CONNECTION] Request  will not use a persistent connection

[STATUS] Request : Failed

[CONNECTION] Request #(null) failed and will invalidate connection #(null)

Я нашел этот связанный пост: https://devforums.apple.com/message/537440#537440 { {1}}, что могло бы объяснить мою проблему.

исходя из того, что iOS 5 предпочитает TLS 1.2, я безуспешно пытаюсь изменить параметр kCFStreamSocketSecurityLevelTLSv1 в AIHTTPRequest.m

  NSDictionary *sslProperties = [[NSDictionary alloc] initWithObjectsAndKeys:
                                     [NSNumber numberWithBool:YES],
kCFStreamSSLAllowsExpiredCertificates,
                                     [NSNumber numberWithBool:YES], kCFStreamSSLAllowsAnyRoot,
                                     [NSNumber numberWithBool:NO],  kCFStreamSSLValidatesCertificateChain,
                                     kCFNull,kCFStreamSSLPeerName,
                                      kCFStreamSocketSecurityLevelTLSv1, kCFStreamSSLLevel,// my modif
                                     nil];

. Может быть, моя модификация неверна?

Подробности:

  • Я отключил ARC
  • Я использую libz.1.2.5.dylib
  • Я обновил ASIHTTPRequest неделю назад.

Не знаю если проблема связана с сертификатом (например, TLS ve rsion) или что-то еще.

любая помощь / идея приветствуются!

9
задан BoltClock 9 March 2012 в 10:57
поделиться