之前某个应用尝试了 In-App Purchases 的 Non-Consumable 这种购买方式,为了图省事,使用了 MKStoreKit 来实现,走完整个流程跌跌撞撞,查了不少资料,稀里糊涂的成功上架。

最近,资本家贪婪的本性发作,需要添加更多 Non-Consumable 的购买选项,由于无法测试(需要和 binary 一起提交审核),随便弄一下就提交了,没想到平时十分负责的苹果审核人员居然没测出问题,上架后收到不少用户的邮件才发现出了大事,又折腾半天才搞定,记录一下。

1, 在应用中添加 MKStoreKit,略

2, 编辑 MKStoreKitConfigs.h,把所有涉及的 IAP 的 ID 都 define 进来,方便代码调用,例如

#define IAP_ID1 @"com.mycompany.myapp.001"
#define IAP_ID2 @"com.mycompany.myapp.002"
#define IAP_ID3 @"com.mycompany.myapp.003"

3, 编辑 MKStoreKitConfigs.plist ,把上面的 IAP ID 按各自的类型添加进来(本次血的教训就是漏了这一步)

4, 程序启动时运行

[MKStoreManager sharedManager];
[[MKStoreManager sharedManager] purchasableObjectsDescription];

如果能看到 NSLog 出来所有的内购项目就说明成功了

5, 之后程序里根据第二步 define 的几个 ID 就行判断操作就行了,详见官方文档

最后,再到 Request an Expedited App Review 填个申请加急审核的表单