เริ่มต้นอย่างรวดเร็วบน iOS
ในอีกไม่กี่นาที แอป iOS ของคุณจะอ่าน feature flag ของจริง — พร้อมแคช fallback แบบออฟไลน์ และตัวตนของอุปกรณ์ที่จัดการให้คุณ
ต้องใช้ iOS 17, macOS 14 หรือ visionOS 1 SDK ไม่มี dependency ของตัวเอง
1. ติดตั้ง
หัวข้อที่มีชื่อว่า “1. ติดตั้ง”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")2. เริ่ม SDK
หัวข้อที่มีชื่อว่า “2. เริ่ม SDK”ครั้งเดียว ตอนเปิดแอป — สำหรับ SwiftUI init ของ App คือที่ที่เป็นธรรมชาติที่สุด
import FortressFlag
FortressFlag.start( Configuration( sdkKey: "ffc_prod_…", // จากหน้าจอคีย์ SDK ของโปรเจกต์คุณ environment: .production, keychainAccessGroup: "com.acme.fortressflag" // สตริงเดียวกันในทุกแอปที่คุณปล่อย ))start คืนค่าทันทีที่ค่าในแคชถูกโหลด และ SDK จะ poll หาการเปลี่ยนแปลงในเบื้องหลังนับจากนั้น คีย์นี้คือคีย์ไคลเอนต์ — มันฝังไปในแอปของคุณโดยการออกแบบ
3. อ่าน flag
หัวข้อที่มีชื่อว่า “3. อ่าน flag”ที่ไหนก็ได้ รวมถึงใน body ของ SwiftUI
if FortressFlag.isEnabled("new-checkout") { NewCheckoutView()} else { LegacyCheckoutView()}Flag แบบสตริงและตัวเลขอ่านแบบเดียวกัน — FortressFlag.stringValue("checkout-cta", default: "buy-now") — และคุณเฝ้าดูการเปลี่ยนแปลงได้ด้วย FortressFlag.onChange
แค่นั้น — flag ของคุณใช้งานจริงแล้ว สลับมันในแดชบอร์ด แล้วแอปจะตามไปในการ poll ครั้งถัดไป
ถ้า FortressFlag ล่ม แอปของคุณไม่ล่ม
หัวข้อที่มีชื่อว่า “ถ้า FortressFlag ล่ม แอปของคุณไม่ล่ม”ไม่มีการเรียกใดใน API นี้ที่ throw บล็อก หรือทำให้แอปของคุณแครชได้ ทุกการอ่าน resolve ผ่านลำดับขั้น — ค่าล่าสุดที่ได้รับ แล้วแคชที่ทนทานจากการรันครั้งก่อน แล้วค่าเริ่มต้น ณ จุดเรียกของคุณ — เหตุขัดข้อง เครือข่ายที่ตาย หรือคีย์ที่ถูกเพิกถอนจึงไม่มีวันไปถึงผู้ใช้ของคุณ
ตั้งค่า keychain sharing — ไม่ทำแล้วเสียเงิน
หัวข้อที่มีชื่อว่า “ตั้งค่า keychain sharing — ไม่ทำแล้วเสียเงิน”FortressFlag คิดเงินตามอุปกรณ์ ไม่ใช่ตามแอป โทรศัพท์หนึ่งเครื่องที่รันแอปของคุณสามตัวคือหนึ่งที่นั่ง — แต่เฉพาะเมื่อทั้งสามตกลงใช้ตัวตนอุปกรณ์เดียวกัน ซึ่งบน iOS หมายถึง keychain access group ที่ใช้ร่วมกัน
- ในแต่ละ app target Signing & Capabilities → + Capability → Keychain Sharing
- เพิ่มกลุ่มเดียวกันให้ทุกแอปของคุณ — เช่น
com.acme.fortressflag - ส่งสตริงนั้น (ไม่รวม team prefix) เป็น
keychainAccessGroup
ข้ามขั้นนี้ไปทุกอย่างก็ยังทำงาน แต่แต่ละแอปจะเก็บตัวตนของตัวเอง อุปกรณ์หนึ่งเครื่องนับเป็นสามอุปกรณ์ที่คิดเงินได้ SDK จะ log คำเตือนครั้งหนึ่งเมื่อสิ่งนั้นกำลังเกิดขึ้น
หมายเหตุแพลตฟอร์มหนึ่งข้อ ตัวตนอยู่ใน keychain ดังนั้นบน iOS มัน อยู่รอดเมื่อถอนการติดตั้งแอป — และมันไม่เคยซิงก์ไป iCloud จึงไม่มีวันติดไปกับข้อมูลสำรองลงอุปกรณ์เครื่องที่สอง
ดีบักการผสานรวม
หัวข้อที่มีชื่อว่า “ดีบักการผสานรวม”แพ็กเกจมาพร้อมไลบรารีที่สอง FortressFlagDebugUI ที่มี FlagListView — หน้าจอ SwiftUI ที่แสดง flag ทุกตัวที่อุปกรณ์นี้ถืออยู่ ค่าของมัน และมันมาจากไหน แบบสด มันคือคำตอบที่เร็วที่สุดสำหรับ “SDK คุยกับเซิร์ฟเวอร์อยู่หรือเปล่า”
ไปต่อที่ไหนดี
หัวข้อที่มีชื่อว่า “ไปต่อที่ไหนดี”- Flag ไปถึงแอปของคุณอย่างไร — การ poll ในเบื้องหลังนั้นทำอะไร
- ตัวตนของอุปกรณ์และการเรียกเก็บเงิน — ตัวตนที่คุณเพิ่งตั้งค่า
- ตั้งค่า rollout ตามเปอร์เซ็นต์ — ปล่อยให้ 10% ก่อน