我使用rpetrich's theos創建了一個調整項目,並且想要掛鉤NSURLSession方法,但掛鉤似乎沒有被調用?爲什麼?這是我的Tweak.xm代碼:如何將NSURLSession方法與theos掛鉤?
%hook NSURLSession
- (NSURLSessionDataTask *)dataTaskWithRequest:(NSURLRequest *)request
completionHandler:(void (^)(NSData *data, NSURLResponse *response, NSError *error))completionHandler
{
NSLog(@"testhook dataTaskWithRequest:completionHandler:");
return %orig(request, completionHandler);
}
- (NSURLSessionDataTask *)dataTaskWithRequest:(NSURLRequest *)request
{
NSLog(@"testhook dataTaskWithRequest");
return %orig(request);
}
%end
%hook NSMutableURLRequest
+ (id)requestWithURL:(NSURL *)URL
{
NSLog(@"testhook NSMutableURLRequest");
return %orig(URL);
}
%end
我加入了NSMutableURLRequest
掛鉤,以確保該文件和整個的調整被加載。我可以驗證它掛鉤了requestWithURL:
,但沒有任何NSURLSession方法。我正在測試NSURLSessionExample的代碼。
這裏缺少什麼?有沒有人成功掛鉤NSURLSession?
這個調整的過濾器是什麼?另外:你用於鉤子的語法是Logos,而不是Theos,所以你應該用問題來代替Theos。 – Aehmlo 2014-11-05 13:14:39
@AehmloLxaitn我用'{Filter = {Bundles =(「com.ravi.NSURLSessionExample」); }; }'這是測試應用程序的包ID。 'NSMutableRequest'鉤子工作,所以我想我的過濾器是正確的?我添加了'logos'標籤。因爲'logos'是'theos'的一個子組件,所以我放了'theos'。 – radj 2014-11-05 14:10:37