2016-09-20 13 views
1

내 응용 프로그램은 AFNetworking 2.x를 사용하여 당사 서버 중 하나의 데이터베이스에서 데이터를 가져옵니다. 지난 주 정도까지 모든 것이 잘되었습니다. 이제 우리는 최소한 하나의 연결을 통해 일할 수 없습니다. 여기에 코드가 있습니다.더 이상 AFNetworking/NSURLConnection에서 iOS10으로 인증 할 수 없습니까?

NSString *loginURL = 
     @"https://<server>/<path>/<url>"; 
    AFHTTPRequestOperationManager *manager = 
     [AFHTTPRequestOperationManager manager]; 
    manager.requestSerializer = [AFJSONRequestSerializer serializer]; 
    [manager.requestSerializer 
     setAuthorizationHeaderFieldWithUsername:pUserEmail 
            password:pUserPassword]; 
    manager.responseSerializer = [AFJSONResponseSerializer serializer]; 

    AFHTTPRequestOperation *operation = [manager GET:loginURL 
     parameters:[self jsonDict] 
     success:^(AFHTTPRequestOperation *operation, id responseObject) { 
      if (completionBlock) { 
      completionBlock(YES); 
      } 
     } 
     failure:^(AFHTTPRequestOperation *operation, NSError *error) { 
      if (completionBlock) { 
      completionBlock(NO); 
      } 
     }]; 
    [operation start]; 
} 

정말 이상한 점은 브라우저의 URL로 이동하여 사용자 이름/암호로 입력하면 액세스가 가능하다는 것입니다.

사용자 인 경우 Xcode 7.3.1을 실행하고 시뮬레이터에서 실행하면 액세스 할 수 있습니다.

내 iPhone에서 실행하면 실패하고 다음과 같은 3 가지 오류 메시지가 표시됩니다.

Sep 20 10:54:54 iPhone Scoular(CFNetwork)[1999] <Notice>: N -9801 
(kCFStreamErrorDomainSSL, -9801) 
Sep 20 10:54:54 iPhone Scoular(CFNetwork)[1999] <Error>: HTTP load failed (error code: -1200 [3:-9801]) 
Sep 20 10:54:54 iPhone Scoular(CFNetwork)[1999] <Error>: NSURLConnection finished with error - code -1200 

내 생각 엔 뭔가 (iOS8의 또는 iOS9에있는 NSURLConnection가) iOS10와 함께, 그것은 더 이상 허용, 사용되지되지 않았 음을, 그리고 내가 3.X를 AFNetworking로 업데이트 할 경우이 문제가 해결됩니다,하지만 난 아니다 완전히 확신합니다.

iOS9 사용자가 인증 할 수 있습니다.

나는 서버에 변경된 사항이 있다고 생각하지 않습니다.

+1

은 사실 필요합니다. 그것은 당신의 프로젝트에 명시되어 있습니까? –

+0

아니요, 내 plist에 들어 있나요? –

+0

하지만 시뮬레이터에서 왜 작동합니까? –

답변

1

iOS 10에서는 보안 수준이 낮아 일부 암호 제품군이 비활성화되어 웹보기에서만 허용됩니다. Info.plist 파일에서 Apple Transport Security 오버라이드를 사용하여 재정의 할 수도 있고 무시할 수도 있습니다.

어떤 방법 으로든 재정의가 작동하더라도 2016 년 말까지 서버를 업그레이드해야하므로 너무 오랜 시간 동안 그 작업을 수행하지 않아도됩니다. ios10 NSAppTransportSecurity NSAllowsArbitraryLoads

+0

ATS 무시로 앱을 작동시킬 수있었습니다. https://www.ssllabs.com/ssltest/index.html을 사용하여 문제의 서버를 확인하고 수정해야 할 사항을 확인했습니다. 이 작업을 수행하려면 관리자와 협력하십시오. 귀하의 설명에 감사드립니다. –