В настоящее время я использую Cycript, чтобы открыть окно предупреждения о трамплине, например:
#!/usr/bin/cycript -p SpringBoard
var message = [[UIAlertView alloc] init];
message.title = "Title";
message.message = "Message";
[message addButtonWithTitle:@"Dismiss"];
[message show];
Но я бы хотел уйти от этого метода, поскольку Cycript не предназначен для производства.
Используя теос, я сделал проект инструмента, и мой 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, я вижу:
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
Любые идеи, почему это терпит крах? Это потому, что нет логики привязывать инструмент командной строки к трамплину (как ключ -p в cycript)?
Я пробовал и rpetrich, и свои собственные заголовки 5.0.1 в / opt / theos / include - такое же поведение.