हम एक HTTP स्ट्रीमिंग आईओएस ऐप विकसित कर रहे हैं जिसके लिए हमें एक सुरक्षित साइट से प्लेलिस्ट प्राप्त करने की आवश्यकता है। इस साइट के लिए हमें स्वयं हस्ताक्षरित SSL प्रमाणपत्र का उपयोग करके प्रमाणित करने की आवश्यकता है।एवीप्लेयर को SSL द्वारा सुरक्षित प्लेलिस्ट पुनर्प्राप्त करने दें कैसे?
प्राधिकरण चुनौती पर प्रतिक्रिया करने के लिए हम एक प्रतिनिधि के साथ NSURLConnection का उपयोग करने से पहले हम एक .p12 फ़ाइल से प्रमाण-पत्र पढ़ते हैं।
- (void)connection:(NSURLConnection *)connection didReceiveAuthenticationChallenge:(NSURLAuthenticationChallenge *)challenge
{
[[challenge sender] useCredential: self.credentials forAuthenticationChallenge:challenge];
}
- (BOOL)connection:(NSURLConnection *)connection canAuthenticateAgainstProtectionSpace:(NSURLProtectionSpace *)protectionSpace
{
return YES;
}
यूआरएल को यह प्रारंभिक कनेक्शन जहां हम के .m3u8 प्लेलिस्ट हो रही प्लेलिस्ट AVPlayer का उपयोग कर वापस खेलने में सक्षम हम के ऐसा करने से। समस्या यह है कि यह विधि केवल सिम्युलेटर में काम करती है।
नोट: हम डिवाइस पर NSURLConnection का उपयोग कर प्लेलिस्ट डाउनलोड करने में सक्षम हैं। इसका मतलब यह होना चाहिए कि AVPlayer किसी भी तरह से इस प्रारंभिक कनेक्शन के दौरान स्थापित ट्रस्ट का उपयोग जारी नहीं रख सकता है।
हमने किसी भी भाग्य के बिना [NSURLCredentialStorage sharedCredentialStorage] को प्रमाण-पत्र जोड़ने का भी प्रयास किया है।
NSURLProtectionSpace *protectionSpace = [[NSURLProtectionSpace alloc]
initWithHost:host
port:443
protocol:@"https"
realm:nil
authenticationMethod:NSURLAuthenticationMethodClientCertificate];
[[NSURLCredentialStorage sharedCredentialStorage] setDefaultCredential:creds
forProtectionSpace:protectionSpace];
NSURLProtectionSpace *protectionSpace2 = [[NSURLProtectionSpace alloc]
initWithHost:host
port:443
protocol:@"https"
realm:nil
authenticationMethod:NSURLAuthenticationMethodServerTrust];
[[NSURLCredentialStorage sharedCredentialStorage] setDefaultCredential:creds
forProtectionSpace:protectionSpace2];
संपादित करें: this question के अनुसार: उपरोक्त विधि प्रमाणपत्र के साथ काम नहीं
नीचे उस के लिए हमारे बन्दूक दृष्टिकोण इस प्रकार है।
किसी भी संकेत के लिए कि यह डिवाइस पर क्यों काम नहीं करता है, या वैकल्पिक समाधान का स्वागत है!
इस प्रश्न के मुताबिक: http://stackoverflow.com/questions/4164846/nsurlcredentialstorage-and-client-certificate- प्रमाणीकरण NSURLCredentialStorage प्रमाण पत्र के लिए काम नहीं करता है। मुझे लगता है कि अभी भी मामला है। – Nailer