Looks like no one’s replied in a while. To start the conversation again, simply ask a new question.

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.

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 ID.