Я создал проект настройки с использованием 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
@AehmloLxaitn Я использовал '{Filter = {Bundles = (" com.ravi.NSURLSessionExample "); }; } ', который является идентификатором связки тестового приложения. Крючок 'NSMutableRequest' работал так, я думаю, я получил фильтр правильно? Я добавил тэг 'logos'. Я все равно помещаю 'theos', так как' logos' является подкомпонентом 'theos'. – radj