About

Введение

Начиная с iOS 8, Apple представила App Extensions. App Extensions позволяют предоставлять часть функционала одного приложения всем другим (например, открыть изображение или кастомную клавиатуру). Одно расширение может выполнять только одну функцию (например, Share или Custom Keyboard).

Как это работает

Host app - какое-то стороннее приложение, которое хочет получить доступ к функциональности приложения Containing app Containing App - расширение является частью этого приложения App extension - расширение

Вопросы безопасности

Из соображений безопасности

  • Расширение никогда не взаимодействует с Containing app напрямую (обычно, они даже не запущены одновременно)

  • App extension и Host app взаимодействуют через IPC

  • Host app и Containing app не взаимодействуют вовсе

  • Виджет Today (только этот тип расширений) может спросить систему открыть Containg app через вызов openURL:completionHandler: метод класса NSExtensionContext.

  • Оба приложения - App extension и Containing app - могут обращаться к privately defined shared container.

Дополнительно:

  • Расширения не могут получать доступ к каким-то API, например, HealthKit

  • Они не могут получать данные, используя AirDrop, но могут могут отправлять данные.

  • Не разрешены фоновые задачи с долгим временем жизни, но можно инициировать загрузку и скачивание.

Last updated