Kısa süre önce Swift komut satırı komut dosyaları oluşturabildiğimi öğrendim.Komut satırı "başlatılamadı yolu"
Xamarin projemi kullanarak oluşturabilir miyim diye karar verdim.
Maalesef aşağıdaki hatayı alıyorum ve nasıl düzelteceğimi bilmiyorum.
*** nedeniyle yakalanmamış istisna 'NSInvalidArgumentException' için neden uygulamasını Sonlandırma: 'fırlatma yolunu değil erişilebilir' İşte
benim senaryom:
#!/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)
}
herhangi bir düşünce?
Kodu değiştirdiğimde bu kabuk ("/ bin/bash" gibi) argümanları: ["/ Applications/Xamarin \\ Studio.app/Contents/MacOS/mdtool", "-v build", " \ "- yapılandırma: Beta | iPhone \" "," MyApp.iOS.sln "]) Artık istisnayı daha uzun sürüyorum. Bunun yerine ben/bin/bash:/Applications/Xamarin \ Studio.app/Contents/MacOS/mdtool: Bu tür bir dosya veya dizin yok – mgChristopher
ilginç - alandan kaçmak gerekip gerekmediğini merak ediyorum? Ya da belki de \\ yerine bir bekletmeye ihtiyacınız var? Bununla oynar mıyım yoksa içinde boşluk olmayan bir sembolik bağlantı oluşturmayı deneyebilir miyim? – Jason
Çalışıyorum! shell ("/ bin/bash", argümanlar: ["-c", "'/ Uygulamalar/Xamarin Studio.app/Contents/MacOS/mdtool' -v build '- yapılandırma: Beta | iPhone' MyApp.iOS. sln "]) Yardımınız çok değerli oldu. Bu cevabı paylaşmanın en iyi yolu nedir? – mgChristopher