2012-09-27 11 views
6

हम वर्तमान में एंड्रॉइड और आईओएस दोनों के लिए कॉर्डोवा/फोनगैप (नवीनतम रिलीज) का उपयोग कर मोबाइल ऐप विकसित कर रहे हैं। हमारे ऐप के प्रमुख पहलुओं में से एक यह है कि यह विभिन्न दूरस्थ स्रोतों से डेटा पुनर्प्राप्त करता है (जिनमें से एक में एक अवैध SSL प्रमाणपत्र है)। यह सुनिश्चित करने के बाद कि सभी .plist सेटिंग्स सही ढंग से सेट की गई हैं (डोमेन श्वेत सूची के लिए) हमारा ऐप न तो आईओएस 5 और न ही 6 के तहत काम नहीं कर रहा है। एक्सकोड या सफारी में कंसोल में कोई त्रुटि नहीं दिखती है - यह बस मर जाती है। एंड्रॉइड ऐप वेब ब्राउज़र में स्थानीय रूप से काम करने के साथ-साथ काम करता है। तो, जोड़े प्रश्न:कॉर्डोवा/फोनगैप आईओएस एचटीटीपीएस/एसएसएल मुद्दे

क्या आईओएस में अवैध SSL प्रमाणपत्रों को अनदेखा करने के लिए एक .plist सेटिंग है? मैंने UIWebView में ऐसा करने के लिए कुछ कोड देखा लेकिन हमें यकीन नहीं है कि हमें उस कोड को संशोधित करना चाहिए और ऐप को कहीं और तोड़ने का जोखिम उठाना चाहिए।

उत्तर

6

** संपादित 3/13/14 **

सिफारिश की दृष्टिकोण अपने डिवाइस में अपने सीए स्थापित करने के लिए है: अपने डिवाइस के लिए अपने सीए ईमेल, ईमेल में सीए फ़ाइल पर टैप करें और आयात यह आपके सुरक्षित भंडारण क्षेत्र में है। यह आपके डिवाइस को नीचे दिखाए गए कोड की लाइनों की आवश्यकता के बिना हस्ताक्षरित https कनेक्शन पर भरोसा करने की अनुमति देगा।

ध्यान दें कि नीचे दिया गया समाधान काम करेगा, यह असुरक्षित है और अनुशंसित नहीं है। ऐप के उत्पादन संस्करण को जारी करने से पहले आपको कोड की इन पंक्तियों को हटाना होगा। ऐसा करने में विफलता एप्लिकेशन असुरक्षित प्रस्तुत करेगा। इस समाधान की अनुशंसा नहीं की जाती है क्योंकि लोग इसे हटाने के लिए भूल सकते हैं।

** मूल जवाब **

इस के लिए कोई कॉर्डोबा plist सेटिंग है। आईओएस में इसे पाने के लिए नीचे दिए गए कोड को अपनी AppDelegate.m फ़ाइल के अंत में जोड़ें।

@implementation NSURLRequest(DataController) 
+ (BOOL)allowsAnyHTTPSCertificateForHost:(NSString *)host 
{ 
    return YES; 
} 
@end 

मैंने इसे कई परियोजनाओं में अतीत में उपयोग किया है और किसी प्रतिकूल साइड इफेक्ट्स को नहीं देखा है।

AppDelegate.m फ़ाइल आपके एक्सकोड प्रोजेक्ट में कक्षाओं के शीर्षक वाले पीले रंग के फ़ोल्डर में पाई जा सकती है।

+0

मेरा सुझाव है कि आप अंतिम भाग को शीर्ष पर लाने के लिए अपना उत्तर संपादित करें! यह सबसे अच्छा समाधान है: _ "अपने डिवाइस पर अपने सीए को ईमेल करें, ईमेल में सीए फ़ाइल पर टैप करें, और इसे अपने सुरक्षित स्टोरेज एरिया में आयात करें" _। हालांकि मैंने इसे ईमेल नहीं किया, मैंने इसे http का उपयोग करके अपनी देव मशीन से डाउनलोड किया। – pauloya

+0

@PauloManuelSantos – njtman

+0

हां/नहीं लौटने के लिए आपके बिल्ड/लक्ष्य कॉन्फ़िगरेशन के आधार पर एक प्लिस्ट उपयोगकर्ता परिभाषित सेटिंग जोड़ने के बारे में क्या? इस तरह आपको कोड को हटाने की याद नहीं है जब आप इसे रिलीज़ करने के लिए तैयार हों ... – ganders