Risolvere in xCode: The resource could not be loaded because the App Transport Security policy requires the use of a secure connection

Condividi questo articolo:


Mi trovo di fronte al problema quando ho aggiornato il mio Xcode a 7.0 o iOS 9.0. In qualche modo ha iniziato a darmi l’errore Titled

“La risorsa non ha potuto essere caricata perché la politica di App Transport Security richiede l’utilizzo di una connessione sicura”.

"The resource could not be loaded because the App Transport Security policy requires the use of a secure connection"

Metodo del servizio web:

[sessionConfiguration setAllowsCellularAccess:YES];
    [sessionConfiguration setHTTPAdditionalHeaders:@{ @"Accept" : @"application/json" }];
    NSURLSession *session = [NSURLSession sessionWithConfiguration:sessionConfiguration];

    NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"%@",ServiceURL]];
    NSLog(@"URl %@%@",url,DataString);
    // Configure the Request
    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
    [request setValue:[NSString stringWithFormat:@"%@=%@", strSessName, strSessVal] forHTTPHeaderField:@"Cookie"];
    request.HTTPBody = [DataString dataUsingEncoding:NSUTF8StringEncoding];
    request.HTTPMethod = @"Post";

    // post the request and handle response
    NSURLSessionDataTask *postDataTask = [session dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *error)
                                          {
                                              // Handle the Response
                                              if(error)
                                              {
                                                  NSLog(@"%@",[NSString stringWithFormat:@"Connection failed: %@", [error description]]);

                                                  // Update the View
                                                  dispatch_async(dispatch_get_main_queue(), ^{

                                                      // Hide the Loader
                                                      [MBProgressHUD hideHUDForView:[[UIApplication sharedApplication] delegate].window animated:YES];


                                                  });
                                                  return;
                                              }
                                              NSArray * cookies = [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookiesForURL:request.URL];
                                              for (NSHTTPCookie * cookie in cookies)
                                              {
                                                  NSLog(@"%@=%@", cookie.name, cookie.value);
                                                  strSessName=cookie.name;
                                                  strSessVal=cookie.value;

                                              }

                                              NSString *retVal = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
}];
[postDataTask resume];

}

Il servizio funziona bene per le versioni precedenti di Xcode e per le versioni precedenti di iOS Ma quando ho aggiornato a Xcode 7.0 che è su iOS 9.0, ha iniziato a darmi il problema come segue quando sto chiamando il metodo del servizio web di cui sopra. L’errore registrato che sto ricevendo è:

Ho risolto il problema con l’aggiunta di alcune chiavi in info.plist. I passi che ho seguito sono:Connessione fallita: Errore Domain=NSURLErrorDomain Code=-1022 “La risorsa non poteva essere caricata perché la politica di sicurezza del trasporto delle applicazioni richiede l’uso di una connessione sicura”. UserInfo={NSUnderlyingError=0x7fada0f31880 {Error Domain=kCFErrorDomainCFNetwork Code=-1022 “(null)”}, NSErrorFailingURLStringKey=MyServiceURL, NSErrorFailingURLKey=MyServiceURL, NSLocalizedDescription=La risorsa non ha potuto essere caricata perché la policy di App Transport Security richiede l’uso di una connessione sicura.}

Ho provato a seguire le domande e le risposte ma non ho ottenuto alcun risultato, c’è qualche idea in anticipo su come posso rimuovere l’errore di chiamata di servizio?

Soluzione al problema: The resource could not be loaded because the App Transport Security policy requires the use of a secure connection

  1. Opened my Project target’s info.plist file
  2. Added a Key called NSAppTransportSecurity as a Dictionary.
  3. Added a Subkey called NSAllowsArbitraryLoads as Boolean and set its value to YES as like following image.

Pulisci il progetto e ora tutto funziona bene come prima.

Link di riferimento: https://stackoverflow.com/a/32609970

EDIT: OPPURE Nel codice sorgente del file info.plist possiamo aggiungere questo:

<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<vero />
<chiave>NSExceptionDomains</key>
<dict>
<key>yourdomain.com</key>
<dict>
<key>NSIncludesSottodomini</key>
<vero />
<key>NSThirdPartyExceptionRequiresForwardSecrecy</key>
<falso/>
</dict>
</dict>
</dict>

Mi trovo di fronte al problema quando ho aggiornato il mio Xcode a 7.0 o iOS 9.0. In qualche modo ha iniziato a darmi l’errore Titled

Clean & Build dopo l’editing.


Per ulteriori informazioni visita il sito: immagi.net

Condividi questo articolo: