views:

665

answers:

4

I have had zero success with in app purchase. I have submitted the free app binary, and then rejected the binary. I have added the test product. I have approved the test product TAP001.

I have followed the code examples to no avail. I do a SKProducts request using both "com.companyname.appid.TAP001" and just "TAP001"

Regardless, I get an empty response.products and response.invalidProductIdentifiers with the product string I sent.

I created a test user, but seeing how I cannot get any product info, the test user doesn't really come into play yet.

Can in app purchase be tested in debug or release builds? Or does it have to be a distribution?

Must one have a fully accepted app in the app store prior to testing in app purchase?

I am simply trying to test the process out and I do not have an actual app yet. I went as far as to fill out all the bank and tax information. I have followed the steps in the app docs but clearly I have something wrong or missing.

Thanks

A: 

According to Apple's itunes connect FAQ, you need to create a test user in order to use the itunes store sandbox environment.

That being said, even after creating such a user and setting my iphone to use that user, I am still experiencing the same issue that you report: all products are "invalid" according to the store kit API.

I'll update this post when I figure it out.

benvolioT
Thanks benvolioT. At least I am not the only one. I too have a test user configured. I keep coming back to this issue every few days, hoping that time away will generate a successful perspective. I have read every post I can find and all the Apple docs. I am beginning to think that you need an actual approved app in the store, but that just does not seem to make sense.How could one write their first app with in app purchase in it without testing first.
dredful
A: 

So: Imagine an extremely complicated and convoluted set of rules for how to test in app purchases. Now make it ten times more complicated. That is apple's solution. :)

You'll need to read the itunes connect developer guide, and probably also the In App Purchase guide. The short answer is that you'll need a special test account and you'll also need to use it in a very particular way if you want to test your in app purchase.

Good luck!

benvolioT
+3  A: 

I just got it to work. I used only "TAP001" for a product instead of "com.companyname.appid.TAP001". and I got product information back.

I feel dumb but I know have tried "TAP001" in the past with no success but I have tried so many things prior to this that I must have had some other information wrong a the time I did.

For those who are struggling with this issue, I can say:

  • Your app does not need to be live in the store.
  • You do need an app in the App store submission. Reject the binary after uploading it.
  • Testing your app should work in Release or Debug modes
  • You do need an in app product "Cleared for sale"
  • Your product request only needs to contain the product id(s)

Here is an example:

- (IBAction)buyButton1Click:(id)sender{
 NSSet *productList = [NSSet setWithObjects:@"TAP001", @"TAP002", nil];

 SKProductsRequest *request= [[SKProductsRequest alloc] initWithProductIdentifiers:productList];
 request.delegate = self;
 [request start];
 }
dredful
A: 

My product is Pending Developer Approval. Is this why i am still getting 0 products after following all the steps suggested in this thread? Do i need to login with the test account manually by going to settings=>store?

Thanks

aryaxt
I just added another product and did not "Developer Approve" it. The product is showing up in my test application. The test account login is not required to get products back. It is only needed at purchase time. What is your invalidProductIdentifiers count?
dredful