1

我对编码和收入猫有点陌生。我只是想确保在从沙盒过渡到生产之前这将起作用,因为无法在沙盒中对其进行测试。

Purchases.shared.restoreTransactions { (purchaserInfo, error) in

        let originalPurchaseDate = purchaserInfo?.originalPurchaseDate

        let formatter = DateFormatter()
        formatter.dateFormat = "yyyy/MM/dd HH:mm"
        let switchOverDate = formatter.date(from: "2020/06/29 00:00")

        if originalPurchaseDate! < switchOverDate! {
            // unlock all content
        }
}

当我切换到订阅时,这会让我成为我的老用户(他们为我的应用付费)吗?

谢谢!

4

1 回答 1

1

您实际上需要在此处查看原始应用程序版本。这在 RevenueCat iOS SDK 上可用,并且将是CFBundleVersion用户下载的原始应用程序版本。

Purchases.shared.restoreTransactions { (purchaserInfo, error) in
    
    // Make sure there weren't any errors...
    
    if let originalApplicationVersion = purchaserInfo?.originalApplicationVersion {
        if originalApplicationVersion < "your_build_number_string" {
            // Legacy user! Unlock content
        }
    }
    
    // Check if user restored another purchase...
}

重要的:

请记住 CFBundleVersion 是内部版本号,而不是应用程序版本。还:

在沙盒环境中,该字段的值始终为“1.0”。

来源: https ://developer.apple.com/library/archive/releasenotes/General/ValidateAppStoreReceipt/Chapters/ReceiptFields.html

于 2020-07-02T14:34:21.717 回答