У меня есть отдельное (стороннее) приложение, которое я пытаюсь запустить с помощью команды «kick». Я настроил свои файлы ~ / .bash_profile и / etc / bashrc так, чтобы я мог напечатать kick [command] в окне терминала, и он отлично работает. Поэтому я предполагаю, что у меня все настроено правильно.
Проблема возникает, когда я пытаюсь использовать NSTask.
По сути, я делаю создание двух изменяемых массивов, kickBuild и kickOut. Один для сборки команды (это строка флагов) и один для использования с NSTask. Я беру kickBuild и преобразовываю его в строку, разделенную пробелами, а затем добавляю это как объект во второй массив.
Таким образом, моя команда должна выглядеть примерно так: "kick -i /path/to/input/file.ext -as 2 -g 2.2" и т. Д. И если я наберу это в окне терминала, это будет работать большой.
kickBuild = [[NSMutableArray alloc] initWithCapacity:100];
kickOut = [[NSMutableArray alloc] initWithCapacity:2]; // Thinking that this should be "kick" and then "-i /path/to/input/file.ext -as 2 -g 2.2"
kickPath = [kickLocationTextField stringValue]; // This is just the path to my kick executable. NOT /bin/sh. Is that correct?
NSString *tempKick = [kickBuild componentsJoinedByString: @" "];
[kickOut addObject:tempKick];
[NSTask launchedTaskWithLaunchPath:kickPath arguments:kickOut];
Когда я создаю свое приложение и запускаю этот код, я получаю эту ошибку…
dyld: библиотека не загружена: build / darwin_x86_64 / gcc_opt_dynamic / core / libai.dylib
Ссылка от: /Users/Gene/Kick/Kick-3.3.4.0/bin/kick
Причина: изображение не найдено
Это NSLog из kickOut ...
kick -i /Users/Gene/Test_Main.0001.ext -r 960 540 -as 2 -g 2.2 -v 5 -dp
Я что-то не так делаю? Или это проблема с пинком?
Как бы я протестировал NSTask с какой-то базовой терминальной задачей, чтобы убедиться, что я правильно использую NSTask?
kickBuild = [[NSMutableArray alloc] initWithCapacity:5];
kickOut = [[NSMutableArray alloc] initWithCapacity:2];
kickPath = @"/bin/sh";
[kickBuild addObject:@"-c"]; // Do I need this?
[kickBuild addObject:@"ls"];
[kickBuild addObject:@"~/Desktop"];
NSString *tempKick = [kickBuild componentsJoinedByString: @" "];
[kickOut addObject:tempKick];
[NSTask launchedTaskWithLaunchPath:kickPath arguments:kickOut];
Если я запускаю это без @ "- c", я получаю: / bin / sh: ls ~ / Desktop: Нет такого файла или каталога
Любая помощь приветствуется.
Спасибо за миллион