В моей программе я вызываю другие двоичные файлы и приложения, которые находятся в папке (имя приложения) / Contents / Resources. На моем Mac я делаю это, сначала получая начальный каталог моей программы, затем прося его открыть как задачу. Я заметил, что это прекрасно работает на моем Mac, но когда я тестирую его на Mac друга, «начальный путь» возвращает просто «/», что разочаровывает. Я пробовал НЕСКОЛЬКО методов, в том числе:
let fileManager = NSFileManager.defaultManager()
let path = fileManager.currentDirectoryPath
print(path)
, а также
bundle.main.executablepath
и
bundle.main.bundlepath
и, наконец, что не менее важно, я даже пытался использовать Process/ Pipe спросить os:
task.launchPath = "/bin/sh"
task.arguments = ["-c", "pwd"]
Проблема здесь в том, что на моем компьютере они ВСЕ производят либо каталог, содержащий приложение (что нормально,), либо каталог внутри приложения (который такжехорошо,)
но на других Mac это либо дает мне "/", ИЛИ даже страннее, это дает мне что-то вроде "/ var / private / folder" и т. д. , и этостранный каталог не содержит содержимого моего приложения. Что здесь происходит?
Это XCode 11.1, последняя версия Swift / Storyboards для macOS. На данный момент работает последняя версия Catalina.