Recentemente ho scoperto che posso creare script da riga di comando Swift.Riga di comando "percorso di avvio non accessibile"
Ho deciso di vedere se potevo costruire il mio progetto Xamarin usandolo.
Purtroppo sto ricevendo il seguente errore e non so come risolverlo.
*** Chiusura di applicazione a causa di eccezione non identificata 'NSInvalidArgumentException', la ragione: 'percorso di lancio non accessibile'
Ecco il mio script:
#!/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)
}
Qualche idea?
Quando ho modificato il codice in modo che assomigli a 'shell ("/bin/bash ", argomenti: ["/Applicazioni/Xamarin \\ Studio.app/Contents/MacOS/mdtool "," -v build "," \ "- configuration: Beta | iPhone \" "," MyApp.iOS.sln "])' Ora ottengo più l'eccezione. Invece ho '/ bin/bash:/Applicazioni/Xamarin \ Studio.app/Contents/MacOS/mdtool: Nessun file o directory' – mgChristopher
interessante - Mi chiedo se la fuga dallo spazio sia necessaria? O forse hai bisogno di un singolo \ invece di \\? Vorrei giocare con quello, o provare a creare un link simbolico che non ha lo spazio in esso? – Jason
Ce l'ho fatta! 'shell ("/bin/bash ", argomenti: [" -c "," '/ Applicazioni/Xamarin Studio.app/Contents/MacOS/mdtool' -v build '--configuration: Beta | iPhone' MyApp.iOS. sln "])" Il tuo aiuto è stato inestimabile. Qual è il modo migliore per condividere la risposta su questo? – mgChristopher