macOS Bundles
Temel Bilgiler
macOS'taki paketler, uygulamaları, kütüphaneleri ve diğer gerekli dosyaları içeren bir dizi kaynağı barındıran konteynerler olarak hizmet eder, bu da onları Finder'da tek bir nesne olarak görünmesini sağlar, örneğin tanıdık *.app
dosyaları. En sık karşılaşılan paket .app
paketidir, ancak .framework
, .systemextension
ve .kext
gibi diğer türler de yaygındır.
Bir Paketin Temel Bileşenleri
Bir paket içinde, özellikle <uygulama>.app/Contents/
dizini içinde, çeşitli önemli kaynaklar bulunmaktadır:
_CodeSignature: Bu dizin, uygulamanın bütünlüğünü doğrulamak için hayati öneme sahip olan kod imzalama ayrıntılarını depolar. Kod imzalama bilgilerini şu komutlarla inceleyebilirsiniz: %%%bash openssl dgst -binary -sha1 /Applications/Safari.app/Contents/Resources/Assets.car | openssl base64 %%%
MacOS: Kullanıcı etkileşimiyle çalışan uygulamanın yürütülebilir ikili dosyasını içerir.
Resources: Uygulamanın kullanıcı arayüzü bileşenlerini içeren bir depo, resimler, belgeler ve arayüz açıklamaları (nib/xib dosyaları) gibi.
Info.plist: Uygulamanın ana yapılandırma dosyası olarak hareket eder, uygulamanın uygun şekilde tanınmasını ve etkileşimde bulunmasını sağlamak için önemlidir.
Info.plist'teki Önemli Anahtarlar
Info.plist
dosyası, uygulama yapılandırması için bir köşe taşıdır ve şu gibi anahtarlar içerir:
CFBundleExecutable:
Contents/MacOS
dizininde bulunan ana yürütülebilir dosyanın adını belirtir.CFBundleIdentifier: Uygulama için genel bir tanımlayıcı sağlar, macOS tarafından uygulama yönetimi için yoğun bir şekilde kullanılır.
LSMinimumSystemVersion: Uygulamanın çalışması için gereken macOS'in minimum sürümünü belirtir.
Paketleri Keşfetme
Safari.app
gibi bir paketin içeriğini keşfetmek için şu komut kullanılabilir: bash ls -lR /Applications/Safari.app/Contents
Bu keşif, _CodeSignature
, MacOS
, Resources
gibi dizinleri ve Info.plist
gibi dosyaları ortaya çıkarır, her biri uygulamayı güvence altına almak ve kullanıcı arayüzünü ve işletme parametrelerini tanımlamak için benzersiz bir amaçtan hizmet eder.
Ek Paket Dizinleri
Ortak dizinlerin ötesinde, paketler ayrıca şunları içerebilir:
Frameworks: Uygulama tarafından kullanılan paketlenmiş çerçeveleri içerir. Çerçeveler, ek kaynaklara sahip dylib'ler gibidir.
PlugIns: Uygulamanın yeteneklerini artıran eklentiler ve uzantılar için bir dizin.
XPCServices: Uygulamanın dış işlem iletişimi için kullandığı XPC hizmetlerini barındırır.
Bu yapı, tüm gerekli bileşenlerin paket içinde kapsanmasını sağlayarak modüler ve güvenli bir uygulama ortamını kolaylaştırır.
Info.plist
anahtarları ve anlamları hakkında daha detaylı bilgi için Apple geliştirici belgeleri kapsamlı kaynaklar sunar: Apple Info.plist Anahtar Referansı.
Last updated