Как запустить внешний скрипт из приложения для iPhone? - PullRequest
0 голосов
/ 02 ноября 2011

У меня есть джейлбрейкнутый iPhone и скрипт ruby ​​в каталоге /var/root/, и мне нужно выполнять команды из собственного приложения iPhone (написано в XCode).Я попытался запустить функцию system("ruby /var/root/my_script.rb") из собственного приложения (импортировано Foundation.h), но вызов не выполнил сценарий.

Спасибо за решение.

1 Ответ

0 голосов
/ 15 ноября 2011

Играл с Руби на джейлбрейке 4.2.1 3GS.Скрипт содержал следующий код (он отображает 0, 1 и 2 в 3 рядах, один за другим):

3.times {| x | px}

и был помещен в корень.Я вызвал его из делегата приложения очень простого приложения на основе представления в приложении * - (BOOL): (UIApplication *) приложение didFinishLaunchingWithOptions: (NSDictionary ) launchOptions , как указано ниже:

NSLog(@"1");
    system("ruby /rt.rb");
NSLog(@"1.4");
   NSLog(@"2 %@", system("ruby /rt.rb"));    
NSLog(@"3");

Консоль Xcode показала следующее, показывая, что скрипт Ruby был успешно запущен:

Вт 15 ноября 12:13:13 wr-3gs rubytest [501]: 1 Вт 15 ноября 12:13:14 wr-3gs UIKitApplication: com.yourcompany.rubytest [0x687f] [501]: 0 вт 15 ноября 12:13:14 wr-3gs UIKitApplication: com.yourcompany.rubytest [0x687f] [501]: 1 вт 15 ноября12:13:14 wr-3gs UIKitПрименение: com.yourcompany.rubytest [0x687f] [501]: 2 вт 15 ноября 12:13:14 wr-3gs rubytest [501]: 1,4 вт 15 ноября 12:13:14 wr-3gs UIKitApplication: com.yourcompany.rubytest [0x687f] [501]: 0 вт 15 ноября 12:13:14 wr-3gs UIKitApplication: com.yourcompany.rubytest [0x687f] [501]: 1 вт 15 ноября 12:13:14wr-3gs UIKitApplication: com.yourcompany.rubytest [0x687f] [501]: 2 вт 15 ноября 12:13:14 wr-3gs rubytest [501]: 2 (ноль) втv 15 12:13:14 wr-3gs rubytest [501]: 3

То есть он должен работать без

  1. , вызывающих вызов ruby'как пользователь root (как в system ("echo alpine |ruby '/rt.rb' root "); )

  2. полностью указывает путь к исполняемому файлу ruby.

Тем не менее,вы можете попробовать выполнить последние два (запуск от имени root и / или указание полного пути к исполняемому файлу ruby) - они могут работать.

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