Я использую эту функцию ниже под кнопкой, чтобы перезапустить приложение.Почему мое приложение не перезагружается на других компьютерах Mac?
func relaunchApp() {
let url = URL(fileURLWithPath: Bundle.main.resourcePath!)
let path = url.deletingLastPathComponent().deletingLastPathComponent().absoluteString
let task = Process()
task.launchPath = "/usr/bin/open"
task.arguments = [path]
task.launch()
exit(0) }
Это прекрасно работает на моей модели Macbook Air 2015. Однако, когда я отправляю этот файл кому-либо еще с той же самой моделью (или Mac Mini, я также пробовал это), ничего не происходит после нажатия кнопки. Это происходит в обоих условиях, когда он полностью скомпилирован и просто выполняется с Xcode, либо работает на моей стороне. Как я могу решить эту проблему?
'.absoluteString' * не * правильный метод для создания пути из URL-адреса, он должен быть' .path'. Сравните http://stackoverflow.com/questions/34135305/nsfilemanager-defaultmanager-fileexistsatpath-returns-false-instead-of-true. –
Различные блоки безопасности, в зависимости от версии ОС, параметры безопасности для пользователя и начало/открытие приложения/загрузки. – dfd
Функция все еще работала на моей стороне, но Airdropped это для Mac Mini (macOS 10.11.6) и все еще ничего. @MartinR – dylan