Ich arbeite mit Ionic, das über eine Befehlszeilenschnittstelle verfügt. Ich möchte eine kleine Mac-App erstellen, mit der bestimmte Befehle ausgeführt werden können.Verwenden von NSTask, um ionische Erstellungsbefehle auszuführen - Startpfad nicht zugänglich
Im Terminal I cd Users/me/Desktop/Repos/ionic-project/myApp
Nach dem Ändern würde ich z.B. ionic run
NSTask *task = [[NSTask alloc]init];
task.launchPath = @"/bin/bash";
task.currentDirectoryPath = @"cd Users/me/Desktop/Repos/ionic-tryouts/myApp";
task.arguments = @[@"ionic run"];
[task launch];
Aber das gibt mir ‚Arbeitsverzeichnis existiert nicht.‘ Ich habe schon einige Threads hier auf SO gelesen. Was ist mein Fehler?
EDIT:
Dank Christik für die ausführliche Antwort. Ich habe jetzt diesen Code:
NSTask *task = [[NSTask alloc]init];
task.launchPath = @"/usr/local/bin/ionic";
task.currentDirectoryPath = @"/Users/me/ionic-tryouts/myApp";
task.arguments = @[@"run"];
[task launch];
Jetzt bekomme ich folgende Fehlermeldung: env: Knoten: No such file or directory
. Ich vermute, dass dies auf ein Problem zurückzuführen ist, dass node.js nicht gefunden wurde (ionic ist auf dem Knoten aufgebaut). Ich habe this Problem gefunden - ein fehlender Symlink mit dem richtigen Namen könnte die Ursache sein. Aber das Einstellen des Symlinks für den Knoten hat nicht geholfen. Irgendwelche Ideen?
EDIT2: gab ich Christik die richtige Antwort, obwohl ich es nicht endlich an die Arbeit machen können. Ich bin immer noch Ermittler. Vielleicht ist es die Knoteninstallation, die falsch ist.
EDIT3: sah ich einige Beiträge, die, dass es erwähnt besser sein könnte, wenn der Knoten von Homebrew neu installiert wurde, da Homebrew es ohne sudo installiert. Kurzer Kommentar: nicht helfen
Danke für die Antwort, aber wie oben beschrieben habe ich immer noch Probleme.Ich setze ein Kopfgeld ;-) – brainray
@brainray: Die 'arguments' @ [@" - c ", @" ionic "," run "]' Liste war für die @ "/ bin/sh" ausführbar. Für ionic musst du nur '@ [@" run "]' pashen, tut mir leid, wenn ich nicht klar darüber bin. – Cristik
Danke für die Aufmerksamkeit :-) Aber selbst mit nur '@ [@" run "]' als Argument gibt es 'env: node: No solche Datei oder Verzeichnis'. Ich denke, es hat etwas zu tun mit der ionischen Installation – brainray