11

这个问题与我在这里找到的其他问题有点不同。我的 In App StoreKit 正在运行,我可以成功在我的商店中列出产品。我浏览了 Apple 文档,但从未看到我的问题得到解决(我可能错过了)。

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

我目前正在阅读这样的产品:

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

这意味着如果植树节活动出现,我将不得不发布更新以在我的请求列表中包含@“arborSponsor”。如何请求我的捆绑包下的每个产品?

我试过使用 @"com.thedomain.*" 和其他一些猜测,但没有运气。是否可以返回整个列表,我是否遗漏了一些非常简单的东西?谢谢!

4

3 回答 3

26

不幸的是,您必须提供您想要获取信息的产品的所有 ID,据我所知。

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

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

我认为您可能会通过在 iphone 应用程序中缓存产品列表然后快速请求查看是否有任何更改来找到一个快乐的媒介,这样您甚至不必每次都获取完整列表。

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

来自应用内购买编程指南

Apple 建议您从服务器检索产品标识符,而不是将它们包含在属性列表中。这使您可以灵活地添加新产品,而无需更新您的应用程序。

于 2009-12-04T02:15:32.603 回答
2

我有同样的问题,但我认为我有办法通过提前计划产品 ID 来解决它。无需将每个产品 ID 命名为“goldSponsor”之类的特殊名称,只需将它们编号为“1”、“2”、“3”……您想添加多少就多少。将名称设置为“金牌赞助商”,并将描述设置为您想要的任何内容。当您的应用开始运行时,请求前 N 个连续的产品 ID。如果它们都被返回为有效,请再请求 N 个产品 ID,直到您获得无效 ID,此时您就完成了。

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

于 2013-04-03T05:29:06.803 回答
1

不,您无法在没有 ID 的情况下从 App-store 获取所有产品

依赖苹果文档

在此处输入图像描述

于 2020-03-01T14:13:14.060 回答