Cordova / PhoneGap iOS HTTPS / SSL问题

时间:2012-09-27 18:22:40

标签: ios cordova ssl

我们目前正在为Android和iOS使用Cordova / PhoneGap(最新版本)开发移动应用程序。我们的应用程序的一个关键方面是它从不同的远程源(其中一个具有无效的SSL证书)检索数据。在确保正确设置所有.plist设置后(对于域白名单),我们的应用程序在iOS 5和6下都无法运行。在XCode或Safari的控制台中没有显示错误 - 它只是死了。 Android应用程序可以正常工作,也可以在Web浏览器中本地工作。所以,几个问题:

是否有用于忽略iOS中无效SSL证书的.plist设置?我在UIWebView中看到了一些代码,但我们不确定是否应修改该代码并冒险在其他地方破解应用程序。

1 个答案:

答案 0 :(得分:6)

** 修改 3/13/14 **

建议的方法是在您的设备中安装您的CA:通过电子邮件将CA发送到您的设备,点击电子邮件中的CA文件,然后将其导入您的安全存储区域。这将允许您的设备信任未签名的https连接,而无需下面显示的代码行。

请注意,虽然下面的解决方案可行,但它不安全,不推荐使用。在发布应用程序的生产版本之前,您必须删除这些代码行。如果不这样做,将导致应用程序不安全。建议不要使用此解决方案,因为人们可能忘记删除它。

** 原始回答 **

没有cordova plist设置。要在iOS中解决此问题,请将下面的代码附加到AppDelegate.m文件的末尾。

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

我过去曾在几个项目中使用过这个项目,并没有看到任何不良副作用。

AppDelegate.m文件可以在Xcode项目中标题为Classes的黄色文件夹中找到。