Help us understand the problem. What is going on with this article?

Theosのlogify.plがメソッド探しにかなり便利。

More than 3 years have passed since last update.

この記事は iOS Jailbreaking Advent Calendar 2015 の18日目の記事です。

はじめまして

おそらく初めましての方が多いと思いますので少し自己紹介を。。(緊張気味)
ちくわと申します。m(_ _)m

まだ中2(14歳)なので少々日本語がオカシイところ、英語がオカシイ所はどうかお許し下さいm(_ _)m

本題

メソッドを特定する時に%logを使ってsyslogに吐かせますが、

例えばこんなヘッダファイルがあって、

@interface FooClass : NSObject
{
}

- (void)amethod:(id)arg1;
- (bool)bmethod:(id)arg1;

@end


全てのメソッドの動作を確認したい時は
Tweakのコードは

%hook FooClass
-(void)amethod:(id)arg1{
 %log;
 %orig;
}
-(bool)bmethod:(id)arg1{
 bool r=%orig;
 NSLog(@"%d",r);
 return r;
}
%end

こんな感じです。
今回の場合はメソッドが少ないので簡単ですが、メソッドが大量にある場合はかなり面倒です。

そこで役立つのがlogify.pl!

使い方はいたって簡単です。
ターミナルで
~$ $THEOS/bin/logify.pl ヘッダファイルまでのパス
と打つと…

~$ $THEOS/bin/logify.pl ヘッダファイルまでのパス
%hook FooClass
-(void)amethod:(id)arg1{
 %log;
 %orig;
}
-(bool)bmethod:(id)arg1{
 bool r=%orig;
 NSLog(@"%d",r);
 return r;
}
%end
~$ 

とこの様に自動でコードを生成してくれるんです!
あとはリダイレクトで
$THEOS/bin/logify.pl ヘッダファイルまでのパス > Tweak.xm
でTweak.xmに書き出せますね。

いちいち$THEOS/bin/logify.plと打つのも面倒なのでPATH$THEOS/bin/を追加してあげると便利です。

知ってるわそんなの!ヽ(`Д´)ノ
みたいな記事でしたが、ここまで読んでくださった方ありがとうございます。
もっといい方法や、間違っている所があればコメント欄で教えてもらえるとありがたいです

ではでは~

ChikuwaJB
2001年生まれの高校生
https://github.com/ChikuwaJB/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away