Swift по-разному обрабатывает пути запуска приложений на разных компьютерах Mac? Расстраивающие несоответствия - PullRequest
0 голосов
/ 30 октября 2019

В моей программе я вызываю другие двоичные файлы и приложения, которые находятся в папке (имя приложения) / 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...