iOS (Swift) SDK
Deplite Swift SDK는 iOS·macOS·tvOS·watchOS·visionOS와 서버사이드 Swift에서 Deplite를 호출하거나, 내 앱을 Deplite의 작업 노드로 만드는 공식 SDK예요.
설치
Swift Package Manager
// Package.swift
dependencies: [
.package(url: "https://github.com/Deplite/sdk-ios.git", from: "0.1.0"),
],
targets: [
.target(name: "App", dependencies: [
.product(name: "Deplite", package: "sdk-ios"),
]),
]Xcode에서는 File → Add Package Dependencies… 메뉴로 동일한 URL을 추가해주세요.
최소 플랫폼은 iOS 15 · macOS 12 · tvOS 15 · watchOS 8 · visionOS 1 이상이에요.
모든 API는 async throws라 Swift Concurrency 컨텍스트에서 호출해주세요.
어떤 모드로 시작할까
| 모드 | 언제 쓰나 | 시작 |
|---|---|---|
| External | 내 앱·서버·CI가 Deplite를 호출 | API 토큰 발급 → Deplite(apiToken:) |
| Embedded | 내 앱·기기가 Deplite의 작업 노드 | 1회용 설치 코드 → Deplite.enroll(...) |
두 모드의 자세한 비교는 인증 모드를 참고해주세요.
External — Deplite 호출하기
import Deplite
let deplite = Deplite(apiToken: ProcessInfo.processInfo.environment["DEPLITE_API_TOKEN"]!)
let job = try await deplite.triggers.run(
triggerId: triggerId,
params: ["ref": "main"]
)
let uploaded = try await deplite.files.upload(
fileURL: URL(fileURLWithPath: "/tmp/build.ipa")
)토큰은 발급 직후 1회만 노출되므로 별도의 저장 처리가 필요해요.
Embedded — 내 앱이 작업 노드 되기
대시보드에서 1회용 설치 코드를 발급한 뒤, 첫 실행에서 enroll → 결과를 안전 저장소에 보관 → 이후 실행에서는 그 자격으로 Agent 부팅이에요.
// 1) 1회만 — enroll 후 결과를 영구 저장
let enrollment = try await Deplite.enroll(
installCode: installCode,
name: "kiosk-seoul-01"
)
try secureStore.save(enrollment) // identity + privateKey
// 2) 매 실행마다 — 저장된 자격으로 부팅
let stored = try secureStore.load()
let agent = try DepliteAgent(
identity: stored.identity,
privateKey: stored.privateKey
)
for try await ev in agent.events() {
if case .deploy(let payload, _) = ev {
try await runJob(payload)
try await agent.jobs.reportResult(jobId: payload.jobId, result: .success())
}
}enroll()이 반환하는 privateKey(raw 32바이트)는 SDK가 저장하지 않으므로 암호화 후 저장하는 것을 추천드려요.
분실하면 재등록만이 답이에요.
관련 문서
최종 수정 일자: