Hello, I am trying to test In App Purchases on my iPhone and running into a problem where the product IDs I request information for end up being returned to me as invalid product IDs in the "didRecieveResponse" method.
I have:
- Created an in store product associated with this app. It's bundle ID matches everything else. It has been cleared for sale and approved by the developer.
- Made sure my new provisioning profile has in store app purchases enabled and it has the full app name: "com.domain.appname"
- Made sure this is the provisioning profile being used to sign the app to my iPhone.
- Made sure that "com.domain.appname" is the app ID used to build the provisioning profile.
- Made sure that "com.domain.appname" is used in my plist file as the bundle identifier.
Everything seems to be in place, however I still get my products returned to me as invalid IDs.
This is the code I am using:
- (void)requestProductData {
SKProductRequest *request = [[SKProductsRequest alloc] initWithProductIdentifiers: [NSSet setWithObject: @"com.domain.appname.productid"]];
request.delegate = self;
[request start];
}
- (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response
{
NSArray *myProducts = response.products;
NSArray *myInvalidProducts = response.invalidProductIdentifiers;
for(int i = 1; i < myInvalidProducts.count; ++i)
{
std::cout <<"invalid product id = " << [[myInvalidProducts objectAtIndex:i] UTF8String] << std::endl;
}
for(int i = 0; i < myProducts.count; ++i)
{
SKProduct * myProduct = [myProducts objectAtIndex:i];
std::cout << "Product Info:" << std::endl;
std::cout << "\tlocalizedTitle = " << [[myProduct localizedTitle] UTF8String] << std::endl;
std::cout << "\tlocalizedDescription = " << [[myProduct localizedDescription] UTF8String] << std::endl;
std::cout << "\tproductIdentifier = " << [[myProduct productIdentifier] UTF8String] << std::endl;
std::cout << "\tprice = " << [[myProduct price] doubleValue] << std::endl;
std::cout << "\tpriceLocale = " << [myProduct priceLocale] << std::endl;
}
[request autorelease];
}
All my product IDs show up in the invalid printouts and none of them show up in the "Product Info:" printouts.
Any suggestions would be greatly appreciated...
P.S. Yes, this is built as Objective-c/c++.