/ / Ako zahrnúť a zavolať spustiteľný súbor v aplikácii Kakao? - objektív-c, kakao, balík aplikácií

Ako zahrnúť a zavolať spustiteľný súbor v aplikácii Kakao? - objektív-c, kakao, balík aplikácií

Môžem spustiť spustiteľný súbor zo známeho lokálneho adresára v rámci aplikácie Kakao, a to takto:

// Run the server.

NSTask *task = [[NSTask alloc] init];
NSPipe *pipe = [NSPipe pipe];
NSString* scriptPath = @"/Users/example/Server/runServerExecutable.sh";
[task setLaunchPath: @"/bin/sh"];
[task setArguments: [NSArray arrayWithObjects: scriptPath, nil]];
[task setStandardOutput: pipe];
[task launch];

Mohol by mi niekto pomôcť pri týchto otázkach?

  • Kde by som mal obsahovať spustiteľné / skriptové / textové súbory v balíku aplikácií?
  • Ako upraviť scriptPath skript spustiť programovo?

Mnohokrat dakujem!

odpovede:

0 pre odpoveď č. 1

Presuňte skriptu / textové súbory do vášho xcodeprojekt -> projektový navigátor, aby sa k projektu pridal. Vytvorte projekt. Otvorte balík, budete môcť vidieť pridaný súbor v adresári zdrojov.

Nižšie uvedený kód vám pomôže získať súbor zo zdrojov. Napríklad som pridala skript pod názvom "OpenSafari.sh"

NSTask *temp = [[NSTask alloc] init];
[temp setLaunchPath:@"/bin/sh"];

NSString *filePath = [[NSBundle mainBundle] pathForResource:@"OpenSafari" ofType:@"sh"];
NSArray *tempargs = [NSArray arrayWithObjects:filePath,nil];
[temp setArguments:tempargs];

NSPipe *temppipe = [NSPipe pipe];
[temp setStandardOutput:temppipe];
NSPipe *errorPipe = [NSPipe pipe];
[temp setStandardError:errorPipe];

[temp launch];

NSData *data = [[temppipe fileHandleForReading] readDataToEndOfFile];
NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];

NSData *dataErr = [[errorPipe fileHandleForReading] readDataToEndOfFile];
NSString *resultErr = [[NSString alloc] initWithData:dataErr encoding:NSUTF8StringEncoding];

Dúfam, že to pomôže!