我正在开发一个SDK,作为静态库分发,供iOS开发人员在他们的应用程序中使用。我有兴趣通过SDK中包含的界面直接向用户提供非消费类可下载和内置内容。理想情况下,当用户在一个应用程序中从我的SDK界面购买某些东西时,它们也可以使用SDK在任何其他应用程序中使用。有没有经验丰富的StoreKit知道是否可以使用Apple的In App Purchase框架来实现这一目标?如果我在应用购买系统中推出自己的应用系统,我会违反Apple的TOS吗?
我应该补充一点,我的目标是,如果我可以帮助,我可以避免使用我自己的自定义帐户/支付基础架构。使用StoreKit会更简单,更可靠。
TL;博士:
答案 0 :(得分:1)
很抱歉,但我认为你的两个问题的答案是否定的。
对于Q1:
在SDK中无法执行此操作。由于IAP需要产品ID和App Bundle id,因此这两个id都是唯一的。这意味着,如果您的某个用户在其iTunes Connect中添加了该ID,则其他人无法再次使用该ID。而且您还需要知道用户的身份。这是不可能的,因为Apple不希望开发人员这样做。
原因是您可以使用某些唯一的设备标识来识别设备,但您仍然无法识别特定用户。从iOS 5开始,获取UUID的API也将被删除,识别特定设备非常困难。
如果您正在做一些Apple不希望开发人员做的事情,我不确定会发生什么。
你唯一能做的就是:
让用户和开发者注册您的服务器。
开发人员应该告诉您他的应用程序中的内容使用了什么ID,以及他的应用程序包ID是多少。
用户购买您的内容后,您的SDK应使用App ID和IAP产品ID来查找内容,然后将信息保存在您的服务器上。
用户登录其他应用后,您的SDK应检查服务器以获取相关信息。向用户提供内容。
听起来很复杂......
第二季度:
根据Apple的审核指南,
11. Purchasing and currencies
11.1 Apps that unlock or enable additional features or functionality with mechanisms other than the App Store will be rejected
在App Store的应用程序中提供自己的支付系统也是不可能的。
所以,基本上你的问题的答案是......不......