Что такое Info.plist в контексте Flutter-проекта?

«Что такое Info.plist в контексте Flutter-проекта?» — вопрос из категории Платформенное взаимодействие, который задают на 29% собеседований Flutter Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Info.plist (Information Property List) — это обязательный конфигурационный файл для iOS-приложений, включая те, что собраны через Flutter. Это XML-файл, содержащий критически важные метаданные и настройки приложения для операционной системы iOS.

В Flutter-проекте он расположен по пути: ios/Runner/Info.plist.

Основное назначение:

  • Идентификация приложения: Уникальный Bundle Identifier (CFBundleIdentifier), например com.yourapp.name.
  • Запрос разрешений: Описание для системы, зачем приложению нужен доступ к защищенным ресурсам (камера, геолокация, фото, микрофон). Без этих описаний запрос на разрешение не будет показан пользователю.
  • Объявление возможностей: Настройка фоновых режимов (UIBackgroundModes), поддержка ориентации, настройка статус-бара.

Пример добавления описания для доступа к геолокации:

<key>NSLocationWhenInUseUsageDescription</key>
<string>Приложению требуется доступ к вашей геопозиции для показа ближайших заведений на карте.</string>

Практика: При добавлении нативных плагинов (например, camera, location) часто требуется вручную добавлять соответствующие ключи и описания в Info.plist. Изменения в этом файле требуют пересборки проекта (flutter build ios).