RestoreCompletedTransactions() 没有调用 paymentQueue UpdatedTransactions?

2024-07-04

我在 Swift 4/iOS 11 中恢复 IAP 时遇到问题。我的AppDelegate实施SKPaymentTransactionObserver. In AppDelegate's didFinishLaunchingWithOptions我正在打电话SKPaymentQueue.default().add(self)。我实施paymentQueue(_ queue: SKPaymentQueue, updatedTransactions transactions: [SKPaymentTransaction])AppDelegate 中也有这个函数。

From a ViewController我可以这样购买:

let payment = SKPayment(product: products.first!)
SKPaymentQueue.default().add(payment)

购买成功完成 - 我收到updatedTransaction与状态.purchased in my paymentQueue观察者。

但是,当我从同一个调用以下内容时ViewController为了恢复购买:

SKPaymentQueue.default().restoreCompletedTransactions()

the paymentQueue updatedTransactions函数永远不会被调用。

看来我的沙箱用户等设置正确,因为初始购买正在运行。沙盒用户有能力恢复购买吗?除了打电话之外我还需要做任何额外的工作吗restoreCompletedTransactions()恢复购买?


更新一下,这是我的paymentQueue updatedTransactions存在于的代码AppDelegate:

func paymentQueue(_ queue: SKPaymentQueue, updatedTransactions transactions: [SKPaymentTransaction]) {
    for transaction in transactions{
        switch transaction.transactionState{
        case .purchased:
            debugPrint("purchased it!")
            menuDelegate?.unlockMenu()
            //unlock the content, then
            SKPaymentQueue.default().finishTransaction(transaction)
            break
        case .failed:
            debugPrint("failed")
            SKPaymentQueue.default().finishTransaction(transaction)
            break
        case .restored:
            debugPrint("restored")
            menuDelegate?.unlockMenu()
            //unlock the content, then
            SKPaymentQueue.default().finishTransaction(transaction)
            break
        case .purchasing:
            debugPrint("purchasing...")
            break
        case .deferred:
            debugPrint("deferred...")
            break
        }
    }
}

None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

