К каким командам оболочки вы можете получить доступ на iOS через системную команду в Objective-C?

Я знаю, что и Mac OS, и iOS основаны на Darwin OS. Означает ли это, что все команды OS X, доступные в терминале, доступны на iOS с помощью команды «система» в Objective-C? Если нет, то какие?


person FlatAssembler    schedule 09.11.2017    source источник
comment
Нет, Дарвин — это просто основа операционной системы. Папки /bin, /usr/bin и т. д. отсутствуют в iOS.   -  person clemens    schedule 09.11.2017
comment
Ни один из них не доступен на iOS. system() не работает из сторонних приложений. Я не думаю, что оболочка существует в обычном смысле, но если бы она существовала, вы не смогли бы получить к ней доступ из сторонних приложений. Эти правила могут не применяться к устройствам jb.   -  person PhoneyDeveloper    schedule 10.11.2017


Ответы (1)


Нет, на iOS без джейлбрейка нет оболочки, поэтому system() не делает ничего полезного. Добавление оболочки, по-видимому, является обычным делом на устройствах с джейлбрейком.

Большая часть библиотеки времени выполнения пользовательского режима C/C++ доступна в современных версиях iOS (я не работал с версиями старше 9), поэтому может работать довольно много классического кода UNIX. Написание приложения с пользовательским интерфейсом в виде оболочки должно быть возможным, но без джейлбрейка оно не очень полезно по крайней мере по двум причинам:

  1. Приложение имеет доступ только к своей собственной иерархии каталогов и поэтому не может видеть файлы других приложений.

  2. Приложения iOS не предназначены для администрирования через интерфейс командной строки.

Я подозреваю, что Apple также отклонит любую отправку приложения командной строки в App Store.

person John Dallman    schedule 28.11.2018