2012-03-25 1 views
0

iOSの失敗:シンプルなUIAlertViewアプリ私は現在のような踏み台警告ウィンドウがポップアップするCycriptを使用しています5.0.1

#!/usr/bin/cycript -p SpringBoard 
var message = [[UIAlertView alloc] init]; 
message.title = "Title"; 
message.message = "Message"; 
[message addButtonWithTitle:@"Dismiss"]; 

[message show]; 

をしかし、私はCycriptありえないがために意味するので、この方法から離れて取得したいのですが製造。 THEOSを使用して

は、私は、ツールのプロジェクトを作り、私のmain.mmは次のとおりです。

int main(int argc, char **argv, char **envp) { 
     NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; 
     NSLog(@"Start"); 

     UIAlertView *alert = [[UIAlertView alloc] init]; 
     NSLog(@"1"); 
     [alert setTitle:@"Title"]; 
     NSLog(@"2"); 
     [alert setMessage:@"Message"]; 
     [alert addButtonWithTitle:@"Dismiss"]; 
     [alert show]; 
     [pool release]; 
     return 0; 
} 

Makefileは次のとおりです。

include theos/makefiles/common.mk 

TOOL_NAME = cmdWindow 
cmdWindow_FILES = main.mm 
cmdWindow_FRAMEWORKS = UIKit Foundation 

include $(THEOS_MAKE_PATH)/tool.mk 

それがうまくコンパイルが、私は私のiPhone上でそれを実行すると、I次を参照してください:

iPhone:/tmp root# ./cmdWindow 
2012-03-25 06:33:18.801 cmdWindow[2845:707] Start 
2012-03-25 06:33:18.851 cmdWindow[2845:707] 1 
Trace/BPT trap: 5 

これがクラッシュする理由はありますか? (cycriptの-pスイッチのように)跳躍するためのコマンドラインツールをフックするために何のロジックはありませんので、それは何ですか?同じ動作 -

私はrpetrichとは/ opt/THEOS /含んで独自のカスタム5.0.1ヘッダの両方を試してみました。

答えて

3

あなたがスピンアップ実行ループとUIApplicationブートストラップを持ってまで、あなたはアラートまたは任意のUIを表示することはできません。アプリケーション正しく登録や踏み台から起動して、アラートが表示されますから、それらのものの両方を行います。

はまた、踏み台は、APIのCFUserNotificationファミリを使用して、あなたに代わって、アラートを表示しています。

関連する問題