Niedawno dowiedziałem się, że mogę tworzyć skrypty wiersza poleceń Swift.Linia poleceń "ścieżka uruchamiania niedostępna"
Postanowiłem sprawdzić, czy mogę użyć mojego projektu Xamarin.
Niestety pojawia się następujący błąd i nie wiem jak to naprawić.
*** Zakończenie aplikację spowodowane nieprzechwyconego wyjątku 'NSInvalidArgumentException', powód: 'ścieżkę uruchamiania nie jest dostępna'
Oto mój skrypt:
#!/usr/bin/env swift
import Foundation
print("Building Script")
let fileManager = NSFileManager.defaultManager()
let path = fileManager.currentDirectoryPath
func shell(launchPath: String, arguments: [String] = []) -> NSString? {
let task = NSTask()
task.launchPath = launchPath
task.arguments = arguments
let pipe = NSPipe()
task.standardOutput = pipe
task.launch()
let data = pipe.fileHandleForReading.readDataToEndOfFile()
let output = NSString(data: data, encoding: NSUTF8StringEncoding)
return output
}
if let output = shell("/Applications/Xamarin\\ Studio.app/Contents/MacOS/mdtool", arguments: ["-v build", "\"--configuration:Beta|iPhone\"", "MyApp.iOS.sln"]) {
print(output)
}
Wszelkie myśli?
Kiedy zmieniłem kod tak, by wyglądał jak "shell" ("/ bin/bash", argumenty: ["/ Applications/Xamarin \\ Studio.app/Contents/MacOS/mdtool", "-v build", " \ "- configuration: Beta | iPhone \" "," MyApp.iOS.sln "])' Teraz już otrzymuję wyjątek. Zamiast tego otrzymuję '/ bin/bash:/Applications/Xamarin \ Studio.app/Contents/MacOS/mdtool: Nie ma takiego interesującego katalogu lub katalogu ' – mgChristopher
- Zastanawiam się, czy ucieczka z tej przestrzeni jest konieczna? A może potrzebujesz pojedynczego \ zamiast \\? Bawiłbym się z tym, lub spróbuj stworzyć dowiązanie symboliczne, które nie ma w nim miejsca? – Jason
Mam to działa! 'shell ("/bin/bash ", argumenty: [" -c "," "/ Applications/Xamarin Studio.app/Contents/MacOS/mdtool" -v build "- konfiguracja: Beta | iPhone 'MyApp.iOS. sln "])' Pomagałeś był nieoceniony. Jaki jest najlepszy sposób na udzielenie odpowiedzi na to pytanie? – mgChristopher