Skip to Content
문서SDKiOS (Swift)개요·Quickstart

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가 저장하지 않으므로 암호화 후 저장하는 것을 추천드려요.
분실하면 재등록만이 답이에요.

관련 문서

최종 수정 일자: