0Pricing
Swift Academy · Pelajaran

Target Biner dan XCFramework

Mendistribusikan kode sumber tertutup sebagai XCFramework dan menggunakannya sebagai target biner.

Target Biner dan XCFramework adalah pelajaran Swift Academy gratis di CoddyKit. Ini adalah pelajaran 3 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Swift Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Swift Academy mencakup 4 pelajaran total.

Apa Itu Target Biner?

Target biner mendistribusikan framework yang telah dikompilasi sebelumnya (XCFramework), bukan kode sumber, sehingga implementasi eksklusif tetap terlindungi.

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

Apa Itu XCFramework?

Sebuah XCFramework menggabungkan beberapa irisan platform (iOS, macOS, simulator) ke dalam satu arsip yang dapat didistribusikan.

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

Membuat XCFramework

Buat arsip untuk setiap platform, lalu gabungkan dengan 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

Target Biner Jarak Jauh dengan Suma Pemeriksaan

Rujuk zip XCFramework yang dihosting dari jarak jauh beserta suma pemeriksaan SHA-256 untuk verifikasi integritas.

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

Menghitung Suma Pemeriksaan

Gunakan swift package compute-checksum untuk membuat suma pemeriksaan SHA-256 bagi berkas zip.

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

Menggunakan Target Biner dalam App

Tambahkan target biner sebagai dependensi dalam daftar dependencies milik target lain, sama seperti target sumber.

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

Mengimpor XCFramework

Impor modul dalam kode Swift persis seperti impor lainnya.

import ClosedSDK

let result = ClosedSDK.ProcessData(input: myData)

Persyaratan Manifes Privasi

Apple mewajibkan XCFramework yang didistribusikan melalui App Store menyertakan manifes PrivacyInfo.xcprivacy yang mencantumkan API yang digunakan.

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

Build Debug vs Rilis

Saat menggunakan XCFramework, Anda tidak dapat menelusuri kode sumber langkah demi langkah dalam debugger—Anda hanya melihat simbol. Berkas dSYM dapat disertakan untuk simbolisasi kerusakan.

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

Pemberian Versi pada XCFramework

Gunakan pemberian versi semantik pada nama berkas dan versi paket SPM agar pengguna dapat menetapkan versi yang kompatibel.

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

XCFramework vs Paket Sumber

Gunakan XCFramework untuk kode proprietari, SDK praprakompilasi berukuran besar, atau pembungkus C/C++. Gunakan paket sumber untuk kode Swift sumber terbuka.

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

Pemeriksaan Singkat

Mengapa Anda menyertakan suma pemeriksaan saat mendeklarasikan target biner jarak jauh dalam Package.swift?

Ringkasan Pelajaran

Target biner mendistribusikan XCFramework praprakompilasi tanpa kode sumber. Bangun dengan xcodebuild -create-xcframework, hosting zip-nya, hitung suma pemeriksaannya dengan swift package compute-checksum, lalu deklarasikan dalam Package.swift. Sertakan PrivacyInfo.xcprivacy untuk pengiriman ke App Store.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Target Biner dan XCFramework” gratis?

Ya — teks lengkap “Target Biner dan XCFramework” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Swift Academy, upgrade ke CoddyKit PRO. Kursus Swift Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Target Biner dan XCFramework”?

Mendistribusikan kode sumber tertutup sebagai XCFramework dan menggunakannya sebagai target biner. Kamu berlatih Swift Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Swift Academy?

Tidak diperlukan pengalaman sebelumnya. Swift Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 3 dari 4.

Berapa lama pelajaran “Target Biner dan XCFramework” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Swift Academy ini?

Ya. Setiap pelajaran Swift Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Package.swift: Target, Produk, dan Dependensi
  2. Package Lokal dan Modul Fitur
  3. Target Biner dan XCFramework
  4. Pemberian Versi, Penyelesaian Konflik, dan Plugin Swift
← Kembali ke Swift Academy