我们目前正在为Android和iOS使用Cordova/PhoneGap(最新版本)开发移动应用程序.我们的应用程序的一个关键方面是它从不同的远程源(其中一个具有无效的SSL证书)检索数据.在确保正确设置所有.plist设置后(对于域白名单),我们的应用程序在iOS 5和6下都无法运行.在XCode或Safari的控制台中没有显示错误 - 它只是死了.Android应用程序可以正常工作,也可以在Web浏览器中本地工作.所以,几个问题:
是否存在用于忽略iOS中无效SSL证书的.plist设置?我在UIWebView中看到了一些代码,但我们不确定是否应修改该代码并冒险在其他地方破坏应用程序.
**编辑 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的黄色文件夹中找到.