カスタム検索

2010年4月6日火曜日

iPhoneおアプリ内課金について・その1

iPhoneでアプリ内課金をするのに色々と面倒だったのでまとめておく

概念とかはStoreKitガイド辺りで把握出来ますので、実際にコードに組み込む辺りを。


・まずはプロジェクトにStoreKitFrameworkを追加する。
プロジェクトの編集>一般>リンク済みライブラリの「+」から StoreKit.framework を選択して追加
なぜかリストには反映されないが、動作しているので気にしない
これってiPhoneアプリ的には常識なんでしょうかね・・・まったく知らなかったんでここに来るのすら苦労しましたw

・下準備

#import <StoreKit/StoreKit.h>

して、クラスに <SKProductsRequestDelegate> を追加する

こんな感じ


#import <StoreKit/StoreKit.h>

@interface TestLayer : NSObject <SKProductsRequestDelegate> {
}
@end




・購入するアイテムの情報を取得

SKProductsRequest *request=[[SKProductsRequest alloc] initWithProductIdentifiers:[NSSet setWithObject:@"PRODUCT_ID"]];

PRODUCT_IDはitunes connectで指定したものをあてる。
通信中の処理待ちなどはアプリ側で各自実装、リクエストが終わると productsRequest がコールされる



-(void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response {
// プロダクトの取得
SKProduct *product = [[response products] lastObject];

// アイテムのタイトル
NSLog(@"%@",product.localizedTitle);
}


request は requestDidFinish で解放してやりましょう



- (void)requestDidFinish:(SKRequest *)request {
[request release];
}



itunes connectへ課金アイテムの登録がうまくいっていれば、この時点でアイテムの名称がログに出力されます。
後は SKPaymentQueue の使い方と、テストユーザでの購入の仕方、その際のTIPS等

0 件のコメント: