Swift Academy · Oppitunti

Binaarikohteet ja XCFrameworkit

Suljetun lähdekoodin jakaminen XCFrameworkina ja käyttäminen binaarikohteena.

Oppitunti 3/413 vaihetta

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.xcframework

Etä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.zip

XCFrameworkien 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 components

Pikatarkistus

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.

Aloita maksutta

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

  1. Package.swift: kohteet, tuotteet ja riippuvuudet
  2. Paikalliset paketit ja ominaisuusmoduulit
  3. Binaarikohteet ja XCFrameworkit
  4. Versiointi, ristiriitojen ratkaiseminen ja Swift-laajennukset
← Takaisin: Swift Academy