Я новичок в быстрой и в целом для Apple, давно пользователь Windows.В настоящее время моя проблема заключается в том, что я хочу, чтобы мое приложение работало в любой MacOS без каких-либо вопросов о пароле, в настоящее время при запуске в Xcode оно спрашивает меня о пароле, а затем работает как задумано.(работает только с sudo -S, иначе не будет)
Чтобы добраться до этой точки, мне пришлось отключить «песочницу», но я не был уверен, что это именно то, что я должен был сделать, но в то время это было единственнымспособ, которым я мог заставить приложение работать.
Также в некоторых сообщениях я видел, что в Мохаве рекомендуется установить Полный доступ к диску для Терминала в приложении такого типа, поэтому я сделал это.
Опять же вопрос в том, как настроить это приложение, чтобы я мог дать его другу, и он мог бы использовать его без каких-либо паролей и других хитростей разработчиков.
Спасибо.
import Cocoa
class ViewController: NSViewController {
@IBOutlet weak var txtUrl1: NSTextField!
@IBOutlet weak var btnDownload: NSButton!
@IBAction func clickDownload(_ sender: Any) {
let url = txtUrl1.stringValue
let command = "sudo -S /usr/local/bin/youtube-dl -f best " + url + " -o '/Users/Matthew/Library/Containers/matthew.youtube/Data/%(title)s.%(ext)s' "
shell(command)
}
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
func shell(_ command: String) -> String {
let task = Process()
task.launchPath = "/bin/bash"
task.arguments = ["-c", command]
let pipe = Pipe()
task.standardOutput = pipe
task.launch()
let data = pipe.fileHandleForReading.readDataToEndOfFile()
let output: String = NSString(data: data, encoding: String.Encoding.utf8.rawValue)! as String
return output
}
override var representedObject: Any? {
didSet {
// Update the view, if already loaded.
}
}
}