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

LEGGI ANCHE:  Xcode 10 Error: Multiple commands produce

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.

Andrea Piani Administrator
Mi chiamo Andrea Piani, sono un programmatore specializzato nello sviluppo di App iOS e Android. Appassionato di elettronica e blockchain. Divulgatore tecnologico. Creatore della web agency Immaginet Srl (Udine) e di PrestaExpert Srl (Milano), aziende specializzate in Digital Marketing ed e-commerce.
follow me

Vuoi una consulenza a pagamento? Vuoi sviluppare un software per la tua attività? Hai bisogno di informazioni? Compila il modulo per contattarmi. Ti risponderò entro 24 ore.

Fill out my online form.

Iscriviti alla newsletter.

Scegli la categoria che preferisci. Solo articoli esclusivi e di alta qualità che non trovi sul blog. Niente SPAM. Promesso!


Condividi questo articolo: