当前位置 : 主页 > 手机开发 > cordova >

Cordova / PhoneGap iOS HTTPS / SSL问题

来源:互联网 收集:自由互联 发布时间:2021-06-10
我们目前正在为 Android和iOS使用Cordova / PhoneGap(最新版本)开发移动应用程序.我们的应用程序的一个关键方面是它从不同的远程源(其中一个具有无效的SSL证书)检索数据.在确保正确设置所
我们目前正在为 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的黄色文件夹中找到.

网友评论