我想使用instrument通过我的cocoa app在我的iOS模拟器上安装.app。
这是我第一次开发可可应用程序和NSTask。 NSTask需要一个启动路径,在我的情况下是无关紧要的,因为这个命令可以从任何地方运行。 这是我想要运行的命令:
instruments -t /Applications/Xcode.app/Contents/Applications/Instruments.app/Contents/PlugIns/AutomationInstrument.xrplugin/Contents/Resources/Automation.tracetemplate -w" iPad Retina(7.1模拟器)&# 34; ""
目前我有这个:
NSTask *task = [[NSTask alloc] init];
[task setLaunchPath:@"/"];
NSString * commandTorun = @"instruments -t /Applications/Xcode.app/Contents/Applications/Instruments.app/Contents/PlugIns/AutomationInstrument.xrplugin/Contents/Resources/Automation.tracetemplate -w \"iPad Retina (7.1 Simulator)\" \"<path to .app>" ";
NSArray *arguments = [NSArray arrayWithObjects:
@"-t" ,
[NSString stringWithFormat:@"%@", commandTorun],
nil];
NSLog(@"Run command:%@",commandTorun);
[task setArguments:arguments];
[task launch];
任何帮助将不胜感激。
谢谢,
答案 0 :(得分:1)
我们走了。
工作解决方案。 XCode 7.3 iPhone 6(9.3)
C++
注意:放置正确的xcode应用程序名称(/ Applications / xcode 7.3)和模拟器或设备udid(如果是物理设备)。
答案 1 :(得分:0)
启动路径是命令的路径,您似乎将命令名放在&#39; -t&#39;之后。在你的论点中。尝试这样的事情:
NSTask *task = [[NSTask alloc] init];
[task setLaunchPath: @"/Applications/Xcode.app/Contents/Applications/Instruments.app/Contents/MacOS/Instruments"];
NSArray *arguments = [NSArray arrayWithObjects:
@"-t",
@"/Applications/Xcode.app/Contents/Applications/Instruments.app/Contents/PlugIns/AutomationInstrument.xrplugin/Contents/Resources/Automation.tracetemplate"
@"-w",
@"iPad Retina (7.1 Simulator)",
nil];
[task setArguments:arguments];
[task launch];
我认为NSTask在论据中引用了引用,但我不确定,所以你可能需要在&#34; iPad ...&#34;周围放置转义报价。论点。
答案 2 :(得分:0)
stdlib的系统功能可以满足您的需求。
只需将整个命令作为参数调用:
system("instruments -t /Applications/Xcode.app/Contents/Applications/Instruments.app/Contents/PlugIns/AutomationInstrument.xrplugin/Contents/Resources/Automation.tracetemplate -w \"iPad Retina (7.1 Simulator)\" \"<path to .app>" ")