这儿每天分享一个 iOS 的新知识,快来重视我吧

前语

在曾经,测验内购不是一件容易的工作,需求开沙盒账号,打各种测验包之类的。

从 Xcode 14 开端,苹果推出了一个 StoreKit 装备文件,能够支撑在 Xcode 中测验 App 内购买项目。还能够在不衔接到 App Store 服务器的状况下购买产品,无需互联网衔接,而且还能测验交易失败等各种边缘状况。

今天就来聊聊这个功用。

创立 StoreKit Configuration

要测验内购产品,需求先在 Xcode 中创立一个 StoreKit Configuration 文件,点击快捷键 Command + N,新建文件,搜索 StoreKit,能够看到一个 StoreKit Configuration File

iOS 怎么加速测验内购功用?

点击下一步,输入名称,如果你的应用在 App Store Connect 上现已创立了一些内购产品,则需求勾选 Sync this file with an app in App Store Connect,勾选后会自动同步已有产品(这种状况形似只能同步,不能编辑),最终点击下一步,完结创立。

iOS 怎么加速测验内购功用?

我本次演示的 Demo 中没有勾选同步选项,创立出这个文件后,点击打开,是一个空页面,点击页面的左下角的加号:

iOS 怎么加速测验内购功用?

这儿能够创立用于售卖的 4 种产品类型:

  • Add Consumable In-App Purchase: 消耗品

  • Add Non-Consumable In-App Purchase: 非消耗品

  • Add Non-Renewing Subscription: 非续订订阅产品

  • Add Renewable Subscription: 可续订订阅产品

比方咱们点击创立一个消耗品,输入产品名称和 ID,点击完结按钮,屏幕上呈现了这个产品的信息,而且能够动态装备产品名、ID、价格、本地化信息等选项:

iOS 怎么加速测验内购功用?

创立其他产品也是相同的操作,这儿就不演示了。

在这个产品的上方还能够看到 Configuration Settings 的选项,点击之后能够看到关于内购的相关装备:

iOS 怎么加速测验内购功用?

这儿能够装备更详细的内容,比方默认的区域、语言,购买选项,以及模仿各种购买过程中的报错信息,能够自己探索一下。

发动 StoreKit 测验

要运用这个装备文件,需求在发动选项中设置,点击运转选项中的项目 -> Edit Scheme...

iOS 怎么加速测验内购功用?

在 Run 一栏中的 StoreKit Configuration 中挑选咱们刚刚创立的装备文件,并点击完结。

iOS 怎么加速测验内购功用?

此刻运转项目,就能在项目中运用这个装备文件了。

代码部分

接下来能够在项目中获取刚刚装备的产品了,由于运用的是本地的装备文件,因而即使在无网的状况下也能正常进行获取和购买。

import StoreKit
class ViewController: UIViewController, SKProductsRequestDelegate {
    override func viewDidLoad() {
        super.viewDidLoad()
        view.backgroundColor = .white
        // 装备恳求
        let req = SKProductsRequest(productIdentifiers: ["ios.product1"])
        req.delegate = self
        // 开端恳求产品
        req.start()
    }
    func productsRequest(_ request: SKProductsRequest, didReceive response: SKProductsResponse) {
        guard let product = response.products.first else {
            return
        }
        // 产品恳求成功,烘托出来
        DispatchQueue.main.async {
            let label = UILabel()
            label.text = "产品ID:(product.productIdentifier)n产品名:(product.localizedTitle)n价格:(product.price)"
            label.numberOfLines = 0
            label.textAlignment = .center
            self.view.addSubview(label)
            label.sizeToFit()
            label.center = self.view.center
        }
    }
}

我这儿仅仅简略的写了获取产品的代码,关于购买的部分,今后专门写一篇给我们介绍。

最终运转代码,就能够成功的在模仿器上看到产品信息了:

iOS 怎么加速测验内购功用?

这儿每天分享一个 iOS 的新知识,快来重视我吧

本文同步自微信大众号 “iOS新知”,每天按时分享一个新知识,这儿仅仅同步,想要及时学到就来重视我吧!