0Pricing
Swift Academy · Lektion

Binärziele und XCFrameworks

Verteilen Sie Closed-Source-Code als XCFramework und verwenden Sie ihn als Binärziel.

Binärziele und XCFrameworks ist eine kostenlose Swift Academy-Lektion auf CoddyKit. Dies ist Lektion 3 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Swift Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Swift Academy-Kurs umfasst insgesamt 4 Lektionen.

Was ist ein Binary-Target?

Ein Binary-Target verteilt ein vorkompiliertes Framework (XCFramework) statt Quellcode und schützt dadurch proprietäre Implementierungen.

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

Was ist ein XCFramework?

Ein XCFramework bündelt mehrere Plattform-Slices (iOS, macOS, Simulator) in einem einzigen verteilbaren Archiv.

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

Ein XCFramework erstellen

Erstellen Sie Archive für jede Plattform und kombinieren Sie sie mit 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

Remote-Binary-Target mit Prüfsumme

Verweisen Sie auf eine remote gehostete XCFramework-ZIP-Datei und geben Sie deren SHA-256-Prüfsumme zur Integritätsprüfung an.

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

Die Prüfsumme berechnen

Verwenden Sie swift package compute-checksum, um die SHA-256-Prüfsumme der ZIP-Datei zu generieren.

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

Binary-Targets in einer App verwenden

Fügen Sie das Binary-Target wie ein Source-Target als Abhängigkeit zur Liste dependencies eines anderen Targets hinzu.

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

Das XCFramework importieren

Importieren Sie das Modul in Swift-Code genau wie jeden anderen Import.

import ClosedSDK

let result = ClosedSDK.ProcessData(input: myData)

Anforderungen an das Privacy-Manifest

Apple verlangt, dass XCFrameworks, die im App Store verteilt werden, ein PrivacyInfo.xcprivacy-Manifest mit einer Auflistung der verwendeten APIs enthalten.

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

Debug- und Release-Builds

Wenn Sie ein XCFramework verwenden, können Sie im Debugger nicht schrittweise durch den Quellcode gehen – Sie sehen nur Symbole. dSYM-Dateien können für die Symbolication von Abstürzen gebündelt werden.

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

XCFrameworks versionieren

Verwenden Sie semantische Versionierung im Dateinamen und in der SPM-Paketversion, damit Nutzer kompatible Versionen festlegen können.

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

XCFrameworks und Source-Pakete im Vergleich

Verwenden Sie XCFrameworks für proprietären Code, große vorkompilierte SDKs oder C/C++-Wrapper. Verwenden Sie Source-Pakete für Open-Source-Swift-Code.

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

Kurze Prüfung

Warum geben Sie beim Deklarieren eines Remote-Binary-Targets in Package.swift eine Prüfsumme an?

Zusammenfassung der Lektion

Binary-Targets verteilen vorkompilierte XCFrameworks ohne Quellcode. Erstellen Sie sie mit xcodebuild -create-xcframework, hosten Sie die ZIP-Datei, berechnen Sie ihre Prüfsumme mit swift package compute-checksum und deklarieren Sie sie in Package.swift. Fügen Sie für die Einreichung im App Store eine PrivacyInfo.xcprivacy hinzu.

Häufig gestellte Fragen

Ist die Lektion „Binärziele und XCFrameworks“ kostenlos?

Ja — der vollständige Text von „Binärziele und XCFrameworks“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Swift Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Swift Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Binärziele und XCFrameworks“?

Verteilen Sie Closed-Source-Code als XCFramework und verwenden Sie ihn als Binärziel. Du übst Swift Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Swift Academy zu starten?

Keine Vorkenntnisse erforderlich. Swift Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 3 von 4.

Wie lange dauert die Lektion „Binärziele und XCFrameworks“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Swift Academy-Lektion Code schreiben und ausführen?

Ja. Jede Swift Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Package.swift: Targets, Produkte und Abhängigkeiten
  2. Lokale Pakete und Feature-Module
  3. Binärziele und XCFrameworks
  4. Versionierung, Konfliktauflösung und Swift-Plugins
← Zurück zu Swift Academy