使用TrustKit的时候 碰到的问题
http://www.github.com/datatheorem/TrustKit
根据文档和官方demo中的解释 很容易就能添加TrustKit到项目中 并且demo也没有问题 但是在项目中编译的时候 build是成功 run起来之后会报错
“TrustKit was initialized with an invalid value for TSKPublicKeyAlgorithms for domain yahoo.com'
意思是 TrustKit初始化时,域名yahoo.com的TSKPublicKeyAlgorithms的值无效。
经过在TrustKit的API中查找
发现了这个属性TSKPublicKeyAlgorithms 需要在初始化配置的时候 在domain配置的时候 加上这个属性
虽然官方文档说这个属性已经废弃了 但是不加就报错了 注意这个属性是数组类型 如果给他字符串或者数字 还是会报错
“Unknown class ViewController in Interface Builder file.” 所以注意给数组类型的数据 一般空数组 ok的
例如:
NSDictionary *trustKitConfig = @{
kTSKPinnedDomains : @{
@"www.datatheorem.com" : @{
kTSKExpirationDate: @"2017-12-01",
kTSKPublicKeyHashes : @[
@"HXXQgxueCIU5TTLHob/bPbwcKOKw6DkfsTWYHbxbqTY=",
@"0SDf3cRToyZJaMsoS17oF72VMavLxj/N7WBNasNuiR8="
],
kTSKEnforcePinning : @NO,
kTSKReportUris : @[@"http://report.datatheorem.com/log_report"],
kTSKPublicKeyAlgorithms : @[]
},
@"yahoo.com" : @{
kTSKPublicKeyHashes : @[
@"TQEtdMbmwFgYUifM4LDF+xgEtd0z69mPGmkp014d6ZY=",
@"rFjc3wG7lTZe43zeYTvPq8k4xdDEutCmIhI5dn4oCeE=",
],
kTSKIncludeSubdomains : @YES,
kTSKPublicKeyAlgorithms : @[]
},
@"www.gbbsp-1.hangseng.com" : @{
kTSKEnforcePinning:@YES,
// Valid SPKI hashes to demonstrate success
kTSKPublicKeyHashes : @[
@"EgQdMU2GJEiRkCK+5dwQb2Z15f33iF+bs3//QTd6cQY=", // CA key: COMODO ECC
Certification Authority
@"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=", // Fake key but 2
pins need to be provided
],
kTSKPublicKeyAlgorithms : @[]
}
}};
[TrustKit initSharedInstanceWithConfiguration:trustKitConfig];