मैं वर्तमान में एक्सकोड 7 बीटा 6 पर काम कर रहा हूं। मैं http://mySubdomain.herokuapp.comऐप ट्रांसपोर्ट सिक्योरिटी एक्सकोड 7 बीटा 6
त्रुटि मैं प्राप्त है करने के लिए एक "हटाएँ" अनुरोध भेजने के लिए कोशिश कर रहा हूँ:
अनुप्रयोग परिवहन सुरक्षा एक क्लियर HTTP (http: //) अवरुद्ध कर दिया है संसाधन लोड के बाद से यह असुरक्षित है। अस्थायी अपवादों को आपके ऐप की Info.plist फ़ाइल के माध्यम से कॉन्फ़िगर किया जा सकता है।
एपीआई कॉल करने में त्रुटि: त्रुटि डोमेन = NSURLErrorDomain कोड = -1022 संसाधन लोड नहीं किया जा सका क्योंकि ऐप ट्रांसपोर्ट सुरक्षा नीति को एक सुरक्षित कनेक्शन के उपयोग की आवश्यकता है।
NSLocalizedDescription = संसाधन लोड नहीं किया जा सका क्योंकि अनुप्रयोग परिवहन सुरक्षा नीति एक सुरक्षित कनेक्शन के उपयोग की आवश्यकता है।, NSUnderlyingError = 0x796f7ef0 {त्रुटि डोमेन = kCFErrorDomainCFNetwork कोड = -1022 "(शून्य)"}}
मेरे वास्तविक एपीआई कॉल में मैंने "http" के बजाय "https" रखा और वास्तव में मेरे POST अनुरोधों के लिए काम किया। लेकिन DELETE अनुरोध उपर्युक्त त्रुटि फेंकता है।
मैंने यहां समाधान देखा है जिसमें पीएलआईस्ट फ़ाइल शामिल है, लेकिन उनमें से कोई भी मेरे लिए काम नहीं कर पाया है। मैंने नीचे अपने प्रयास सूचीबद्ध किए हैं।
प्रथम प्रयास:
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
दूसरा कोशिश:
<key>NSAppTransportSecurity</key>
<dict>
<key>NSExceptionDomains</key>
<dict>
<key>herokuapp.com</key>
<dict>
<key>NSIncludesSubdomains</key>
<true/>
<key>NSExceptionAllowsInsecureHTTPLoads</key>
<true/>
<key>NSExceptionRequiresForwardSecrecy</key>
<false/>
<key>NSExceptionMinimumTLSVersion</key>
<string>TLSv1.2</string>
<key>NSThirdPartyExceptionAllowsInsecureHTTPLoads</key>
<true/>
<key>NSThirdPartyExceptionRequiresForwardSecrecy</key>
<false/>
<key>NSThirdPartyExceptionMinimumTLSVersion</key>
<string>TLSv1.2</string>
<key>NSRequiresCertificateTransparency</key>
<false/>
</dict>
</dict>
</dict>
और अंत में, मैं भी तरह तो में इन सभी अस्थायी चाबियाँ डाल:
<key>NSAppTransportSecurity</key>
<dict>
<key>NSExceptionDomains</key>
<dict>
<key>herokuapp.com</key>
<dict>
<key>NSIncludesSubdomains</key>
<true/>
<key>NSTemporaryIncludesSubdomains</key>
<true/>
<key>NSExceptionAllowsInsecureHTTPLoads</key>
<true/>
<key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
<true/>
<key>NSExceptionRequiresForwardSecrecy</key>
<false/>
<key>NSTemporaryExceptionRequiresForwardSecrecy</key>
<false/>
<key>NSExceptionMinimumTLSVersion</key>
<string>TLSv1.2</string>
<key>NSTemporaryExceptionMinimumTLSVersion</key>
<string>TLSv1.2</string>
<key>NSThirdPartyExceptionAllowsInsecureHTTPLoads</key>
<true/>
<key>NSTemporaryThirdPartyExceptionAllowsInsecureHTTPLoads</key>
<true/>
<key>NSThirdPartyExceptionRequiresForwardSecrecy</key>
<false/>
<key>NSTemporaryThirdPartyExceptionRequiresForwardSecrecy</key>
<false/>
<key>NSThirdPartyExceptionMinimumTLSVersion</key>
<string>TLSv1.2</string>
<key>NSTemporaryThirdPartyExceptionMinimumTLSVersion</key>
<string>TLSv1.2</string>
<key>NSRequiresCertificateTransparency</key>
<false/>
<key>NSTemporaryRequiresCertificateTransparency</key>
<false/>
</dict>
</dict>
</dict>
कोई भाग्य के साथ
सब! मुझे हमेशा एक ही त्रुटि मिलती है। DELETE अनुरोध सही रूप से स्वरूपित किया गया है क्योंकि जब मैं मैन्युअल रूप से पोस्टमैन से करता हूं, तो मुझे वांछित परिणाम मिलते हैं।
class func makeDELETEALLRequest(completion: (error:Bool) -> Void) {
let session = NSURLSession.sharedSession()
let url = NSURL(string:"https://mysubdomain.herokuapp.com/42kh24kh2kj2g24/clean")
let request = NSMutableURLRequest(URL: url!)
request.HTTPMethod = "DELETE"
let task = session.dataTaskWithRequest(request) { (data, response, error) -> Void in
if (error != nil) {
print("Error making API call: \(error!)")
completion(error: true)
} else {
let HTTPResponse = response as! NSHTTPURLResponse
let statusCode = HTTPResponse.statusCode
if (statusCode == 200){
print("Successfully deleted!")
completion(error: false)
} else {
print("Different status code: \(statusCode)")
completion(error: true)
}
}
}
task.resume()
}
बार फिर, मैं उपयोग कर रहा हूँ Xcode 7 बीटा 6:
यहाँ मेरी वास्तविक API कॉल विधि कैसा दिखता है, अगर वहाँ यहाँ में समस्या हो सकती है।
मेरी चयनित उत्तर जवाब मैं के रूप में सही चयन किया क्योंकि मैं अपने प्रोजेक्ट में गलत plist फाइल करने के लिए सभी ये परिवर्तन किए और कहा कि इस सवाल का जवाब केवल एक ही है कि संभावना को संबोधित किया था मेरे लिए सही था के बारे में । अन्य उत्तरों द्वारा प्रदान किए गए समाधान गलत नहीं हैं, इसलिए इस समस्या का सामना करने वाले किसी अन्य व्यक्ति को उन्हें आज़माएं, क्योंकि वे मान्य हैं। मुझे आशा है कि इससे किसी को भी इसी तरह के मुद्दों में मदद मिलेगी।
एक गाइड की जांच करने के वेब यूआरएल की स्वीकार्यता उपलब्ध है https://medium.com/@Mrugraj/app-transport-security-b7910c4fc70f। यह भविष्य के लिए समझने में मदद कर सकता है – Mrug
पहला प्रयास मेरे मामले में काम करता है किसी भी तरह से मुझे यह उपयोगी लगता है इसलिए मेरे पास –