ios - 自 iOS 13.4 起不再显示购买对话框

标签 ios objective-c in-app-purchase objective-c++ skpaymenttransaction

从 iOS 13.4 开始,应用程序内购买的对话框在以下行时不显示...

[[SKPaymentQueue defaultQueue] addPayment:payment]; 

……被处决。

在 iOS 13.4 之前,用户确认购买时会弹出一个对话框,但现在什么都没有。
有谁知道可能导致此问题的原因?

笔记:
  • 这是一款基于 libSDL 和 gles 3.0 的全屏游戏。
  • 虽然 99% 的代码库是 C++,但应用程序内购买是用 Objective C++ 进行的
  • 它在 iOS 13.4 之前运行
  • 最佳答案

    尝试完全“刷新”队列一次:

        - (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions { 
            for (SKPaymentTransaction *transaction in transactions) {
    
            //debug - finish all transactions to make queue empty  
            [[SKPaymentQueue defaultQueue] finishTransaction:transaction]; 
    /*
                switch (transaction.transactionState) {
                    case SKPaymentTransactionStatePurchased:
                         //your code 
                         [[SKPaymentQueue defaultQueue] finishTransaction:transaction];
                         break;
    
                    case SKPaymentTransactionStateFailed:
                        //your code 
                        [[SKPaymentQueue defaultQueue] finishTransaction:transaction];
                        break;
                }
    */
            }
        }
    

    然后用您的代码替换它并尝试购买。

    关于ios - 自 iOS 13.4 起不再显示购买对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60907798/

    相关文章:

    iphone - 如何去除字符串中的空格?

    ios - 由于在应用程序内购买,导致App Store Flutter应用程序被拒绝

    iOS应用内购买: Managing auto-renewing subscriptions

    ios - accessoryButtonTappedForRowWithIndexPath 不适用于自定义按钮或标签

    ios - 单元格如何为 UITableView 删除

    ios - Facebook iOS SDK 4.1.0 分享回调

    objective-c - 用于更改 View 的按钮的代码(使用 TabBarController)

    ios - 在一个公共(public) View Controller 中显示另一个 View Controller ,如滑动菜单

    android - 从第二次 "In app purchase"在 Android 中抛出异常

    ios - Facebook FBWebDialogs 参数一次邀请多个 friend