iPhone In App Purchase - response.products are still empty?

Check whether there are invalid product id's.

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

for (NSString *invalidProductId in response.invalidProductIdentifiers)
    {
        NSLog(@"Invalid product id: %@" , invalidProductId);
    }
}

If there are invalid product ids visit http://troybrant.net/blog/2010/01/invalid-product-ids/

It is a very comprehensive check-list for this problem.

Edit: (13/11/20) Site seems to be down. I'm not sure whether it is a permanent problem but you can see the page from archive.org: https://web.archive.org/web/20200212001158/http://troybrant.net/blog/2010/01/invalid-product-ids/


Actually I do think you have to submit the binary for this to work.

You can set the release date to the distant future.


Another important step that is often overlooked is you need to make sure you have an iOS Paid Applications Contract setup which is located under the "Contracts, Tax, and Banking" section of iTunes connect. First you have to click on the request button, then you have to click on the 3 Set Up buttons (Contact Info, Bank Info, Tax Info)