2011-03-12 52 views
0

我在我的應用程序中設置了應用內購買系統。我已經在iTune connect上註冊了應用內購買。而這纔是我的代碼:在應用程序購買iTune的問題!

這是請求產品信息代碼:

- (void) requestProductData { 
    SKProductsRequest *request= 
     [[[SKProductsRequest alloc] initWithProductIdentifiers: 
     [NSSet setWithObject:@"com.myapp.id"]] autorelease]; 
    request.delegate = self; 
    [request start]; 
} 

這是用於接收產品信息代碼: (基本上我什麼也沒做,但要打印出來)

- (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response { 
    NSArray *myProduct = response.products; 
    SKProduct *product = [myProduct objectAtIndex:0]; 
    NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init]; 
    [numberFormatter setFormatterBehavior:NSNumberFormatterBehavior10_4]; 
    [numberFormatter setNumberStyle:NSNumberFormatterCurrencyStyle]; 
    [numberFormatter setLocale:product.priceLocale]; 
    NSString *formattedString = [numberFormatter stringFromNumber:product.price]; 
    [numberFormatter release]; 
    NSLog(@"Product 0 : %@, %@, %@, %@, %@", product.productIdentifier, product.localizedDescription, product.localizedTitle, product.priceLocale.localeIdentifier, formattedString); 
    [request autorelease]; 
} 

我已經申請委託:

@interface StoreObserver : NSObject <SKProductsRequestDelegate>{ 

我用一個按鈕觸發requestProductData。通過使用斷點,我確定它被調用。但是,productsRequest從未被調用過。我也確定了連接。

有沒有人有任何線索?

+0

你是從設備還是從模擬器調用它? – Hollance 2011-03-12 10:35:36

+0

我從我的設備撥打電話。 – 2011-03-14 05:12:15

回答

0

原來,問題就在這裏:

- (void) requestProductData { 
    SKProductsRequest *request= 
     [[[SKProductsRequest alloc] initWithProductIdentifiers: 
     [NSSet setWithObject:@"com.myapp.id"]] autorelease]; //<- here 
    request.delegate = self; 
    [request start]; 
} 

你不應該自動釋放的SKProductsRequest。我很愚蠢地犯這個錯誤。

2

你跳過了HOWTO的一部分,我想

[[SKPaymentQueue defaultQueue] addTransactionObserver:self]; 
+0

謝謝。我正在嘗試。我認爲SKPaymentQueue只與SKPaymentTransactionObserver有關。 – 2011-03-12 01:45:29

+0

好點,你可能是對的。你有沒有嘗試從你的設備中刪除應用程序?自從在iTunes Connect中設置產品ID之後,您等了多久?你在使用沙箱帳戶嗎?你上傳了一個二進制文件到iTunes Connect嗎? – mvds 2011-03-12 01:48:07

+0

或只是自己訪問這個偉大的演練:http://troybrant.net/blog/2010/01/in-app-purchases-a-full-walkthrough/ – mvds 2011-03-12 01:49:30