iOS에 대한 인앱 구매 통합을 위한 오픈 소스 SDK입니다. 

30분 이내에 인앱 구매를 구현하세요.

iOS 인앱 구매를 위한 즉시 사용 가능한 백엔드

인앱 구매 통합은 구독 이벤트를 위한 백엔드 인프라와 서버를 구축해야 합니다. 이는 수백 시간의 작업을 소요하고 유지 보수가 어려울 수 있습니다.
import StoreKit
class Store: ObservableObject {
    private var productIDs = ["stone"]
    @Published var products = [Product]()
    init() {
        Task {
            await requestProducts()
        }
    }  
    @MainActor
    func requestProducts() async {
        do {
            products = try await Product.products(for: productIDs)
        } catch {
            print(error)
    }
  }
}
Section(header: Text("To buy")) {
 }
ForEach(store.products, id: .id) {
  product in
    HStack {
      Text(product.displayName)
      Spacer()
      Button("(product.displayPrice)") {
    }
  }
}
@Published var purchasedNonConsumables = [Product]()
@MainActor
func purchase(_ product: Product) async throws -> Transaction ? {
  let result =
    try await product.purchase()
  switch result {
    case .success(.verified(let transaction)):
      purchasedNonConsumables.append(product)
      await transaction.finish()
      return transaction
    default:
      return nil
  }
}
Button("(product.displayPrice)") {
 Task {
  try await store.purchase(product)
  }
}
ProductView(
 icon: "❀",
 quantity: "(store.purchasedNonConsumables.count)"
 )
 func listenForTransactions() -> Task < Void, Error > {
  return Task.detached {
    for await result in Transaction.updates {
      switch result {
        case let.verified(transaction):
          guard
          let product = self.products.first(where: {
            $0.id == transaction.productID
          })
          else {
            continue
          }
          self.purchasedNonConsumables.append(product)
          await transaction.finish()
        default:
          continue
      }
    }
  }
}
var transacitonListener: Task<Void, Error>?
init() {
   transacitonListener = listenForTransactions()
   Task {
     await requestProducts()
 }
}
@MainActor
private func handle(transactionVerification result: VerificationResult <Transaction> ) async {
  switch result {
    case let.verified(transaction):
      guard
      let product = self.products.first(where: {
        $0.id == transaction.productID
      })
      else {
        return
      }
      self.purchasedNonConsumables.insert(product)
      await transaction.finish()
    default:
      return
  }
}
Adapty SDK는 iOS 앱에 인앱 구독을 통합할 수 있게 해주는 기성 인프라로, 모든 구독 이벤트를 처리하고 수익 증가 기능을 제공합니다.
// Your app's code
import Adapty
Adapty.activate("PUBLIC_SDK_KEY")
 
// Make a purchase, Adapty handles the rest
do {
	let purchasedInfo = try await Adapty.makePurchase(product)
	// successful purchase
} catch {
	// handle the error
}
통합에서 유지 관리까지 – Adapty는 IAP 작업을 쉽게 하도록 설계되었습니다.
데모 요청

왜 Adapty SDK를 선택해야 할까요?

언제든지 올바른 구독 상태

모든 플랫폼에서 항상 올바른 구독자의 상태를 유지할 수 있습니다.

서버 측 영수증 검증

구매 검증의 정확성과 안전성에 대해 걱정할 필요가 없습니다.

모든 종류의 구독 상태 처리

무료 체험, 업그레이드, 프로모션 제공, 가족 공유, 갱신 등.

짧은 출시 주기를 가진 기업 준비 완료 플랫폼

>99.99% SLA 신뢰성 및 정기적인 제품 업데이트.
플랫폼 구성
Adapty SDK 설치
Adapty.activate(
   "PUBLIC_SDK_KEY",
   customerUserId: "YOUR_USER_ID"
)
구매 이벤트 처리

빠르고 쉬운 통합

iOS 앱에 Adapty SDK를 통합하는 데 단 몇 시간만 투자하면 나머지는 저희가 처리합니다.

인앱 구매를 구현하기 위한 단 5개의 SDK 메서드

// Your app's code
import Adapty
  
Adapty.activate("PUBLIC_SDK_KEY", customerUserId: "YOUR_USER_ID")
 
 
 
 
 
 
 
// Your app's code
Adapty.getPaywall(placementId: "YOUR_PLACEMENT_ID", locale: "en") { result in
    switch result {
        case let .success(paywall):
            // the requested paywall
        case let .failure(error):
            // handle the error
    }
}
 
 
// Your app's code
Adapty.makePurchase(product: product) { result in
    switch result {
    case let .success(info):
      if info.profile.accessLevels["YOUR_ACCESS_LEVEL"]?.isActive ?? false {
        // successful purchase
      }
    case let .failure(error):
        // handle the error
    }
}
// Your app's code
Adapty.getProfile { result in
    if let profile = try? result.get() {
        // check the access
    }

 
 
 
 
 
// Your app's code
Adapty.restorePurchases { [weak self] result in
    switch result {
        case let .success(profile):
            if info.profile.accessLevels["YOUR_ACCESS_LEVEL"]?.isActive ?? false {
	            // successful access restore
            }
        case let .failure(error):
            // handle the error
    }
}
무료로 시도하기

모든 종류의 비즈니스에서 사람들이 수익을 증대하기 위해 Adapty를 선택합니다.

Adapty로 무엇을 얻을 수 있나요?

Adapty SDK는 앱 수익을 증가시키기 위한 엄청난 가능성을 제공합니다.

귀하의 iOS 앱에 대한 실시간 분석

App Store Connect와 함께 99.5% 정확도로 데이터를 신뢰하세요.
시작하기
App Icon Gravity
Gravity Fit
건강 및 피트니스
“투명하고 고급 분석 대시보드는 추가 도구를 사용하지 않고도 더 빠른 결정을 내릴 수 있도록 도와줍니다. 이는 많은 시간과 돈을 절약하게 해줍니다.”
Ekaterina K,
Gravity Fit의 PM
Accuracy Adapty Appstore
ABC testing

페이월 A/B 테스트

가장 수익성이 높은 페이월을 찾아 앱의 수익을 증가시키세요.
A/B 테스트 탐색
MentalGrowth
MentalGrowth
건강 및 웰빙 앱
“Adapty의 빠른 분석과 쉽게 시작할 수 있는 A/B 테스트 기능 덕분에 가설을 신속하게 검증하고 훌륭한 결과를 얻을 수 있었습니다.”
Vadim Nemchenko,
MentalGrowth의 제품 관리자

페이월에 대한 원격 구성

앱을 다시 출시하지 않고도 원격으로 페이월을 변경하세요.
지금 시도하기
Smitten
Smitten - 데이팅
라이프스타일
“우리의 성장 및 수익 팀은 다양한 시장에서 페이월, 제품 제공 및 가격대 테스트를 신속하게 구현하고 관리할 수 있습니다.”
Kyle Smith,
Smitten 데이팅의 데이터 책임자
Table Json Table Locale

사용성 및 고객 서비스로 신뢰를 받고 있습니다

500개 이상의 리뷰 기준
G2 Award: Leader (EMEA), winter 2025
G2 Award: Leader (EMEA), winter 2025
G2 Award: Leader (EMEA), winter 2025
G2 Award: Leader (EMEA), winter 2025
G2 Award: Leader (EMEA), winter 2025