Недавно я узнал, что могу создавать скрипты командной строки Swift.Командная строка «Путь к запуску недоступен»
Я решил посмотреть, смогу ли я построить свой проект Xamarin, используя его.
К сожалению, я получаю следующую ошибку, и я не знаю, как ее исправить.
*** Нагрузочный приложение из-за неперехваченного исключением 'NSInvalidArgumentException', причина: 'путь запуска не доступен'
Вот мой сценарий:
#!/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)
}
Любые мысли?
Когда я изменил код так, чтобы он выглядел как 'shell ("/bin/bash ", аргументы: ["/Applications/Xamarin \\ Studio.app/Contents/MacOS/mdtool "," -v build "," \ "- конфигурация: Бета | iPhone \" "," MyApp.iOS.sln "])' Теперь я больше получаю исключение. Вместо этого я получаю '/ bin/bash:/Applications/Xamarin \ Studio.app/Contents/MacOS/mdtool: Нет такого файла или каталога' – mgChristopher
интересно - интересно, нужно ли избегать пространства? Или, может быть, вам нужен сингл \ вместо \\? Я бы поиграл с этим или попытался создать символическую ссылку, в которой нет места? – Jason
У меня есть работа! 'shell ("/bin/bash ", аргументы: [" -c "," '/ Applications/Xamarin Studio.app/Contents/MacOS/mdtool' -v build '--configuration: Beta | iPhone' MyApp.iOS. sln "])' Вы помогали неоценимо. Каков наилучший способ поделиться этим ответом? – mgChristopher