Binaarikohteet ja XCFrameworkit
Suljetun lähdekoodin jakaminen XCFrameworkina ja käyttäminen binaarikohteena.
Binaarikohteet ja XCFrameworkit on ilmainen Swift Academy-oppitunti CoddyKitissä. Tämä on oppitunti 3/4. Voit lukea tästä oppimispolusta kokonaan mitkä tahansa 3 oppituntia ilmaiseksi — sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä käytännön harjoittelun sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Oppitunti kuuluu Swift Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Swift Academy-kurssilla on yhteensä 4 oppituntia.
Mikä on binäärikohde?
Binäärikohde jakelee lähdekoodin sijaan valmiiksi käännetyn frameworkin (XCFramework), mikä suojaa omistusoikeudellisia toteutuksia.
// Package.swift:
.binaryTarget(
name: "ClosedSDK",
path: "Frameworks/ClosedSDK.xcframework"
)Mikä on XCFramework?
XCFramework kokoaa useita alustakohtaisia osia (iOS, macOS, simulaattori) yhdeksi jaeltavaksi arkistoksi.
// XCFramework structure:
// ClosedSDK.xcframework/
// ├── ios-arm64/
// ├── ios-arm64_x86_64-simulator/
// └── macos-arm64_x86_64/XCFrameworkin luominen
Koontakaa kullekin alustalle oma arkistonsa ja yhdistäkää ne komennolla 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.xcframeworkEtäbinäärikohde tarkistussummalla
Viitatkaa etäpalvelimella ylläpidettyyn XCFramework-zip-tiedostoon ja ilmoittakaa sen SHA-256-tarkistussumma eheyden varmistamista varten.
.binaryTarget(
name: "ClosedSDK",
url: "https://cdn.example.com/ClosedSDK-1.0.0.xcframework.zip",
checksum: "abc123def456..."
)Tarkistussumman laskeminen
Luokaa zip-tiedoston SHA-256-tarkistussumma komennolla swift package compute-checksum.
swift package compute-checksum ClosedSDK-1.0.0.xcframework.zip
# Outputs: abc123def456...Binäärikohteiden käyttäminen sovelluksessa
Lisätkää binäärikohde toisen kohteen riippuvuudeksi sen dependencies-luetteloon aivan kuten lähdekoodikohde.
.target(
name: "MyApp",
dependencies: [
.target(name: "ClosedSDK")
]
)XCFrameworkin tuominen
Tuokaa moduuli Swift-koodiin aivan kuten mikä tahansa muukin moduuli.
import ClosedSDK
let result = ClosedSDK.ProcessData(input: myData)Tietosuojamanifestin vaatimukset
Apple edellyttää, että App Storessa jaeltavat XCFrameworkit sisältävät PrivacyInfo.xcprivacy-manifestin, jossa luetellaan käytetyt ohjelmointirajapinnat.
// ClosedSDK.xcframework/
// ├── ios-arm64/ClosedSDK.framework/
// │ └── PrivacyInfo.xcprivacy
// └── ...Debug- ja Release-koontiversiot
Kun käytätte XCFrameworkia, ette voi siirtyä debuggerissa lähdekoodin läpi – näette vain symbolit. dSYM-tiedostot voidaan sisällyttää kaatumisten symbolien selvitystä varten.
// Distribute dSYMs alongside XCFramework for crash reporting:
// ClosedSDK-1.0.0.xcframework.zip
// ClosedSDK-1.0.0.dSYM.zipXCFrameworkien versiointi
Käyttäkää tiedostonimessä semanttista versiointia ja SPM-paketin versiota, jotta käyttäjät voivat lukita käyttöönsä yhteensopivat versiot.
// ClosedSDK-1.2.0.xcframework.zip
// In Package.swift:
// .package(url: "...", from: "1.2.0")XCFrameworkien ja lähdekoodipakettien vertailu
Käyttäkää XCFrameworkia omisteiselle koodille, suurille esikäännetyille SDK:ille tai C/C++-kääreille. Käyttäkää lähdekoodipaketteja avoimen lähdekoodin Swift-koodille.
// XCFramework: proprietary analytics SDK, vendor-provided libraries
// Source: open-source Alamofire, SwiftUI componentsPikatarkistus
Miksi etäbinäärikohteen määritykseen Package.swift-tiedostossa sisällytetään tarkistussumma?
Oppitunnin yhteenveto
Binäärikohteilla jaellaan esikäännettyjä XCFramework-kehyksiä ilman lähdekoodia. Kootkaa kehys komennolla xcodebuild -create-xcframework, isännöikää zip-tiedostoa, laskekaa sen tarkistussumma komennolla swift package compute-checksum ja ilmoittakaa se Package.swift-tiedostossa. Sisällyttäkää App Store -julkaisua varten PrivacyInfo.xcprivacy.
Opi Swift tekoälytuutorin avulla — ilmaiseksi
Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.
- Kurssit
- 122
- Oppitunnit
- 409
Usein kysytyt kysymykset
Onko oppitunti ”Binaarikohteet ja XCFrameworkit” ilmainen?
Kyllä — voit lukea täällä verkossa kokonaan ilmaiseksi mitkä tahansa Swift Academy-oppimispolun 3 oppituntia, myös oppitunnin “Binaarikohteet ja XCFrameworkit”. Sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä interaktiiviset harjoitukset sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Swift Academy-kurssilla on yhteensä 4 oppituntia.
Mitä opin oppitunnilla ”Binaarikohteet ja XCFrameworkit”?
Suljetun lähdekoodin jakaminen XCFrameworkina ja käyttäminen binaarikohteena. Harjoittelet Swift Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni Swift Academy-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin Swift Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 3/4.
Kuinka kauan ”Binaarikohteet ja XCFrameworkit”-oppitunnin suorittaminen kestää?
Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.
Voinko kirjoittaa ja suorittaa koodia tällä Swift Academy-oppitunnilla?
Kyllä. Jokainen Swift Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.
Kaikki tämän kurssin oppitunnit
- Package.swift: kohteet, tuotteet ja riippuvuudet
- Paikalliset paketit ja ominaisuusmoduulit
- Binaarikohteet ja XCFrameworkit
- Versiointi, ristiriitojen ratkaiseminen ja Swift-laajennukset