如何简单方便的将In App Purchase加入你的APP中

wangruoze 2013-06-08

关于如何进行In App Purchase开发与调试,可以参见:

http://www.raywenderlich.com/21081/introduction-to-in-app-purchases-in-ios-6-tutorial这篇文章非常好,IAP调试过程中绝大多数都涉及到了。

可是对于象我这样,心浮气躁的懒汉来说,与其关心一步一步,来探讨IAP如何实现,更关心拿来主义,如何能尽快的把IAP集成到自己的APP中。其实也很简单,几步而已。

1. 下载上述链接的附件,在项目中加入RageIAPHelper.h,RageIAPHelper.m,IAPHelper.h,IAPHelper.m四个文件。 如果有必要的话,RageIAPHelper改个名字,我喜欢用GameIAPHelper。

2. 打开RageIAPHelper,将sharedInstance中的productIdentifiers改为你自己APP的。这也是这四个文件中唯一要修改的地方。

3. 在你的工程中合适的地方加入”NSArray* _products;“用来存储从iTune中获取的IAP信息。在应用程序初始化的某个地方使用:

    _products = nil;

     [[RageIAPHelper sharedInstance] requestProductsWithCompletionHandler:^(BOOL success, NSArray *products) {

        if (success) {

            _products = products;

        }

    }];  

对_product数组进行初始化。

4. 判断是否已经购买

[[RageIAPHelper sharedInstance] productPurchased:product.productIdentifier]

5. 购买:

    SKProduct *product = _products[buyButton.tag];

    [[RageIAPHelper sharedInstance] buyProduct:product];

6. 监听回调,productPurchased需要自己实现。

    [[NSNotificationCenterdefaultCenter] addObserver:selfselector:@selector(productPurchased:) name:IAPHelperProductPurchasedNotificationobject:nil];

7. 在适当的位置移除回调

[[NSNotificationCenter defaultCenter] removeObserver:self];

8. 2012年以后,对于Non comsumble类型的IAP,Apple需要提供restore功能,否则会导致应用程序审核被拒。实现起来也极为简单,添加相关按钮,然后在按钮的点击函数中添加相应的处理:

[[GameIAPHelpersharedInstance] restoreCompletedTransactions];

还有个需要注意的地方,这四个文件使用了ARC技术,要是你的项目不是基于ARC开发的,那么要在XCode中混用ARC和非ARC模式。需要给这四个ARC 模式的文件加入 -fobjc-arc 标签。

添加标签的方法:

1. 打开:你的target -> Build Phases -> Compile Sources.

2. 双击对应的 *.m 文件

3. 在弹出窗口中输入上面提到的标签 -fobjc-arc

4. 点击 done 保存

相关推荐

shengbin / 0评论 2012-08-29