Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 我该如何处理;更新;在不影响新用户的情况下,为老用户提供更多内容?_Iphone_Ios_Ipad - Fatal编程技术网

Iphone 我该如何处理;更新;在不影响新用户的情况下,为老用户提供更多内容?

Iphone 我该如何处理;更新;在不影响新用户的情况下,为老用户提供更多内容?,iphone,ios,ipad,Iphone,Ios,Ipad,主题太模糊了-让我解释一下: 我有一个包含导航图的应用程序。如果有人在2011年购买了该应用程序,他们将获得2011版的导航图 如果有人在2012年购买该应用程序,他们将获得2012年导航图 然而,2011年购买该应用程序的人应该能够在付费的基础上升级他们的图表(到2012年的图表) 我如何可靠地实现这一点 此外,如果有人在2011年购买了该应用程序,他们应该不能简单地卸载应用程序并重新加载(从AppStore)并免费获得更新的图表 这不像直接的“应用内购买”那么简单,因为新的购买者可能已经收到

主题太模糊了-让我解释一下:

我有一个包含导航图的应用程序。如果有人在2011年购买了该应用程序,他们将获得2011版的导航图

如果有人在2012年购买该应用程序,他们将获得2012年导航图

然而,2011年购买该应用程序的人应该能够在付费的基础上升级他们的图表(到2012年的图表)

我如何可靠地实现这一点

此外,如果有人在2011年购买了该应用程序,他们应该不能简单地卸载应用程序并重新加载(从AppStore)并免费获得更新的图表

这不像直接的“应用内购买”那么简单,因为新的购买者可能已经收到了更新


在你评论我如何通过“惩罚”现有用户等方式对他们不公平之前,请注意,事实并非如此。与任何和所有导航图一样,购买一张(电子或纸质)并不一定会给你免费获取未来所有导航图的权利。此外,我有图表提供商,我需要为更新支付版税。

如果你想基于单个可升级的应用程序(我认为你应该这样做),为了客户的连续性,那么你可能需要维护自己的服务器,该服务器根据通过应用内购买购买的内容管理权利,什么时候


苹果的应用内购买文档中概述了这一过程。

那么,问题是你有一个付费应用,而不是一个完全依赖应用内购买的应用


你应该能够给他们一个免费的图表购买。为下一次购买收费。

如果您可以动态设置应用内购买的价格,您可以让它在用户首次打开应用时尝试恢复用户购买,如果没有要恢复的购买,则免费为他们提供当前购买。这将确保只有尚未收到任何内容的用户(无论是通过初始下载还是应用程序内购买)才能收到新地图,而无需额外收费

实现类似功能的一种方法是让它成为一个免费的应用程序(可能有演示内容),每个图表都有非消费性的应用程序内购买。在较新的更新中,您可以这样做,即您只能购买新版本,但仍然可以恢复购买并以这种方式获得旧版本

此外,如果有人在2011年购买了该应用程序,他们不应该 能够简单地卸载应用程序并重新加载(从 AppStore)并免费获取更新的图表

您需要运行自己的授权服务器的建议听起来可能是正确的,而且是技术上最可靠的方法。然而,这依赖于能够在服务器上唯一地标识用户,正如JustSid所指出的,UDID将不可供开发人员使用。无论如何,UDID识别独特的设备,而购买基于AppleID,所以我不确定这是否真的有效。然而,最令人不快的部分是需要为此维护自己的服务器,如果有其他方法,这会增加复杂性

这部分取决于你们的价格。如果新图表的价格低于或等于您当前的应用程序价格,那么如果您可以接受,您可以使用一种简单的方法。当2012年图表可用时,随2011年地图一起发布应用程序,将应用程序的价格降低到2012年图表的价格,并使2012年图表作为应用程序内购买为所有用户提供

我不知道你的应用程序要多少钱,但这里有一个例子:

目前
2011年图表应用:10美元

2012年图表可用
新购买者的应用程序价格:$5。(随附2011年图表)。
截至2012年图表的应用程序内购买:5美元。
总额:10美元

为现有客户更新应用程序的价格:$0。
截至2012年图表的应用程序内购买:5美元。
总额:5美元

新客户支付的总价格与以前相同,现有客户在直接购买应用程序的基础上获得50%的折扣。如果你打算这样做,你需要在应用商店中明确表示,5美元的购买是为了给你一张传统图表的平台,而5美元的应用内购买是获得2012年图表所必需的,因为客户不习惯在购买付费应用后立即进行应用内购买

或者,您可能不想区分升级和新购买者。在这种情况下,只需在app store中将2011年图表中的应用程序的价格设置为0美元,并在应用程序中购买10美元即可获得2012年图表。就个人而言,我非常喜欢这种方法,因为下载了一个免费的应用程序后,人们将更加了解立即进行应用内购买以获得完整功能的必要性

这不像直接的“应用内购买”那么简单- 因为较新的购买者可能已经收到了更新

这是棘手的一点。我上面概述的场景并不能完全满足您的需求

对于应用内购买的可能性,我并没有明确的说法,但我能看到你实现这一点的唯一方法是为2012年的购买者销售一款新的应用,同时在2011年的应用内为早期顾客提供2012年图表作为应用内购买。应用商店中有两个应用。不确定苹果会喜欢它

稍后
如果能够以编程方式访问当前用户应用程序的原始购买日期(而不是下载日期),就可以实现理想的结果,就像您可以获取已发生的应用程序内购买的详细信息一样。然后你可以说(伪代码):

但是。。。到目前为止,我还没能找到一种方法来得到那个原点
if ((purchaseDate > 1-Dec-2011) || (hasPurchased2012ChartInApp == YES)) {  
    // give access to 2012 charts  
}  
else {  
    // only give access to 2011 charts  
}