В каком процессе запускается расширение приложения iOS?

Я читаю руководство по программированию расширений приложений для iOS, и здесь написано следующее:

Пока расширение работает, оно напрямую взаимодействует только с основным приложением. Нет прямой связи между работающим расширением и содержащим его приложением; обычно содержащее его приложение даже не запускается, пока работает его расширение. Кроме того, содержащее приложение и ведущее приложение вообще не обмениваются данными.

Таким образом, расширение можно запустить, даже если его нет в приложении. Итак, это означает, что это расширение имеет собственный процесс или запускает его в процессе хост-приложения?


person someUser    schedule 11.08.2014    source источник
comment
Здравый смысл подсказывает, что хост-приложение загрузит его, как и любую другую разделяемую библиотеку, сделав его частью хост-приложения. Кроме того, вам придется спросить кого-нибудь в Apple.   -  person borrrden    schedule 11.08.2014
comment
Да, я также думаю, что это расширение можно запускать в процессе хост-приложения. Но вот идет IPC между приложениями хоста и расширения. И хотя Apple говорит, что они заботятся о доступе для чтения / записи, я все еще беспокоюсь по этому поводу.   -  person someUser    schedule 11.08.2014
comment
Я думаю, вы могли неправильно понять смысл расширения. Скорее всего, это не запускаемый исполняемый процесс, а загруженная функциональность. Я не думаю, что вам следует слишком беспокоиться о слове «общаться». Дело в том, что содержащее его приложение никоим образом не будет отображаться его расширением. Расширение полностью отделено от содержащего его приложения.   -  person borrrden    schedule 12.08.2014


Ответы (1)


Хост-приложение, содержащее приложение, и расширение приложения - это отдельные процессы. Хост-приложение и расширение приложения обмениваются данными через IPC, который контролируется iOS и предоставляется разработчику через ограниченные API-интерфейсы расширений приложения.

person Icydog    schedule 26.08.2014
comment
Не могли бы вы указать источник информации? - person someUser; 27.08.2014
comment
Документы от Apple не всегда очень ясны или ясны по этому поводу, но если вы создадите расширение приложения и немного поиграете с API, это станет ясно. Определить, что эти вещи выполняются в отдельных процессах, несложно: просто запустите содержащее приложение, основное приложение и расширение приложения, а затем посмотрите список процессов. - person Icydog; 28.08.2014