StoreFrontKit 1.0.0

StoreFrontKit 1.0.0

Afraz Sidddiqui 维护。



  • 作者
  • AfrazCodes

StoreFrontKit

StoreFrontKit Logo

StoreFrontKit Examples

简介

Apple 的 StoreKit 框架提供了简洁的 API,用于与 App Store 交云进行内购,但遗漏了向用户提供显示内购界面组件的部分。这是因为在大多数情况下,每个应用程序看起来和感受都不同。

但是,很多时候,我们都发现自己反复编写一个“店面”类型的组件。该界面包含有关我们正在销售的产品、订阅或服务的相关信息。此外,它还向用户提供了一个购买、恢复或订阅的召唤行动。

StoreFrontKit 是一个完全托管且轻量级的框架,用于解决此问题。该框架实现以下功能

  • 完全托管的 App Store 产品获取和缓存
  • 交易管理和购买恢复
  • 单个商品 Store Front
  • 多个商品 Store Front
  • 免费试用订阅 Store Front 升级
  • 订阅组 Store Front

安装

CocoaPods

在您的 Podfile 中包含以下行

pod 'StoreFrontKit'

手册

您可以下载或克隆此仓库,并直接使用源代码。

使用方法

使用 StoreFrontKit 有 2 个步骤

应用启动时配置

首先,您需要在应用中配置 StoreFrontKit,以管理您希望在该应用中管理的内购产品标识符。要求是在使用 storefront UIs 之前完成此操作。建议您在您的 App Delegate 中执行此操作,如下所示。

@main
class AppDelegate: UIResponder, UIApplicationDelegate {
    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
        // Set Up Store Front
        SFKManager.shared.configure(
            with: StoreFrontKitConfiguration(
                products: [
                    .nonConsumable(
                        productID: "com.example.item", viewModel: nil
                    ),
                    .subscription(
                        productID: "com.example.subscription", viewModel: nil
                    ),
                ]
            )
        )
        return true
    }
}

显示商店

创建商店与创建并推送视图控制器一样简单。

let vc = SFKNonConsumableViewController(
    with: .nonConsumable(
        productID: Products.removeAds.rawValue,
        viewModel: StoreFrontProductViewModel(
            icon: UIImage(systemName: "x.square"),
            iconTintColor: .systemPink
        )
    )
) { result in
    switch result {
    case .success: break
    case .failure: break
    }
}
vc.title = "Remove Ads"
vc.navigationItem.largeTitleDisplayMode = .always
self?.navigationController?.pushViewController(vc, animated: true)

在上面的示例中,我们创建了一个单个项目(非消耗性)商店视图控制器并推送它。您还会注意到它需要回调完成块。此块传达了成功的内购交易。

更多信息

查看此仓库中包含的示例应用程序目标。

参与贡献

对这个框架的贡献不仅受到欢迎,更是受到鼓励!请随意提交拉取请求或问题报告,以提出功能请求和错误修复。建议您遵循以下几点规则:

  • 构建通用的组件,不仅仅针对您个人使用
  • 遵循清晰架构原则
  • 编写可测试的代码及其相关测试

版权

在MIT许可证下发行