iPhone:设置应用程序用作“应用内购买”

5
关于应用内购买,我可以找到很多关于实际购买和与商店交互的技术细节的信息(如如何检索产品信息、验证收据等),但似乎找不到有关准备作为应用内购买的实际“应用程序”或“组件”的指南或特殊说明。
例如,一旦将组件下载到应用中,它在整个应用程序架构中存在的位置是什么?它们如何合并以共同发挥作用?它们如何知道彼此的存在?如果我有一个游戏,并使用应用内购买功能允许用户下载新级别,还可以下载可以影响任何内置或已下载级别的新游戏玩法,那么我该如何准备所有这些资产以使它们集成?
我不是在寻求教程,但希望知道是否有人有应用内购买的经验或知道除了苹果的应用内购买编程指南之外的有用参考。该指南只介绍了实际下载交易的具体细节。
3个回答

3
你下载的东西并不是真正的“应用程序”,它们只是像你的应用程序可以下载的任何其他数据文件一样。有时,它们实际上并不是那样,它们只是有效的“开关”,也就是说,所有的功能和数据都已经存在于你的代码中,但它只是通过一行代码来保护。
if (user has purchased extra levels)
    add extra items to menu/list

您不被允许下载新的可执行代码;我承认我不确定苹果公司在多大程度上努力防止您下载控制程序行为的脚本,因为他们很难区分哪些是原始应用的内在部分,哪些不是。
在我的程序中,我将控制逻辑和表格放入主应用程序中,并将大型资源文件分离到单独的ZIP文件中。当用户购买附加包时,他们会下载那个图像的ZIP文件,这样可以保持原始应用程序的大小,程序只需从文档目录中使用这些图像,而不是像内置的那样使用应用程序束。
我正在使用Urban Airship的应用内购买支持,这使您免于运行自己的服务器或学习StoreKit的大部分细节,但需要支付一部分收益。

我想开发一个类似于 Ramp Champ 的模型。自从它最初发布以来,又创建了一些额外的关卡。每个关卡中的动画都是独特的,这让我相信每个关卡都有新的可执行代码。但根据你所描述的,它们可能只是包含了每个关卡的新动画指令和新艺术品。如果我想要作为应用内购买发布全新的功能,你会建议我将新的可执行代码作为应用程序更新的一部分包含(并锁定),然后在适当的应用内购买完成后解锁代码吗? - RyJ
我认为你要么必须在你的应用程序v1.0中拥有所需的代码,要么另一个选择是当你提交v1.0.1作为更新时,你可以向苹果提交额外的应用内购买项目,并告诉他们“请与我的更新一起审核这些项目”。 - David Maymudes
太好了,这些都是很好的信息。感谢你为我解开应用内购买的疑惑,David。 - RyJ
@DavidMaymudes,能否请您向我展示使用Urbanairship进行IAP的步骤。我已经尝试过一切都在两端正常,但仍然出现错误:paymentQueue:removedTransaction:( "<SKPaymentTransaction: 0xf6bba00>"}。您能帮助我解决这个问题吗? - Ajay Sharma

0

你可以让应用一开始就包含所有的关卡,只有当用户购买了应用内的某个关卡时才将其解锁。这是最简单的解决方案。

如果你想要提供可下载的关卡,你需要建立一个自己的服务器,用于传递和验证与苹果服务器的正确购买交易。你还需要创建所有的下载和架构,以便将这些关卡加载到你的应用中并使用。

但是,你可以在这里http://urbanairship.com/in-app-purchase/寻求帮助来创建可下载的物品。


0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接