※ 引述《sdico (文)》之铭言:
: 目前我的app在做内购功能
: 但遇到一个问题是:
: apple审核要求判断是否产品已经购买,是以该设备登入的apple id为准
: 那么假如我的app允许Google与FB登入
: 我先用google帐号登入,然后购买了非消耗性产品A
: 之后登出改用fb帐号,这时理论上fb帐号是要可以购买的
: apple允许这种情况吗?
App的使用者机制跟第三方登入怎么设计其实对Apple来说都不重要,依照guideline的指示他们只在乎AppleID跟AppStore之间的互动要符合guideline里预期的行为,所以实务上你没有办法在同一个AppleID下购买两次同一个Id的非消耗商品
程式逻辑上变通的方法就是做成消耗性商品然后自己维护购买纪录,但是这种方式有机会违反guideline 3.1.1而被退审
Apple认定的非消耗性商品必须要能透过StoreKit的restore API回复购买,且只要该物品、功能会持续存在,在逻辑上无法以任何形式使用掉,就应以用非消耗性商品的型式提供给使用者
而如果是跟时效有关的功能解锁则应该使用订阅商品提供
使用消耗性品项搭配自己的Server来提供类似的功能(例如自己维护订阅周期)在guideline上理论上是不被允许的,因而被退审只是刚好,能过审也是侥幸,说不定会在某次更新送审时被刁难
但山不转路转,要闪避也是有黑暗兵法可以偷渡的,偷渡的部分就大家各凭本事了
对了,提醒一下既然你的App有第三方登入,记得也要实作Apple SignIn喔,不然会违反4.8