您想要实现的目标是完全可行的,唯一的问题是您的可购买内容必须是动态的。您必须从服务器下载产品 ID,而不是将它们硬编码到您的应用程序中。
参考您的示例,我可以想象一个表格视图被提供了一个对象列表,这些对象列表中存储了 SKProduct ID。您必须这样做,因为在撰写本文时,您无法从 Apple 服务器检索应用程序的所有可用产品 ID。我知道他们没有实现这个功能很痛苦,但老实说,如果他们还没有实现,我认为他们永远不会这样做。
这是我指的方法:initWithProductIdentifiers
您为它提供了一个 NSSet,其中包含您要检索的所有标识符,但如果您提供一个空集或 nil,它不会回复所有现有的。如果您觉得这不起作用,您可以向 Apple 提交错误。如果您仍有任何疑问,请查看此 SO 答案:链接
另一个需要注意的重要事项是,您必须手动上传您的产品。Apple 没有公开任何 API 以使流程自动化。这意味着,每次作家向您的服务器上传内容时,您都必须登录 iTunes 连接并创建产品。此外,您将被限制为 10,000 种产品,因为这是您可以向 Apple 注册的不同产品的最大数量。我还建议您快速阅读 iTunes Connect 指南,其中包含一些重要信息,例如我刚才提到的:iTunes Connect
关于 3rd 方框架,如前面提到的 UrbanAirship,它们只会让您不必在服务器上实施收据验证。除此之外,我没有看到任何主要优势。
Said this, I'd recommend you to reconsider your business model. Is it really worth it all the hassle of uploading the products one per one? Or is it better to go the subscription way, in which your users pay a fixed amount of money for downloading a number of articles per month. You could have different tiers, like, basic, premium (unlimited downloads) an so on and control the delivery of the articles from your servers. That's up to you, but for me the answer is pretty clear.