İkili Hedefler ve XCFramework'ler
Kapalı kaynak kodunu XCFramework olarak dağıtın ve ikili hedef olarak kullanın.
İkili Hedefler ve XCFramework'ler, CoddyKit'te ücretsiz bir Swift Academy dersidir. Bu, 4 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Swift Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Swift Academy kursu toplamda 4 dersten oluşur.
İkili Hedef Nedir?
İkili hedef, kaynak kodu yerine önceden derlenmiş bir çerçeve (XCFramework) dağıtır ve özel mülk gerçeklemeleri korur.
// Package.swift:
.binaryTarget(
name: "ClosedSDK",
path: "Frameworks/ClosedSDK.xcframework"
)XCFramework Nedir?
Bir XCFramework, birden fazla platform dilimini (iOS, macOS, simülatör) dağıtılabilir tek bir arşivde birleştirir.
// XCFramework structure:
// ClosedSDK.xcframework/
// ├── ios-arm64/
// ├── ios-arm64_x86_64-simulator/
// └── macos-arm64_x86_64/XCFramework Oluşturma
Her platform için arşivler oluşturun ve bunları xcodebuild -create-xcframework ile birleştirin.
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.xcframeworkSağlama Toplamalı Uzak İkili Hedef
Bütünlük doğrulaması için uzakta barındırılan bir XCFramework zip dosyasına SHA-256 sağlama toplamıyla başvurun.
.binaryTarget(
name: "ClosedSDK",
url: "https://cdn.example.com/ClosedSDK-1.0.0.xcframework.zip",
checksum: "abc123def456..."
)Sağlama Toplamını Hesaplama
Zip dosyası için SHA-256 sağlama toplamını oluşturmak üzere swift package compute-checksum komutunu kullanın.
swift package compute-checksum ClosedSDK-1.0.0.xcframework.zip
# Outputs: abc123def456...Uygulamada İkili Hedefleri Kullanma
İkili hedefi, tıpkı bir kaynak hedefte olduğu gibi başka bir hedefin dependencies listesine bağımlılık olarak ekleyin.
.target(
name: "MyApp",
dependencies: [
.target(name: "ClosedSDK")
]
)XCFramework'ü İçe Aktarma
Modülü, diğer tüm içe aktarmalarla aynı şekilde Swift koduna aktarın.
import ClosedSDK
let result = ClosedSDK.ProcessData(input: myData)Gizlilik Bildirimi Gereksinimleri
Apple, App Store'da dağıtılan XCFramework'lerin kullanılan API'leri listeleyen bir PrivacyInfo.xcprivacy bildirimi içermesini zorunlu tutar.
// ClosedSDK.xcframework/
// ├── ios-arm64/ClosedSDK.framework/
// │ └── PrivacyInfo.xcprivacy
// └── ...Hata Ayıklama ve Sürüm Derlemeleri
Bir XCFramework kullanırken hata ayıklayıcıda kaynak kodunu adım adım izleyemezsiniz; yalnızca sembolleri görürsünüz. Çökme sembollerinin çözümlenebilmesi için dSYM dosyaları pakete eklenebilir.
// Distribute dSYMs alongside XCFramework for crash reporting:
// ClosedSDK-1.0.0.xcframework.zip
// ClosedSDK-1.0.0.dSYM.zipXCFramework'leri Sürümleme
Kullanıcıların uyumlu sürümleri sabitleyebilmesi için dosya adında ve SPM paket sürümünde semantik sürümleme kullanın.
// ClosedSDK-1.2.0.xcframework.zip
// In Package.swift:
// .package(url: "...", from: "1.2.0")XCFramework ve Kaynak Paketleri
Özel kod, büyük önceden derlenmiş SDK'lar veya C/C++ sarmalayıcıları için XCFramework kullanın. Açık kaynaklı Swift kodu için kaynak paketlerini tercih edin.
// XCFramework: proprietary analytics SDK, vendor-provided libraries
// Source: open-source Alamofire, SwiftUI componentsKısa Kontrol
Package.swift dosyasında uzak bir ikili hedef tanımlarken neden bir sağlama toplamı eklersiniz?
Ders Özeti
İkili hedefler, kaynak kodu olmadan önceden derlenmiş XCFramework'leri dağıtır. xcodebuild -create-xcframework ile derleyin, zip dosyasını barındırın, sağlama toplamını swift package compute-checksum ile hesaplayın ve hedefi Package.swift dosyasında tanımlayın. App Store'a gönderim için bir PrivacyInfo.xcprivacy ekleyin.
Sıkça Sorulan Sorular
“İkili Hedefler ve XCFramework'ler” dersi ücretsiz mi?
Evet — “İkili Hedefler ve XCFramework'ler” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Swift Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Swift Academy kursu toplamda 4 dersten oluşur.
“İkili Hedefler ve XCFramework'ler” dersinde ne öğreneceğim?
Kapalı kaynak kodunu XCFramework olarak dağıtın ve ikili hedef olarak kullanın. Swift Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
Swift Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Swift Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 3. dersidir.
“İkili Hedefler ve XCFramework'ler” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu Swift Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Swift Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Package.swift: Hedefler, Ürünler ve Bağımlılıklar
- Yerel Paketler ve Özellik Modülleri
- İkili Hedefler ve XCFramework'ler
- Sürümleme, Çakışmaları Çözme ve Swift Eklentileri