HBLogDebug 輸出訊息

前言
上一篇 透過 SSH 安裝越獄套件 中,已讓 iOS 設備將在 Respring 後彈出一個警告窗框。
雖然警告窗框可以輸出自訂訊息,但若所有訊息都使用警告窗框輸出的話,既花時間也不務實。
接下來,將透過HBLogDebug()
向系統日誌輸出 Log 訊息,提高除錯效率。
實作過程
Tweak.xm
於欲輸出訊息處使用HBLogDebug()
即可:
%hook SpringBoard //指定要 hook 的類別,需要以 %end 結尾
- (void)applicationDidFinishLaunching:(id)arg1 //指定要 hook 的函式
{
%orig; //呼叫原始函式
UIAlertView * alert =
[[UIAlertView alloc] initWithTitle:@"Hello"
message:@"It is my first tweak."
delegate:self
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[alert show];
// [alert release];
// ARC 預設開啟,不用手動 release
HBLogDebug(@"Hello");
HBLogDebug(@"It is my first tweak.");
HBLogDebug(@"arg1:%@",arg1); // 輸出變量 arg1
}
%end
查看日誌輸出
-
將 iOS 設備透過傳輸線連上電腦,開啟 macOS 內建的
系統監視程式.app
。 -
於左方
裝置
面板選中 iOS 設備。 -
於右上搜尋 Tweak 名稱(本例為:
hello
)或Tweak
或 關鍵字。 -
將顯示以下輸出:
[1;36m[hello] [m[0;36mTweak.xm:16[m [0;30;46mDEBUG:[m Hello
[1;36m[hello] [m[0;36mTweak.xm:17[m [0;30;46mDEBUG:[m It is my first tweak.
[1;36m[hello] [m[0;36mTweak.xm:18[m [0;30;46mDEBUG:[m arg1:<SpringBoard: 0x106011000>
修正彩色輸出
上述輸出中才會穿插出現不必要的字符,是因為HBLogDebug()
預設採用色彩輸出訊息。
但是系統監視程式.app
並不支援顯示顏色,若要改為無色彩輸出只需要於Tweak.xm
開頭加上:
// 移除 HBLogDebug() 顏色
#undef HB_LOG_FORMAT
#define HB_LOG_FORMAT(color) CFSTR("[%s: %s:%d] %s: %@")
貼文底端