Anatomin i macOS AAB-arkiv 1

Anatomin i macOS AAB-arkiv

Vad finns i en macOS-app, och vad gör den? macOS-appar ser ut som monolitiska filer, men de är mer som mappar med snygga ikoner som kallas buntar. Öppna dessa paket så hittar du en mängd filer som krävs av programmet. Vad gör allt detta? En förståelse för dessa paket är användbar för utvecklare, administratörer, spelmoddare, Hackintosh-byggare, användare som är intresserade av säkerhet och alla som felsöker en app.

Vad är macOS App Bundles?

Som definieras av Apple, är ett paket ”en katalog med en standardiserad hierarkisk struktur som innehåller körbar kod och resurserna som används av den koden.” Med ett annat namn, det är en applikation. Det finns en specifik struktur och format som utvecklare måste följa för att säkerställa att deras app körs korrekt. Bryt mot dessa konventioner och du kommer sannolikt att bryta mot din app. Om något inte fungerar riktigt som det ska kan ett applikationspaket vara en användbar plats för felsökning.

Appar är inte den enda typen av paket. Bunter används också för filer med filtillägg som .framework, .bunt, .plugin och .kext. Buntar visas som enhetliga objekt i Finder tills du kliver in i dem genom att öppna paketets paket.

Öppna applikationspaket

Till skillnad från kataloger kräver applikationspaket en kort dans för att öppnas.

1. Högerklicka på programmets ikon i ”/Applications/.”

2. Klicka på ”Visa paketinnehåll” i snabbmenyn.

3. Dubbelklicka på mappen ”Innehåll” för att gå in i appens primära katalog.

Grundläggande macOS App Bundle Anatomy

I paketets ”Innehåll”-mapp hittar du ett antal filer. Alla macOS-appar måste minst innehålla följande filer:

  • Info.plist: innehåller obligatoriska konfigurationsdetaljer tillsammans med programidentifieringssträngar.
  • MacOS/körbar: koden som körs när användaren startar appen som finns i mappen ”MacOS”. Utan en körbar fil har du inte mycket av ett paket.
Macos App Bundle Anatomy-app i Finder 2x

Du kommer sannolikt också att hitta en mängd ytterligare filer i några vanliga mappar:

  • Plugins: tilläggsliknande minikörbara filer som utökar funktionaliteten hos den körbara kärnan. Till skillnad från statiska resurser lägger plugins dynamiskt till funktionalitet till applikationen.
  • Resurser: stödfiler som din applikation förlitar sig på. Denna mapp innehåller, men är inte begränsad till, bilder, ikoner, ljud, typsnitt, nib-filer, lokaliseringar och datalager. Till skillnad från plugins stöder dessa resurser kärnfunktionaliteten i den körbara filen.
  • Ramar: Precis som plugins är ramverk på hög nivå som krävs av din app egna paket. Men de använder en hierarkiskt annorlunda struktur.
  • Kodsignatur: en strukturerad plist-fil som används för att tillhandahålla kodsignatur för varje del av applikationen. Dessa signaturer låter appen och macOS verifiera applikationens integritet och förhindra appkapningsattacker.

iOS app-paket använda samma grundläggande struktur och filformat, även om de ofta visas i en annan hierarki.

Info.plist

Macos App Bundles Info Plist Xcode

Info.plist är den primära sammanfattningen av din applikations grundläggande demografi. Detta inkluderar din paketidentifierare, som måste vara unik från alla andra paketidentifierare. För att förenkla denna process rekommenderar Apple omvänd domännotation, som ”com.apple.siri.launcher” eller ”org.videolan.vlc.” För att lära dig mer om Info.plist, kolla in Apples lista över nycklar och fundera över vad varje nyckel gör.

Den här filen innehåller också grundläggande appinformation som appikon, appnamn, versionsnummer, upphovsrättsdata, länkar för felrapportering och standardspråk. Enligt konventioner och systemregler är ”I” i ”Info” alltid versaler.

Körbar

Det är här den primära koden för din applikation bor. När programmet öppnas kommer macOS att köra koden som finns i den körbara filen som finns i paketets ”MacOS”-katalog. Nästan varje applikation kommer bara att ha en enda körbar fil, även om två eller fler kan användas för körbara hjälpfiler. Den här filen är vanligtvis ointressant för alla utom utvecklaren av programvaran eftersom den inte enkelt kan ses eller redigeras av användaren.

Resurser och ytterligare supportfiler

Allt som är väsentligt för din ansökan bör inkluderas i dess paket. Om det inte är en del av själva körbara filen bör den hamna i en av resursmapparna i paketet. Dessa resurser kan lagras i den primära mappen ”Resurser” eller delas upp i olika mappar.

  • När du är osäker hamnar de flesta resurser i mappen ”Resurser”.
  • Frameworks hamnar i mappen ”Frameworks”.
  • Plugins hamnar i mappen ”Plugins”.
  • Lokaliseringsfiler (.lproj-kataloger) hamnar i mappen Resurser.

Utöver dessa krav tillhandahåller Apple många förslag och konventioner som bör följas om du inte har en försvarbar anledning att göra något annat.

Slutsats

macOS-program finns i paket, som är hierarkiska behållare för programfiler. Grundstrukturen är densamma för varje applikation. De filer som är mest intressanta för användaren finns i mappen Resurser i appens paket.

Stöd vårt arbete ❤️

Om du gillade den här artikeln, överväg att lämna dricks för att hjälpa oss fortsätta publicera bra innehåll.

Säker betalning med PayPal
Moyens I/O Staff har motiverat dig och gett dig råd om teknik, personlig utveckling, livsstil och strategier som hjälper dig.