2009-12-04 92 views
11

此问题与我在此处找到的其他人有点不同。我在App StoreKit正在工作,我可以成功地在我的商店中列出产品。我浏览了Apple的文档,从未看到我的问题(我可能错过了它)。StoreKit将返回所有产品ID

我的客户(非盈利)希望能够通过他们的应用程序接受捐赠。我希望让他们有能力即时添加新的捐赠活动,而无需用户更新其应用程序。我的意思是,他们可能会有一个特殊的“帮助我们赞助一个活动即将到来的植树节”,并接受特别针对该案例的捐赠。

我目前正在读同类产品:

SKProductsRequest *request= 
     [[SKProductsRequest alloc] initWithProductIdentifiers: 
      [NSSet setWithObjects: @"goldSponsor", @"silverSponsor"]; 

这意味着如果植树节事件出现时,我会发布更新,以包括@“arborSponsor”在我的要求清单。我如何要求我的包装下的每件产品?

我试过使用@“com.thedomain。*”和其他一些猜测没有运气。是否有可能返回整个列表,我是否缺少一些非常简单的东西?谢谢!

回答

21

不幸的是,您必须提供所有您想要获取信息的产品的ID,只要我能够看到。

处理此问题的一种方法是将您的产品ID存储在远程服务器上,然后向服务器发出请求以在加载商店时下拉当前的一组ID。

这将允许您添加或删除itunes方面的产品,而不必将任何二进制更新提交到您的应用。

我想你可能会找到一个快乐的媒介,在iPhone应用程序中缓存产品列表,然后只是快速请求,看看是否有任何变化,所以你甚至不需要获得完整列表每一次。

这可以在服务器端使用一个简单的http API或甚至只是一个xml文件来完成。

从应用程序内购买编程指南

Apple建议您获取产品从你的服务器 标识符,而不是 包括他们的财产 列表。这为您提供了灵活性 添加新产品,而无需更新您的应用程序 。

+1

谢谢!那就是我所害怕的。希望这会让我有理由推动他们为此获得服务器。 – ryanday 2009-12-04 14:07:39

2

我有同样的问题,但我想我有办法解决它通过提前规划产品ID。不要将每个产品ID命名为“goldSponsor”之类的特殊产品,只需将它们编号为“1”,“2”,“3”......就可以添加多少个产品。将名称设置为“黄金赞助商”,并将描述设置为任何你想要的。当您的应用程序开始运行时,请求前N个顺序产品ID。如果它们都返回有效状态,请申请另外N个产品ID,直到您获得无效ID为止。

我打算用Apple托管的内容来做到这一点。我也在考虑使用产品的描述字段来编码关于我下载的数据的详细信息(在我的例子中是地图的角落坐标)。我仍然会使用完整的“com.company.product.1”作为每个ID并从那里顺序编号。

+0

err ...但是,当你删除/不清楚销售任何id你的逻辑将停止工作。 – 2017-01-10 21:26:29