iPhone Store Kit returning invalid product ID errors

Posted by EToreo on Stack Overflow See other posts from Stack Overflow or by EToreo
Published on 2009-10-27T19:18:30Z Indexed on 2010/04/30 1:57 UTC
Read the original article Hit count: 644

Filed under:
|
|

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

© Stack Overflow or respective owner

Related posts about iphone

Related posts about in-app-purchase