RestoreCompletedTransactions() 没有调用 paymentQueue UpdatedTransactions? 的相关文章

  • i识别人的扫描图像中的眼睛

    我想开发一个 iPhone 应用程序 它应该识别 QR 阅读器扫描的图像中人的眼睛 脸部和肤色 如何在图像中检测眼睛 虽然这可能是可能的 但我只是警告您 无论编程如何 它都会有一定程度的不准确性 任何面部 视网膜检测软件都可能被欺骗 并且考
  • 在 UIPageViewController 中,当“pageViewController:viewControllerBeforeViewController”被调用时?

    我尝试在中显示照片UIPageViewController 首先 我在集合视图中显示我的照片 然后点击一张照片进入页面视图 然而 当我在页面视图中时 如果我滚动当前照片 向右或向左 我发现两者pageViewController viewC
  • 实例化新视图控制器时从内存中删除视图控制器

    在我的应用程序中 我实例化新的视图控制器而不是使用 Segues 因为它在动画中看起来更好 因此我的视图继续在后台运行 这会导致大量内存泄漏 我返回主屏幕的代码是 let mainStoryboard UIStoryboard name M
  • 如何在 Swift 中将数据转换为双精度型、整数型和字符串型等类型?

    我正在努力在 iOS Swift 中为 shapefile 一种 GIS 格式 与这个问题不是特别相关 构建一个自定义文件打开器 这些文件有一个 100 字节长的标头 我可以将其读入 4 字节数组 其中存储我想要的信息 我可以将这些数组转换
  • sqlite+fmdbvacuum命令后内存泄漏(?)

    我通过 FMDB 包装器在我的应用程序中使用 sqlite 在调用 VACUUM 之前 我的应用程序中的内存使用量为 2 25 MB myFmdb executeUpdate VACUUM 后记是 5 8 MB 我似乎无法回收内存 真空后
  • iOS 9 中的触觉

    您可以在 iPhone 6s 上使用 iOS 9 中的 Taptic 引擎吗 WatchOS2 和 OS X 能够使用触觉引擎 所以我认为 iOS 9 中也会有 但我找不到任何 API 是的 我对内部进行了逆向工程UIKit我发现了另一种
  • 表格视图单元格作为按钮

    我正在尝试将已分组的表视图单元格设置为按钮 但我似乎无法在 XCode 4 2 的界面生成器中或以编程方式找到执行此操作的位置 我尝试将表视图单元格链接到 IBAction 但它只允许我创建或链接到 IBOutlet 作为临时修复 我在单元
  • iOS 8 选项卡栏项目背景颜色

    上周我一直在努力寻找解决方案 但在尝试了我能找到或想到的所有可能的解决方案后 我没有运气 我发现并尝试过的每个解决方案要么不起作用 要么已经过时 我有 5 个UITabBarItem s in a UITabBar放置在UITabBarCo
  • 导航栏标题视图对齐

    我希望我的导航栏在中间显示两件事 其中之一是列表名称 另一个是用户名称 用户名将放置在列表名称下 到目前为止我所做的是 我以编程方式创建了两个标签和一个超级视图 并设置titleView of navigationItem override
  • 应用程序删除后的iOS应用程序持久设置

    我们正在创建一个应用程序 如下所示 用户从 2 个免费 代币 开始 用户可以通过应用内购买 0 99 美元购买一包 10 个代币 我们已经实现了这个使用NSUserDefaults保存令牌数量 有没有办法让我们的免费 2 令牌设置持久化 即
  • PHAsset(或 ALAsset)跨设备标识符

    我实际上正在创建一个 iOS 应用程序 并且想要在 SQLite 数据库中存储有关照片库图片的一些详细信息 我还希望能够在用户拥有的不同设备上共享这些数据 想象一下有人想要在他的 iPhone 上重新组织图片 并想要在他的 iPad 上检索
  • 如何在 Swift 中观察多个节点中 Firebase 子值的变化?

    我的 Firebase 数据库中有一个 用户 节点 其中的每个用户都有一个 root 及其 uid 每个用户的属性之一是 坐标 我想观察所有用户的任何坐标的任何变化 我几乎需要这样的东西 usersDatabaseReference chi
  • 不要在 iOS 上显示蜂窝数据警告

    如果用户决定不允许应用程序在每次尝试打开应用程序时访问蜂窝数据 则会显示一条警告 告诉他们蜂窝数据已关闭 SDK中有没有办法停止显示此消息或控制其显示的时间 位置 如果您在权限被撤销的情况下尝试访问互联网 系统将显示此消息 为了防止它出现
  • Google 登录显示不正确的项目名称 - iOS

    我一直在集成 Google 登录 以便使用 Google Calendar API 同步日历事件 当我尝试登录时 我收到了这个消息 正如您所看到的 项目 应用程序的名称显示为 project xxxxxxxxx 而不是项目名称本身 如何在这
  • “无法连接到 iTunes Store”

    昨晚 应用内购买没有在 iOS7 模拟器设备上显示 但今天我什至没有更改代码 我也开始在 iOS 8 设备上遇到相同的错误 这是我的课 class InAppC UITableViewController SKProductsRequest
  • 更改 NSSplitViewController 内的视图

    我正在尝试将我的 Objective C 和现在正在提高的 Swift 知识迁移到 Mac OS X 的应用程序 学习曲线陡峭 我正在尝试加载一个NSSplitViewController如果您愿意的话 根据 主视图 上按下的按钮 详细视图
  • 为什么 UIPickerView 是半透明的

    Why UIPickerView 100不是不透明的吗 当我将文本颜色设置为白色并将 UIPickerView 放在红色背景上时 UIPickerView 项目有一个红白色文字颜色 我尝试使用自定义视图viewForRow 但还是没有效果
  • 删除 iOS 中的后台位置警报?

    我正在编写一个跟踪用户位置的导航应用程序 为了继续显示有关路线的通知 当手机锁定 接听电话等时 我还需要在应用程序处于后台时继续跟踪位置 Capabilities gt Background Modes gt Location update
  • iOS 7 AVPlayer AVPlayerItem 持续时间在 iOS 7 中不正确

    我的应用程序中有以下代码 NSURL url NSURL fileURLWithPath self DocDir stringByAppendingPathComponent self FileName isDirectory NO sel
  • 界面生成器中 UIView 的边框颜色不起作用?

    我正在尝试通过 IB 设置视图的图层属性 除了边框的颜色之外 一切正常 属性layer borderColor 我记得一年前遇到过这个问题 最终我以编程方式解决了这个问题 而且 我仍然可以以编程方式执行此操作 但我很好奇为什么layer b

随机推荐