YTKNetwork icon indicating copy to clipboard operation
YTKNetwork copied to clipboard

SSL 崩溃,一直打印baseURL为nil

Open zhou1043868875 opened this issue 5 years ago • 6 comments

使用YTKNetwork配置SSL,结果AFNetwork出现崩溃,*** Terminating app due to uncaught exception 'Invalid Security Policy', reason: 'A security policy configured with AFSSLPinningModeCertificate can only be applied on a manager with a secure base URL (i.e. https)',代码为: NSString *cerPath = [[NSBundle mainBundle] pathForResource:@"test" ofType:@"cer"];//证书的路径 NSData *certData = [NSData dataWithContentsOfFile:cerPath];

YTKNetworkConfig *config = [YTKNetworkConfig sharedConfig];
[config setBaseUrl:BaseLink];
NSLog(@"%@", config.description);
AFSecurityPolicy *securityPolicy = [AFSecurityPolicy policyWithPinningMode:AFSSLPinningModeCertificate];
// 不允许自建证书
securityPolicy.allowInvalidCertificates = NO;
// 校验域名信息
securityPolicy.validatesDomainName      = YES;

securityPolicy.pinnedCertificates = [NSSet setWithObject:certData];

[config setSecurityPolicy:securityPolicy];

使用AFNetwork直接设置securityPolicy是没有问题的

zhou1043868875 avatar Mar 25 '19 02:03 zhou1043868875

我的也是 应该是baseUrl没配到AFHTTPSessionManager 上,估计要自己改代码了 你的解决了吗

BergYun avatar Apr 18 '19 06:04 BergYun

解决了,改了YTK底层的代码,发现他源码里面调用的是init config方法,而不是init baseURL的方法,所以baseURL就只会是nil

zhou1043868875 avatar Apr 18 '19 07:04 zhou1043868875

具体怎么改YTK的源码,方便告知下吗?感谢

xiaobeifeng avatar Jun 26 '19 02:06 xiaobeifeng

具体怎么改YTK的源码,方便告知下吗?感谢 将YTKNetworkAgent.m文件中的AFHTTPSessionManager初始化改成下面代码即可 _manager = [[AFHTTPSessionManager alloc] initWithBaseURL:_config.baseUrl sessionConfiguration:_config.sessionConfiguration];

Eason-Wanglitao avatar Sep 14 '19 04:09 Eason-Wanglitao

这个上面有对应的猿题库文件路径,注释掉的是被我修改过的代码

发自我的iPhone

------------------ 原始邮件 ------------------ 发件人: Eason-Wanglitao <[email protected]> 发送时间: 2019年9月14日 12:57 收件人: yuantiku/YTKNetwork <[email protected]> 抄送: zhou1043868875 <[email protected]>, Author <[email protected]> 主题: 回复:[yuantiku/YTKNetwork] SSL 崩溃,一直打印baseURL为nil (#485)

具体怎么改YTK的源码,方便告知下吗?感谢 将YTKNetworkAgent.m文件中的AFHTTPSessionManager初始化改成下面代码即可 _manager = [[AFHTTPSessionManager alloc] initWithBaseURL:_config.baseUrl sessionConfiguration:_config.sessionConfiguration];

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub, or mute the thread.

zhou1043868875 avatar Sep 14 '19 09:09 zhou1043868875

都2022年了,这个问题官方也不修复一下?

DLsunset avatar Aug 12 '22 06:08 DLsunset