Co to jest format pliku PLIST?
Pliki w formacie .plist to pliki ustawień przechowujące informacje konfiguracyjne i właściwości dla wielu programów w środowisku macOS. Są one również nazywane plikami preferencji. Pliki .plist często przechowują ustawienia użytkownika i dane aplikacji oraz stanowią standardowy element systemu Apple Core Foundation - używanego w systemach macOS, iOS, iPadOS i innych platformach Apple.
Pliki .plist mogą być przechowywane na dwa sposoby - jako tekst lub binarnie. Forma tekstowa wykorzystuje XML, co pozwala zachować uporządkowaną i czytelną dla człowieka treść. Pliki zapisane jako tekst można przeglądać i edytować za pomocą dowolnego edytora tekstu; jednak dedykowane programy, takie jak wbudowany w Xcode edytor Property List, ułatwiają ich edycję. Forma binarna (rozpoznawana po magicznych bajtach bplist00 na początku pliku) jest bardziej kompaktowa i zazwyczaj zapisywana przez sam system operacyjny.
Pliki .plist można łatwo konwertować między formatem tekstowym a binarnym za pomocą wiersza poleceń i polecenia plutil. Polecenia konwersji to:
- format binarny na XML:
plutil -convert xml1 file.plist - format XML na binarny:
plutil -convert binary1 file.plist
Konwencjonalna nazwa głównej listy właściwości aplikacji to Info.plist. Zawsze należy zwracać uwagę, czy nazwy kluczy w plikach .plist używają wielkich liter, ponieważ podczas odczytu przez system rozróżniana jest wielkość liter. Powiązane formaty obejmują .mobileconfig dla profili konfiguracji urządzeń oraz .strings dla danych lokalizacyjnych.
Bezpieczeństwo
RYZYKO: LOWPliki plist to dane, a nie kod wykonywalny, więc same w sobie niczego nie uruchamiają. Realnym ryzykiem jest uszkodzenie konfiguracji, a nie złośliwe oprogramowanie: ręczna edycja preferencji aplikacji lub Info.plist z błędnym typem lub kluczem może uniemożliwić uruchomienie aplikacji lub jej poprawne działanie. Najpierw wykonaj kopię zapasową pliku, a w systemie macOS preferuj polecenie „defaults” zamiast edycji aktywnych plików preferencji (cfprefsd może nadpisać zmiany ręczne). Pliki plist wewnątrz profili konfiguracyjnych (.mobileconfig) mogą zmieniać ustawienia bezpieczeństwa urządzenia, więc instaluj tylko profile z zaufanych źródeł.
Szczegóły formatu
w pigułceProgramy otwierające pliki PLIST
Szczegóły techniczne
specyfikacja| Warianty formatu | Dwa kodowania współdzielą rozszerzenie `.plist`: XML (tekstowy) i binarny (`bplist`) |
| Binarne magiczne bajty | `bplist00` (8 bajtów, ASCII) na offsecie 0; brak w wariancie XML |
| Typ MIME | `application/x-plist` |
| Element główny XML | `<plist version="1.0">` poprzedzony deklaracją `<!DOCTYPE plist ...>` |
| Skalarne typy danych | `string`, `integer`, `real`, `true`/`false` (boolean), `date` (ISO 8601), `data` (surowe bajty) |
| Typy kolekcji | `array` (uporządkowana lista) i `dict` (mapa klucz-wartość); oba obsługują dowolne zagnieżdżanie |
| Struktura formatu binarnego | Tablica obiektów + tablica offsetów + stały 32-bajtowy trailer; trailer zapisuje liczbę obiektów i pozycję tablicy offsetów |
| Kodowanie Base64 | Elementy XML `<data>` kodują binarne bloby jako Base64; format binarny przechowuje surowe bajty bezpośrednio |
| Kodowanie tekstu (forma XML) | UTF-8 (domyślne) lub UTF-16 z BOM; zadeklarowane w instrukcji przetwarzania XML |
| Czułość na wielkość liter kluczy | Nazwy kluczy w słownikach rozróżniają wielkość liter; `CFBundleIdentifier` i `cfbundleidentifier` są traktowane jako odrębne klucze |
| Typowe lokalizacje (macOS) | Pakiety aplikacji (`Info.plist`), preferencje użytkownika (`~/Library/Preferences/`), demony uruchamiania i konfiguracja systemu |
| Narzędzie do konwersji | `plutil` (wbudowane w macOS); waliduje, konwertuje i modyfikuje pliki `.plist` z wiersza poleceń |
| Dziedziczny format ASCII | Istnieje trzecia składnia NeXTSTEP ASCII używająca ograniczników `{` / `(`; macOS potrafi ją przetwarzać, ale rzadko ją dziś generuje |
| Użycie w uprawnieniach | Struktura `.plist` jest ponownie wykorzystywana w plikach `.entitlements`, które deklarują uprawnienia piaskownicy i możliwości podczas podpisywania kodu |
| Wymóg iOS/iPadOS | Każdy pakiet aplikacji iOS i iPadOS wymaga pliku `Info.plist` deklarującego identyfikator pakietu, nazwę wyświetlaną, możliwości urządzenia i ciągi znaków dotyczące prywatności |
| Wydano | NeXTSTEP (late 1980s); current XML/binary forms with Mac OS X 10.0 (2001) |
| Otwarty standard | Tak · bezpłatny (royalty-free) |
| Specyfikacja | developer.apple.com |
Konwersje PLIST
Pytania i odpowiedzi społeczności
pytania użytkownikówBrak pytań - bądź pierwszą osobą, która zapyta o pliki PLIST.