Xcode iOS 内购功能
时间: 2025-02-04 13:00:39 浏览: 28
实现iOS应用内购功能指南
准备工作
为了顺利集成内购功能,开发者需先确认拥有了有效的 Apple 开发者账号,并确保应用程序具备唯一的 Bundle Identifier。此外,在 Xcode 的项目设置里,通过 Signing & Capabilities
菜单项激活 In-App Purchase 功能[^2]。
创建并配置 App ID 和权限
前往 Apple Developer Portal 下的 Certificates, Identifiers & Profiles 页面,新增一个带有 In-App Purchase 权限的 App ID。这一步骤对于后续操作至关重要,因为只有启用了该服务的应用才能支持内购交易。
设置 App Store Connect 上的信息
登录至 App Store Connect 后,依据实际需求挑选合适的内购种类——消耗型、非消耗型或是订阅制等不同形式的产品。每种类型的特性决定了其适用场景以及用户的消费体验方式[^3]。
编写代码以处理 IAP 请求
下面是一个简单的 Swift 例子来展示如何发起一次购买请求:
import StoreKit
class IAPManager: NSObject {
static let shared = IAPManager()
private var productsRequest: SKProductsRequest?
private var productIdentifiers = Set<String>()
func fetchAvailableProducts() {
if !productIdentifiers.isEmpty {
productsRequest = SKProductsRequest(productIdentifiers: productIdentifiers)
productsRequest?.delegate = self
productsRequest?.start()
}
}
}
extension IAPManager: SKProductsRequestDelegate {
func productsRequest(_ request: SKProductsRequest, didReceive response: SKProductsResponse) {
// 处理接收到的商品列表...
for invalidIdentifier in response.invalidProductIdentifiers {
print("Invalid identifier \(invalidIdentifier)")
}
guard let validProducts = response.products.first else { return }
purchase(validProducts)
}
private func purchase(_ product: SKProduct) {
if SKPaymentQueue.canMakePayments() {
let payment = SKPayment(product: product)
SKPaymentQueue.default().add(payment)
} else {
print("User cannot make payments.")
}
}
}
此段代码展示了基本框架下的产品查询流程及支付行为触发逻辑。当用户尝试购买某项商品时,程序会向 iTunes 发送对应的 SKU 或 Product ID 进行验证与扣费操作[^5]。
相关推荐


















