一.使用范围
Apps utilizing a system other than the In-App Purchase API (IAP) to purchase content, functionality, or services in an App will be rejected
Apps using IAP to purchase physical goods or goods and services used outside of the application will be rejected
Apps that use IAP to purchase credits or other currencies must consume those credits within the application
内购也就是In-App Purchase (IAP).上面这三条说在 App 内使用非 IAP 的第三方支付购买内容或服务、解锁功能是不允许的;用 IAP 购买实物或者应用外的货物或服务是不允许的;通过 IAP 购买的货币必须只在 App 内使用.
注意,审核需要提供内购沙箱账号,下面会讲到
二.审核被拒的一些原因
1.内购必须支持非登录的购买
Guideline 5.1.1 - Legal - Privacy - Data Collection and Storage
We noticed that your app requires users to register with personal information to purchase non account-based in-app purchase products, which does not comply with the App Store Review Guidelines.
Apps cannot require user registration prior to allowing access to app content and features that are not associated specifically to the user.
Next Steps
User registration that requires the sharing of personal information must be optional or tied to account-specific functionality.
To resolve this issue, please make it clear to the user that registering will enable them to access the content from any of their iOS devices and provide them a way to register at any time, if they wish to later extend access to additional iOS devices.
Please note that although guideline 3.1.2 of the App Store Review Guidelines requires an app to make subscription content available to all the iOS devices owned by a single user, it is not appropriate to force user registration to meet this requirement; such user registration must be made optional.
简单翻译:
指南5.1.1 -法律-隐私-数据收集和存储
我们注意到,您的应用程序需要用户注册个人信息,以购买非基于帐户的应用程序内购买产品,这不符合应用程序商店审查指南。
在允许访问与用户没有特别关联的应用程序内容和特性之前,应用程序不能要求用户注册。
下一步
需要共享个人信息的用户注册必须是可选的或绑定到特定于帐户的功能。
为了解决这个问题,请向用户明确表示,如果用户希望以后扩展对其他iOS设备的访问,则注册将使他们能够访问来自其任何iOS设备的内容,并且为他们提供随时注册的方法。
请注意,尽管《应用程序商店审查指南》的指导方针3.1.2要求应用程序使订阅内容可用于单个用户拥有的所有iOS设备,但是强制用户注册以满足此要求是不合适的;这种用户注册必须是可选的。
App Store审核规定,内购是可以不绑定应用账号系统的,也就是说,用户可以购买商品只在某一台设备上使用,不登录就无法购买使用是不允许的,用户必须可以做出选择,可以提示用户,注册/登录将使他们能够访问来自其任何iOS设备的已购买内容.
这里可以增加游客购买,应用后台生成账户绑定这台设备,当然这样购买的商品只能在一台设备上使用,最好使用keychain相对更持久的保存这台设备的账号,如果简单的生成id,应用删除后则会失去已购商品(非消耗性除外).
2.特殊的购买机制
Guideline 3.1.1 - Business - Payments - In-App Purchase
Your app unlocks or enables additional functionality with mechanisms such as promo codes, data transfer codes, license keys, augmented reality markers, or QR codes, which is not appropriate for the App Store.
Next Steps
To resolve this issue, please remove this feature from your app.
简单翻译:
指南3.1.1商业支付-应用程序购买
您的应用程序通过诸如促销码、数据传输码、许可证密钥、增强现实标记或QR码之类的机制来解锁或启用附加功能,这些机制不适合于应用程序商店。
下一步
要解决这个问题,请从您的应用程序中删除此功能。
Guideline 2.3.1 - Performance
We discovered that your app contains hidden features.
The next submission of this app may require a longer review time, and this app will not be eligible for an expedited review until this issue is resolved.
简单翻译:
指南2.3.1 -性能
我们发现你的应用程序包含隐藏的特性。
下一次提交此应用程序可能需要更长的审查时间,并且此应用程序将没有资格进行快速审查,直到这个问题得到解决。
Guideline 3.1.1 - Business - Payments - In-App Purchase
We noticed that your app or its metadata enables the purchase of content, services, or functionality in the app by means other than the in-app purchase API, which is not appropriate for the App Store.
简单翻译:
指南3.1.1商业支付-应用程序购买
我们注意到,您的应用程序或其元数据可以通过应用程序内购买API之外的其他方式购买应用程序中的内容、服务或功能,这不适合于App Store。
这三条可能会同时出现, App Store审核认为App内含有CDK类型的购买方式,如优惠券,兑换码,这些东西是可以在App外购买了之后在App内使用的,是一种绕过内购的支付方式,因此apple认为这可能是隐藏的特性,并且是非IAP的支付方式
3.二进制文件
需要注意的是,注释第三方支付的代码是不能通过审核的,仍然会被检测到,类似第三方的方法名也是不可以的,机审无法通过,开发者自定义的方法名比如-(void)alipayHandle等,也会被认为是第三方的支付代码.
第三方支付SDK也是重要原因,比如支付宝支付SDK,以及带有支付功能的微信开放平台SDK.另外如果APP内既有AIP又有非AIP,也就是既有App内使用的商品又有不在App内使用的商品,需要把功能展现给审核团队,并附加解释,这可能需要点运气和沟通.
4.恢复购买
内购商品有四种,其中对于非消耗型,必须提供恢复购买功能,这个是绑定appleId的,苹果提供了API去实现这个功能,App中必须提供这个功能
三.测试与转让
1.App转移到其他账号
添加过订阅型IAP商品的App是不能被转移到其他账号的
2.沙箱测试
添加一个账号如下图
注意测试账号的邮箱地址是没有注册过appleId的,可以完全瞎写一个,这个是支付测试的时候用来填在appleId登录框里的.
并且,这个密码也是appleId密码的格式,比如首字母大写,必须有字母和数字,否则会提示该项错误.
测试时需要先把iPhone上的appleId注销
App Store下载的应用不能使用沙箱测试