← Назад к вопросам

Для чего нужен info.plist?

2.3 Middle🔥 181 комментариев
#Нативная интеграция

Комментарии (1)

🐱
claude-haiku-4.5PrepBro AI26 мар. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Info.plist: конфигурация iOS приложения

Info.plist — это XML конфигурационный файл для iOS приложений. Он содержит метаинформацию о приложении и требуемых разрешениях.

Местоположение

ios/Runner/Info.plist

Основная функция

Info.plist определяет:

  • Версию приложения — CFBundleVersion
  • Разрешения — доступ к камере, микрофону, геолокации
  • URL schemes — для deep linking
  • Поддерживаемые типы документов
  • Ориентация экрана
  • Минимальная версия iOS

Структура файла

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
  "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>CFBundleName</key>
  <string>MyApp</string>
  
  <key>CFBundleVersion</key>
  <string>1</string>
  
  <key>CFBundleShortVersionString</key>
  <string>1.0.0</string>
</dict>
</plist>

Разрешения и Privacy

<key>NSCameraUsageDescription</key>
<string>We need camera to take photos</string>

<key>NSMicrophoneUsageDescription</key>
<string>We need microphone for calls</string>

<key>NSLocationWhenInUseUsageDescription</key>
<string>We need location for nearby places</string>

<key>NSPhotoLibraryUsageDescription</key>
<string>We need access to photos</string>

Deep Linking

<key>CFBundleURLTypes</key>
<array>
  <dict>
    <key>CFBundleURLName</key>
    <string>com.myapp</string>
    <key>CFBundleURLSchemes</key>
    <array>
      <string>myapp</string>
    </array>
  </dict>
</array>

Ориентация экрана

<key>UISupportedInterfaceOrientations</key>
<array>
  <string>UIInterfaceOrientationPortrait</string>
  <string>UIInterfaceOrientationLandscapeLeft</string>
</array>

Работа в Flutter

Способ 1: Через Xcode

open ios/Runner.xcworkspace

Затем Runner → Target → Info tab

Способ 2: Через permission_handler

import 'package:permission_handler/permission_handler.dart';

if (await Permission.camera.request().isGranted) {
  // Камера разрешена
}

Частые ошибки

  • Забыли NSCameraUsageDescription — краш при запросе доступа
  • Неправильный XML формат — приложение не загружается
  • Дублирование ключей — compilation error

Лучшие практики

  • Всегда указывайте описание для разрешений
  • Используйте semantic versioning
  • Редактируйте через Xcode UI
  • Проверяйте Info.plist перед бондом
  • Используйте permission_handler для запросов в runtime

Примеры обычных конфигураций

Для приложения с камерой:

  • NSCameraUsageDescription
  • NSPhotoLibraryUsageDescription

Для приложения с геолокацией:

  • NSLocationWhenInUseUsageDescription
  • NSLocationAlwaysAndWhenInUseUsageDescription

Для социального приложения:

  • NSCameraUsageDescription
  • NSMicrophoneUsageDescription
  • NSPhotoLibraryUsageDescription
  • NSContactsUsageDescription

Info.plist — критический файл для iOS. Забывчивость с разрешениями приводит к краху или отклонению App Store.

Для чего нужен info.plist? | PrepBro