0Pricing
Swift Academy · บทเรียน

เป้าหมายไบนารีและ XCFrameworks

แจกจ่ายโค้ดปิดแหล่งที่มาเป็น XCFramework และใช้งานเป็นเป้าหมายไบนารี

เป้าหมายไบนารีและ XCFrameworks เป็นบทเรียน Swift Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Swift Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Swift Academy มีบทเรียนทั้งหมด 4 บทเรียน

เป้าหมายไบนารีคืออะไร

เป้าหมายไบนารีจะแจกจ่ายกรอบงานที่คอมไพล์ไว้ล่วงหน้าแทนโค้ดต้นฉบับ เพื่อปกป้องการนำไปใช้งานที่เป็นกรรมสิทธิ์

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

กรอบงานไบนารีแบบรวมคืออะไร

XCFramework จะรวมส่วนของแพลตฟอร์มหลายรูปแบบ (iOS, macOS และเครื่องจำลอง) ไว้ในไฟล์เก็บถาวรเดียวสำหรับแจกจ่าย

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

การสร้าง XCFramework

สร้างไฟล์เก็บถาวรสำหรับแต่ละแพลตฟอร์ม แล้วรวมเข้าด้วยกันด้วย 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

เป้าหมายไบนารีระยะไกลพร้อมค่าตรวจสอบ

อ้างอิงไฟล์ zip ของ XCFramework ที่โฮสต์ไว้ระยะไกล พร้อมค่า SHA-256 สำหรับตรวจสอบความถูกต้อง

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

การคำนวณค่าตรวจสอบ

ใช้ swift package compute-checksum เพื่อสร้างค่า SHA-256 สำหรับไฟล์ zip

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

การใช้เป้าหมายไบนารีในแอป

เพิ่มเป้าหมายไบนารีเป็นการพึ่งพาในรายการ dependencies ของเป้าหมายอื่น เช่นเดียวกับเป้าหมายที่ใช้โค้ดต้นฉบับ

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

การนำเข้า XCFramework

นำเข้าโมดูลในโค้ด Swift เช่นเดียวกับการนำเข้าอื่น ๆ

import ClosedSDK

let result = ClosedSDK.ProcessData(input: myData)

ข้อกำหนดของแมนนิเฟสต์ความเป็นส่วนตัว

Apple กำหนดให้ XCFramework ที่แจกจ่ายบน App Store ต้องมีแมนนิเฟสต์ PrivacyInfo.xcprivacy ซึ่งแสดงรายการ API ที่ใช้งาน

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

รุ่นดีบักเทียบกับรุ่นเผยแพร่

เมื่อใช้งาน XCFramework คุณจะไม่สามารถเลื่อนดูโค้ดต้นฉบับทีละบรรทัดในเครื่องมือดีบักได้ แต่จะเห็นเฉพาะสัญลักษณ์เท่านั้น คุณสามารถรวมไฟล์ dSYM เพื่อแปลงสัญลักษณ์จากข้อขัดข้องได้

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

การกำหนดเวอร์ชันของ XCFramework

ใช้การกำหนดเวอร์ชันตามความหมายในชื่อไฟล์และเวอร์ชันแพ็กเกจ SPM เพื่อให้ผู้ใช้สามารถตรึงเวอร์ชันที่เข้ากันได้

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

XCFramework เทียบกับแพ็กเกจโค้ดต้นฉบับ

ใช้ XCFramework สำหรับโค้ดกรรมสิทธิ์ SDK ที่คอมไพล์ไว้ล่วงหน้าขนาดใหญ่ หรือโค้ดห่อหุ้ม C/C++ และใช้แพ็กเกจโค้ดต้นฉบับสำหรับโค้ด Swift แบบโอเพนซอร์ส

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

ตรวจสอบความเข้าใจ

เหตุใดจึงต้องใส่ค่าตรวจสอบเมื่อประกาศเป้าหมายไบนารีระยะไกลใน Package.swift

ทบทวนบทเรียน

เป้าหมายไบนารีใช้แจกจ่าย XCFramework ที่คอมไพล์ไว้ล่วงหน้าโดยไม่เปิดเผยโค้ดต้นฉบับ สร้างด้วย xcodebuild -create-xcframework โฮสต์ไฟล์ zip คำนวณค่าตรวจสอบด้วย swift package compute-checksum แล้วประกาศใน Package.swift อย่าลืมใส่ PrivacyInfo.xcprivacy เมื่อต้องส่งแอปขึ้น App Store

คำถามที่พบบ่อย

บทเรียน “เป้าหมายไบนารีและ XCFrameworks” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “เป้าหมายไบนารีและ XCFrameworks” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Swift Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Swift Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “เป้าหมายไบนารีและ XCFrameworks”

แจกจ่ายโค้ดปิดแหล่งที่มาเป็น XCFramework และใช้งานเป็นเป้าหมายไบนารี คุณปฏิบัติ Swift Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Swift Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Swift Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน

บทเรียน “เป้าหมายไบนารีและ XCFrameworks” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Swift Academy นี้ได้ไหม

ได้ บทเรียน Swift Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. Package.swift: เป้าหมาย ผลิตภัณฑ์ และการพึ่งพา
  2. แพ็กเกจภายในเครื่องและโมดูลฟีเจอร์
  3. เป้าหมายไบนารีและ XCFrameworks
  4. การกำหนดเวอร์ชัน การแก้ข้อขัดแย้ง และปลั๊กอิน Swift
← กลับไปที่ Swift Academy