Swift Academy · Lektion

Binære targets og XCFrameworks

Distribuér lukket kildekode som en XCFramework, og brug den som et binært target.

Lektion 3 af 413 trin

Binære targets og XCFrameworks er en gratis Swift Academy-lektion på CoddyKit. Dette er lektion 3 af 4. Du kan læse alle 3 lektioner i dette læringsspor gratis i deres fulde længde — derefter låser CoddyKit PRO alle lektioner op samt praktiske øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Den er en del af læringsforløbet i Swift Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Swift Academy-kurset indeholder 4 lektioner i alt.

Hvad er et binært mål?

Et binært mål distribuerer et prækompileret rammeværk (XCFramework) i stedet for kildekode og beskytter proprietære implementeringer.

// Package.swift:
.binaryTarget(
  name: "ClosedSDK",
  path: "Frameworks/ClosedSDK.xcframework"
)

Hvad er et XCFramework?

Et XCFramework samler flere platformsvarianter (iOS, macOS, simulator) i ét arkiv, der kan distribueres.

// XCFramework structure:
// ClosedSDK.xcframework/
// ├── ios-arm64/
// ├── ios-arm64_x86_64-simulator/
// └── macos-arm64_x86_64/

Oprettelse af et XCFramework

Byg arkiver for hver platform, og kombinér dem med xcodebuild -create-xcframework.

xcodebuild archive -scheme MySDK -destination "generic/platform=iOS" -archivePath ios.xcarchive SKIP_INSTALL=NO
xcodebuild archive -scheme MySDK -destination "generic/platform=iOS Simulator" -archivePath sim.xcarchive SKIP_INSTALL=NO
xcodebuild -create-xcframework \
  -framework ios.xcarchive/Products/Library/Frameworks/MySDK.framework \
  -framework sim.xcarchive/Products/Library/Frameworks/MySDK.framework \
  -output MySDK.xcframework

Fjernt binært mål med kontrolsum

Referér til en fjernhostet XCFramework-zipfil med dens SHA-256-kontrolsum for at verificere integriteten.

.binaryTarget(
  name: "ClosedSDK",
  url: "https://cdn.example.com/ClosedSDK-1.0.0.xcframework.zip",
  checksum: "abc123def456..."
)

Beregning af kontrolsummen

Brug swift package compute-checksum til at generere SHA-256-kontrolsummen for zipfilen.

swift package compute-checksum ClosedSDK-1.0.0.xcframework.zip
# Outputs: abc123def456...

Brug af binære mål i en app

Tilføj det binære mål som en afhængighed i et andet måls liste over dependencies, ligesom et kildemål.

.target(
  name: "MyApp",
  dependencies: [
    .target(name: "ClosedSDK")
  ]
)

Import af XCFramework

Importér modulet i Swift-kode præcis som enhver anden import.

import ClosedSDK

let result = ClosedSDK.ProcessData(input: myData)

Krav til privatlivsmanifest

Apple kræver, at XCFrameworks, der distribueres i App Store, indeholder et PrivacyInfo.xcprivacy-manifest med en liste over de anvendte API'er.

// ClosedSDK.xcframework/
// ├── ios-arm64/ClosedSDK.framework/
// │   └── PrivacyInfo.xcprivacy
// └── ...

Debug- og Release-kompileringer

Når du bruger et XCFramework, kan du ikke gennemgå kildekoden trin for trin i fejlsøgeren — du kan kun se symboler. dSYM-filer kan inkluderes til symbolisering af nedbrud.

// Distribute dSYMs alongside XCFramework for crash reporting:
// ClosedSDK-1.0.0.xcframework.zip
// ClosedSDK-1.0.0.dSYM.zip

Versionsstyring af XCFrameworks

Brug semantisk versionsstyring i filnavnet og SPM-pakkeversionen, så brugere kan fastlåse kompatible versioner.

// ClosedSDK-1.2.0.xcframework.zip
// In Package.swift:
// .package(url: "...", from: "1.2.0")

XCFramework eller kildekodepakker

Brug XCFramework til proprietær kode, store prækompilerede SDK'er eller C/C++-indpakninger. Brug kildekodepakker til open source-Swift-kode.

// XCFramework: proprietary analytics SDK, vendor-provided libraries
// Source: open-source Alamofire, SwiftUI components

Hurtigt tjek

Hvorfor inkluderer du en kontrolsum, når du erklærer et fjernbaseret binært mål i Package.swift?

Opsummering af lektionen

Binære mål distribuerer prækompilerede XCFrameworks uden kildekode. Byg med xcodebuild -create-xcframework, placér zipfilen på en server, beregn dens kontrolsum med swift package compute-checksum, og deklarér den i Package.swift. Inkludér et PrivacyInfo.xcprivacy-manifest ved indsendelse til App Store.

Gratis at komme i gang

Lær Swift med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
122
Lektioner
409

Ofte stillede spørgsmål

Er lektionen “Binære targets og XCFrameworks” gratis?

Ja — alle 3 lektioner i læringssporet Swift Academy, inklusive “Binære targets og XCFrameworks”, kan læses gratis i deres fulde længde her på webstedet. Derefter låser CoddyKit PRO alle lektioner op samt interaktive øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Swift Academy-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “Binære targets og XCFrameworks”?

Distribuér lukket kildekode som en XCFramework, og brug den som et binært target. Du øver dig i Swift Academy med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på Swift Academy?

Der kræves ingen tidligere erfaring. Swift Academy på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 3 af 4.

Hvor lang tid tager lektionen “Binære targets og XCFrameworks”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne Swift Academy-lektion?

Ja. Alle Swift Academy-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. Package.swift: targets, produkter og afhængigheder
  2. Lokale packages og feature-moduler
  3. Binære targets og XCFrameworks
  4. Versionsstyring, konfliktløsning og Swift-plugins
← Tilbage til Swift Academy