Info.plist
Info.plist (ang. information property list) jest plikiem w formacie XML zawierającym metadane opisujące aplikację lub pakiet w systemach operacyjnych Apple, takich jak macOS, iOS, watchOS czy tvOS. Plik ten jest nieodłącznym elementem struktury aplikacji tworzonych w środowisku Xcode i służy systemowi operacyjnemu do prawidłowego rozpoznania, uruchomienia oraz zarządzania aplikacją.
Budowa i składnia
Info.plist jest zapisem w postaci słownika (dictionary) opisanym w języku XML. Każda para klucz‑wartość definiuje określone właściwości aplikacji, np. identyfikator pakietu, wersję, wymagania systemowe czy uprawnienia. Przykładowa struktura pliku może wyglądać następująco:
<?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>CFBundleIdentifier</key>
<string>com.przyklad.aplikacja</string>
<key>CFBundleVersion</key>
<string>1.0</string>
<key>CFBundleName</key>
<string>PrzykladAplikacja</string>
<key>UIRequiredDeviceCapabilities</key>
<array>
<string>armv7</string>
</array>
</dict>
</plist>
Klucz CFBundleIdentifier (link do CFBundleIdentifier) jest unikalnym identyfikatorem pakietu, używanym m.in. w App Store oraz przy powiadomieniach push.
Najważniejsze klucze
- CFBundleName – nazwa wyświetlana aplikacji.
- CFBundleDisplayName – nazwa widoczna na ekranie głównym urządzenia.
- CFBundleVersion – numer wersji wewnętrznej (ang. build number).
- CFBundleShortVersionString – wersja publiczna, widoczna dla użytkowników.
- CFBundleIdentifier – unikalny identyfikator pakietu.
- UIRequiredDeviceCapabilities – lista wymagań sprzętowych (np.
arm64). - LSApplicationQueriesSchemes – schematy URL, które aplikacja może wywołać.
- NSPhotoLibraryUsageDescription i inne klucze
NS…UsageDescription– opis uprawnień wymaganych od użytkownika.
Historia
Pierwsze wersje Info.plist pojawiły się w 2000 roku wraz z systemem Mac OS 9, gdzie służyły głównie do przechowywania informacji o aplikacjach w formacie Property List. Z wprowadzeniem iPhone OS w 2007 roku plik ten stał się kluczowym elementem procesu weryfikacji aplikacji w App Store. Od 2010 roku Apple zaleca używanie formatu binarnego .plist, który jest bardziej efektywny pod względem rozmiaru i prędkości odczytu.
Tworzenie i edycja
W Xcode plik Info.plist jest domyślnie generowany przy tworzeniu nowego projektu. Programiści mogą go edytować ręcznie w edytorze tekstu lub używać wbudowanego edytora Property List, który prezentuje dane w formie tabelarycznej. Istnieją także narzędzia wiersza poleceń, takie jak plutil, umożliwiające konwersję między formatami XML i binary.
Zastosowanie w praktyce
Plik Info.plist wpływa na wiele aspektów działania aplikacji:
- Określenie minimalnej wersji systemu (
MinimumOSVersion). - Definicja orientacji ekranu (
UIInterfaceOrientation). - Włączenie funkcji takich jak obsługa multitouch, Bluetooth Low Energy czy ARKit poprzez odpowiednie klucze.
- Rejestrowanie obsługi języków i lokalizacji (
CFBundleLocalizations).
Bezpieczeństwo i prywatność
Od iOS 7 Apple wprowadziło obowiązek podawania szczegółowych opisów uprawnień w Info.plist. Brak wymaganych kluczy może skutkować odrzuceniem aplikacji w procesie recenzji lub wyświetleniem komunikatu ostrzegawczego użytkownikowi.
Porównanie z innymi formatami
Podobnie jak pliki .json czy .yaml, .plist służą do przechowywania struktur danych. Ich główną zaletą w ekosystemie Apple jest natywna obsługa przez klasy NSDictionary i NSArray w językach Objective‑C oraz Swift. Dzięki temu programiści mogą w prosty sposób odczytywać i modyfikować zawartość plików Info.plist bez konieczności dodatkowych bibliotek.
Przykładowe scenariusze
- Dodanie obsługi trybu ciemnego w iOS 13 wymaga wpisu
UIUserInterfaceStylew Info.plist. - Wdrażanie funkcji Apple Pay polega na dodaniu klucza
ApplePaySupportedNetworksoraz opisów uprawnień. - Ustawienie aplikacji jako Universal (działającej na iPhone i iPad) wymaga zdefiniowania listy obsługiwanych rozdzielczości ekranu w
UIDeviceFamily.