首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >为测试用户清除iOS应用内购买沙箱中的购买

为测试用户清除iOS应用内购买沙箱中的购买
EN

Stack Overflow用户
提问于 2011-10-13 06:45:06
回答 8查看 49.5K关注 0票数 131

有谁有关于如何重置和/或清除iOS应用内购买沙箱的想法吗?

我有一个正在用沙箱测试的应用程序,我想测试新购买的东西,而不必在每次购买东西时创建一个新的测试用户。

如果我不这样做,那么当我点击我的应用程序的购买按钮时,我(当然)总是会得到一条消息,表明应用程序中的购买项目已经被购买了。

EN

回答 8

Stack Overflow用户

发布于 2011-10-13 06:47:12

据我所知,你不能这么做。沙箱后端的工作方式就像一个真实的帐户--一旦购买,它就会被购买(因此您可以测试恢复)。你应该在你的大部分开发中使用商店的东西,然后当你真正测试它时,只需要创建几个测试账户即可。

票数 34
EN

Stack Overflow用户

发布于 2013-04-12 17:56:15

我有2个在应用程序购买项目。1用于生产。另一个用于测试。当我需要“清除”时,我会删除应用程序中的条目并创建一个新条目(在itunes连接中需要15秒,在代码中需要1秒来更改产品id )

如果我不需要测试"new user",我会使用应用程序中的production项。

票数 11
EN

Stack Overflow用户

发布于 2013-11-21 10:09:32

从技术上讲你不需要这个。

如果你得到SKPaymentTransactionStateRestored,它100%等同于应用商店验证用户并允许他购买。我有一个开关,像这样:

- (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions
{
  for( SKPaymentTransaction *purch in transactions )
  {
    switch( purch.transactionState )
    {
      case SKPaymentTransactionStateRestored:
        info( "PURCHASE RESTORE" ) ;
        // fall thru
      case SKPaymentTransactionStatePurchased:
        [[SKPaymentQueue defaultQueue] finishTransaction:purch];
        // Do regular changes to app state for this purchase,
        // register in keychain, etc.
        break ;

       //.. other cases
     }
  }
}

让你的应用程序逻辑/收回购买的问题很简单:如果你在keychain中缓存购买,删除你的keychain。如果你使用其他方式,只要改变你的本地应用状态,假装用户从未购买过它。request to purchase对话框仍然是完全相同的,唯一的区别是当你输入YES时,它会给你SKPaymentTransactionStateRestored而不是SKPaymentTransactionStatePurchased

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7747457

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档