Mac app In-app Purchase : Invalid product ID

Thanks for reading. I'm having problem with Mac app In-app Purchase.<br/>

I just setup Mac developer account with $99 subscription.<br/>

1) Go to Developer Certificate Utility, create App ID: com.mpham.TestIAP, create certificate, add my Mac ID to System list. Final, add Provisioning profile (development)<br/>

2) Go to iTunes connect, create App: com.mpham.TestIAP, create IAP: com.mpham.TestIAP.IAP1. Final, make app status to "Waiting For Upload"<br/>

3) I create simple Cocoa app: com.mpham.TestIAP, choose Code sign to com.mpham.TestIAP <br/>



//

// AppDelegate.h

//

#import <Cocoa/Cocoa.h>

#import <StoreKit/StoreKit.h>

@interface AppDelegate : NSObject <NSApplicationDelegate, SKProductsRequestDelegate, SKProductsRequestDelegate, SKPaymentTransactionObserver>

{

SKProduct *proUpgradeProduct;

SKProductsRequest *productsRequest;

}

@property (assign) IBOutlet NSWindow *window;

@end





and



//

// AppDelegate.m

//

#import "AppDelegate.h"

#define k1 @"com.mpham.TestIAP.IAP1"

#define k2 @"IAP1"

@implementation AppDelegate

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification

{

if ([SKPaymentQueue canMakePayments])

{

[self requestIAP1];

[self requestIAP2];

}

}

- (void)requestIAP1

{

NSLog(@"requestIAP1");

NSSet *productIdentifiers = [NSSet setWithObject:k1];

productsRequest = [[SKProductsRequest alloc] initWithProductIdentifiers:productIdentifiers];

productsRequest.delegate = self;

[productsRequest start];

}

- (void)requestIAP2

{

NSLog(@"requestIAP2");

NSSet *productIdentifiers = [NSSet setWithObject:k2];

productsRequest = [[SKProductsRequest alloc] initWithProductIdentifiers:productIdentifiers];

productsRequest.delegate = self;

[productsRequest start];

}

#pragma mark SKProductsRequestDelegate methods

- (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response

{

NSArray *products = [[NSArray alloc] initWithArray:response.products];

for(SKProduct *item in products)

{

NSLog(@"Product title: %@" , item.localizedTitle);

NSLog(@"Product description: %@" , item.localizedDescription);

NSLog(@"Product price: %@" , item.price);

NSLog(@"Product id: %@" , item.productIdentifier);

}

for (NSString *invalidProductId in response.invalidProductIdentifiers)

{

NSLog(@"Invalid : %@" , invalidProductId);

}

}

#pragma mark - PaymentQueue

-(void)paymentQueue:(SKPaymentQueue *)queue removedTransactions:(NSArray *)transactions

{

}

-(void)paymentQueue:(SKPaymentQueue *)queue restoreCompletedTransactionsFailedWithError:(NSError *)error

{

}

-(void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions

{

}

-(void)paymentQueueRestoreCompletedTransactionsFinished:(SKPaymentQueue *)queue

{

}

@end





It's run and show the log



2013-02-18 16:59:14.948 TestIAP[12646:403] requestIAP1

2013-02-18 16:59:14.951 TestIAP[12646:403] requestIAP2

2013-02-18 16:59:15.939 TestIAP[12646:1b03] Invalid : IAP1

2013-02-18 16:59:16.043 TestIAP[12646:1b03] Invalid : com.mpham.TestIAP.IAP1



It's mean there is Invalid product, but I created product in iTunesConnect, could anyone please help me?

Mac Pro, Mac OS X (10.7)

Posted on Feb 18, 2013 10:03 AM

Reply

There are no replies.

This thread has been closed by the system or the community team. You may vote for any posts you find helpful, or search the Community for additional answers.

Mac app In-app Purchase : Invalid product ID

Welcome to Apple Support Community
A forum where Apple customers help each other with their products. Get started with your Apple Account.