我目前正在一个 React Native 项目上实现 TrustKit SSL Pinning。
由于我的 XCode 项目中的另一个库已经安装了 TrustKit Cocoapod,我无法再直接引用它,这就是为什么我试图以“私人”方式调用它,就像这个例子一样:
// Disable TrustKit if it is present
Class TrustKit = NSClassFromString(@"TrustKit"); //Private calling
if (TrustKit != nil)
{
// Override TrustKit's logger method, useful for local debugging
void (^loggerBlock)(NSString *) = ^void(NSString *message)
{
NSLog(@"TrustKit log: %@", message);
};
SEL setLoggerBlock = sel_registerName("setLoggerBlock:");
[TrustKit performSelector: setLoggerBlock withObject:loggerBlock];
NSDictionary *trustKitConfig =
@{
kTSKSwizzleNetworkDelegates: @YES,// How to private consume this property
kTSKPinnedDomains: @{
@"*.apps.atp.dev.jsafrasarasin.com" : @{
kTSKIncludeSubdomains: @YES, // Pin all subdomains
kTSKEnforcePinning: @YES, // Block connections if pinning validation failed
kTSKDisableDefaultReportUri: @YES,
kTSKPublicKeyHashes: @[
@"dz0GbS1i4LnBsJwhRw3iuZmVcgqpn+AlxSBRxUbOz0k=",
@"BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB=",
],
},
}
};
SEL setInitSharedInstanceWithConfiguration = sel_registerName("initSharedInstanceWithConfiguration:");
[TrustKit performSelector: setInitSharedInstanceWithConfiguration withObject:trustKitConfig];
}
我能够正确执行 TrustKit 方法。但是,我不知道如何通过私人调用处理字典中的 trustKitConfig 属性