아래의이 기능을 사용하여 응용 프로그램을 다시 시작합니다.내 응용 프로그램이 다른 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를 비교하십시오. –
OS 버전, 사용자의 보안 설정 및 이전에 앱/다운로드를 시작했는지 여부에 따라 다양한 보안 블록이 있습니다. – dfd
기능은 여전히 내 편이었지만, Mac mini (MacOS 10.11.6)에 Airdropped가 실행되었습니다. @MartinR – dylan