利用MKStoreKit实现iOS App的应用内购买
App Store中, In-App-Purchase是一种很好的免费->收费的转化方式,iOS 6里面又新增了一些支持,由于NDA的原因,现在不会讨论iOS 6.这里只介绍一下MKStoreKit.
MKStoreKit
MKStoreKit可以极大的简化IAP的代码,提供了很实用的抽象接口,并且还提供了服务器验证receipts的代码,非常方便。MKStoreKit使用zLib licensing,使用者只要保证源代码里面不移除原作者的版权信息即可。
基本用法
这里只介绍一下Non-Consumable类型的用法,其它的用法请参考头文件里面的方法声明:
检查是否购买了某一个Feature:
|
|
购买某一个Feature:
|
|
一些提示:
- 建议在程序启动时,先调用
[MKStoreManager sharedManager]
,这样就可以尽早地得到products list,避免用户直接购买时无法得到IAP的信息 - 如果得到的是invalidProducts,建议先删除设备上的App,再重新Build and Run
- 开发测试时,记得调用
[[MKStoreManager sharedManager] removeAllKeychainData]
,来移除IAP的信息,否则即使删除app重新build后,购买信息会依然存在。Release的时候要记得删除该行代码。建议使用条件编译来解决这个麻烦。
附小广告一则:唱吧iOS团队诚招iOS工程师,推荐成功即奖励6000元现金或iPhone 6一部,详见这篇blog。