【问题标题】:Issue observing the same alert-view during in-app purchase在应用内购买期间观察相同的警报视图问题
【发布时间】:2012-08-16 08:39:40
【问题描述】:

我有一个速度计应用程序,其中 2 个功能通过将它们添加到应用程序内购买来启用。一切正常,我关注了http://www.raywenderlich.com/2797/introduction-to-in-app-purchases

要启用的两个功能都是非消耗性的。问题是,当我对此进行测试并添加测试帐户和密码时,我一直收到相同的警报视图 - “您已经购买了这个但尚未下载。点击 OK 立即下载”

[环境:沙盒]

为什么我总是看到相同的警报视图?该功能只是启用HUD功能并删除广告;所以没有什么可以从服务器下载。而且我无法确定交易是否完成,因为它甚至没有调用完成交易方法,只是给出了相同的警报。

【问题讨论】:

    标签: ios in-app-purchase inappsettings


    【解决方案1】:

    我浏览了本教程并观察了这个警报视图。我认为这不是任何问题,因为您可能已经在应用商店设置了一个测试帐户。如果您已经购买了此商品,Apple 商店会通知您,如果您已经运行了您的应用程序并多次测试了购买功能,您可能会这样做。这实际上是苹果商店完成的部分,所以你对此无能为力。

    在此警报之后,您应该会收到交易已完成的通知。确保您已添加此方法:

     [[SKPaymentQueue defaultQueue] addTransactionObserver:[InAppRageIAPHelper sharedHelper]];
    

    在您的应用委托的 didFinishLaunchingWithOptions 方法中

    【讨论】:

    • 谢谢@tiguero,所以你的意思是我走上了正轨,这不是问题吗?是的,我从开始测试我的应用内购买开始就使用一个测试帐户,所以我尝试使用另一个我之前使用的同一设备中的测试帐户仍然给我相同的警报。是因为它已经在该设备中完成了吗?我应该如何启用应用内购买的此功能?如果我想在用户单击购买按钮时启用 HUD在我的设置中启用HUD??
    • 问你是因为我在加载产品时我的两个标识符都没有购买..我正在谈论这个 for (NSString * productIdentifier in _productIdentifiers) { BOOL productPurchased = [[NSUserDefaults standardUserDefaults] boolForKey:productIdentifier ]; if (productPurchased) { [purchasedProducts addObject:productIdentifier]; NSLog(@"之前购买的:%@", productIdentifier); } NSLog(@"未购买:%@", productIdentifier); } self.purchasedProducts = 购买的产品;
    • 你能指定你想在应用内购买中启用什么样的内容吗?总之,它只是应用内内容。请确保您已阅读官方文档以了解它:developer.apple.com/library/ios/#documentation/…
    • 有两个功能 1)启用 HUD(车速表的镜像)和 2)删除广告 所以基本上用户可以通过购买应用程序来启用这两个功能/特性。所以当你说我检查了购买的物品,但每次它给我的标识符是删除广告作为购买的物品......并启用HUD作为未购买的物品......当我尝试购买/测试启用HUD时,它会给我相同的警报视图它是购买的[环境:沙盒]
    • 我也只是想你可以在这里重置沙盒应用内购买:stackoverflow.com/questions/7604578/…
    【解决方案2】:

    在购买商品时使用不同的产品 ID:

    -(void)buyCoinPack_1
    {
              SKProductsRequest *request = [[SKProductsRequest alloc] initWithProductIdentifiers:[NSSet setWithObject:self.currentProductId_1]]; 
    
                request.delegate = self;  
                [request start]; 
    }
    
    
    -(void)buyCoinPack_2
    {
              SKProductsRequest *request = [[SKProductsRequest alloc] initWithProductIdentifiers:[NSSet setWithObject:self.currentProductId_2]]; 
    
                request.delegate = self;  
                [request start]; 
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-06-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多