ข้ามไปยังเนื้อหา

เริ่มต้นอย่างรวดเร็วบน iOS

ในอีกไม่กี่นาที แอป iOS ของคุณจะอ่าน feature flag ของจริง — พร้อมแคช fallback แบบออฟไลน์ และตัวตนของอุปกรณ์ที่จัดการให้คุณ

ต้องใช้ iOS 17, macOS 14 หรือ visionOS 1 SDK ไม่มี dependency ของตัวเอง

SDK อยู่ในรีโพซิทอรีสาธารณะบน GitHub — เพิ่มมันจากตรงนั้นได้เลยเป็น Swift Package ใน Xcode (File → Add Package Dependencies…) หรือใน Package.swift

.package(url: "https://github.com/FortressFlag/FortressFlag_SDK_ios.git", from: "1.0.0")

ครั้งเดียว ตอนเปิดแอป — สำหรับ SwiftUI init ของ App คือที่ที่เป็นธรรมชาติที่สุด

import FortressFlag
FortressFlag.start(
Configuration(
sdkKey: "ffc_prod_…", // จากหน้าจอคีย์ SDK ของโปรเจกต์คุณ
environment: .production,
keychainAccessGroup: "com.acme.fortressflag" // สตริงเดียวกันในทุกแอปที่คุณปล่อย
)
)

start คืนค่าทันทีที่ค่าในแคชถูกโหลด และ SDK จะ poll หาการเปลี่ยนแปลงในเบื้องหลังนับจากนั้น คีย์นี้คือคีย์ไคลเอนต์ — มันฝังไปในแอปของคุณโดยการออกแบบ

ที่ไหนก็ได้ รวมถึงใน body ของ SwiftUI

if FortressFlag.isEnabled("new-checkout") {
NewCheckoutView()
} else {
LegacyCheckoutView()
}

Flag แบบสตริงและตัวเลขอ่านแบบเดียวกัน — FortressFlag.stringValue("checkout-cta", default: "buy-now") — และคุณเฝ้าดูการเปลี่ยนแปลงได้ด้วย FortressFlag.onChange

แค่นั้น — flag ของคุณใช้งานจริงแล้ว สลับมันในแดชบอร์ด แล้วแอปจะตามไปในการ poll ครั้งถัดไป

ไม่มีการเรียกใดใน API นี้ที่ throw บล็อก หรือทำให้แอปของคุณแครชได้ ทุกการอ่าน resolve ผ่านลำดับขั้น — ค่าล่าสุดที่ได้รับ แล้วแคชที่ทนทานจากการรันครั้งก่อน แล้วค่าเริ่มต้น ณ จุดเรียกของคุณ — เหตุขัดข้อง เครือข่ายที่ตาย หรือคีย์ที่ถูกเพิกถอนจึงไม่มีวันไปถึงผู้ใช้ของคุณ

FortressFlag คิดเงินตามอุปกรณ์ ไม่ใช่ตามแอป โทรศัพท์หนึ่งเครื่องที่รันแอปของคุณสามตัวคือหนึ่งที่นั่ง — แต่เฉพาะเมื่อทั้งสามตกลงใช้ตัวตนอุปกรณ์เดียวกัน ซึ่งบน iOS หมายถึง keychain access group ที่ใช้ร่วมกัน

  1. ในแต่ละ app target Signing & Capabilities → + Capability → Keychain Sharing
  2. เพิ่มกลุ่มเดียวกันให้ทุกแอปของคุณ — เช่น com.acme.fortressflag
  3. ส่งสตริงนั้น (ไม่รวม team prefix) เป็น keychainAccessGroup

ข้ามขั้นนี้ไปทุกอย่างก็ยังทำงาน แต่แต่ละแอปจะเก็บตัวตนของตัวเอง อุปกรณ์หนึ่งเครื่องนับเป็นสามอุปกรณ์ที่คิดเงินได้ SDK จะ log คำเตือนครั้งหนึ่งเมื่อสิ่งนั้นกำลังเกิดขึ้น

หมายเหตุแพลตฟอร์มหนึ่งข้อ ตัวตนอยู่ใน keychain ดังนั้นบน iOS มัน อยู่รอดเมื่อถอนการติดตั้งแอป — และมันไม่เคยซิงก์ไป iCloud จึงไม่มีวันติดไปกับข้อมูลสำรองลงอุปกรณ์เครื่องที่สอง

แพ็กเกจมาพร้อมไลบรารีที่สอง FortressFlagDebugUI ที่มี FlagListView — หน้าจอ SwiftUI ที่แสดง flag ทุกตัวที่อุปกรณ์นี้ถืออยู่ ค่าของมัน และมันมาจากไหน แบบสด มันคือคำตอบที่เร็วที่สุดสำหรับ “SDK คุยกับเซิร์ฟเวอร์อยู่หรือเปล่า”