I'm testing an in-app purchase which did work fine a week ago, but now seems to be playing up.
I can load the product from the store without any problems (using NSLog to confirm the product id, price etc...), but when I send the actual request to purchase the product - I don't get challenged to log in to my (test) user account, it just returns an error code -1003 "Cannot connect to iTunes store".
This is strange because it did work a week ago, and now it doesn't. What's weirder is that it does prompt me for my password (to purchase the product) if I am currently logged into my live iTunes account.
It's almost as if the app is checking to see if there is an iTunes account logged in, and if not it will just fail... which is rather annoying as you're not supposed to log into the test accounts via your settings as it will invalidate it.
Can anyone shed some light on this for me? I'd be well chuffed if you could :)
Thanks!
I have had this issue as well. You may want to try one or all of these steps.
Delete the app from your device and rebuild it.
Log out from any iTunes account on the device.
Delete the app. Reboot your device and build and run again.
Log into the iTunesConnect portal and view your test user page.
I have been able to reconnect by doing one or all of these things.
Hope this helps.
I've fixed this by creating a new test user. My guess is the test account accidentally saw the live store - which tends to kill them. Might be your problem as well?
Related
Most tutorials I've been able to find are dated and inconsistent with regard to what is actually necessary to have uploaded and approved in iTunes Connect. Following one tutorial I uploaded incomplete binary and rejected it. I then added an In App Purchase Item. I uploaded an image and filled in all the registration information.
So currently,
App - Status -- Developer Rejected
In App Purchase Item -- Ready to Submit
I am able to make requests to the store kit, but I am getting 0 results. Is it possible to get results with my current iTunes Connect statuses?
Edit: I appreciate the trouble shooting advice. But I want to make sure that it is in fact possible to retrieve purchase items with the above statuses.
Make sure that you provided all the details for the app including the in app purchase details along with screen shot.
Next is to make sure that the app ID's are same in server and in the app.
When testing in-app purchase, create test account in app store and use it for testing. Make sure that the mail you are using is not existing. Also on your device, you have to use those test credentials to test the app.
Hope this helps.
Yes, it is possible as I just managed to do it. My problem was tax info. Thanks to Paul Mason, your comment was the correct answer!
I am trying to add in app purchases to an app that is already for sale on the app store for the next update. I have never added any in app purchases to it before.
I am using MKStoreKit to handle the in app purchases so I figure everything is as it should be on the coding side of things.
When my app starts up I query the list of available in app purchases, this successfully returns the list of in app purchases (just two at the moment) and the prices of them.
I have a button in my app that sends a purchase request, I pass in the appropriate product ID. This consistently gets cancelled every time and I get the error message
User cancelled transaction:
in the log.
From reading other blogs and posts I have come to the conclusion that it is because my in app purchases aren't cleared for sale in iTunes connect, they currently say "Waiting for Review".
I have tried everything on this check list to try get this to work http://troybrant.net/blog/2010/01/invalid-product-ids/ but still nothing.
I submitted an app and then a few hours later developer rejected it because I heard this worked for some people.
Anybody know how I make the in app purchases cleared for sale in iTunes Connect?
Just spotted that I never closed this question. The reason this was happening was because Apples servers were acting up at the time. Game center sandbox was also effected at the time. I left it alone for a couple of days and it started working when I got back to it.
Actually you should have tested the in-app before submitting them for review. Afaik, as soon as they are in-review state, purchases with the test account might not work. You could try and create another in-app item for testing purposes, just create it and try to purchase that (using your iTunes Connect Test account) without submitting it for review.
The cleared for sale status can be set in the pricing and availability section of the respective in-app item.
I have an ad-hoc deployment of my iOS game, which includes in-app purchase. It is correctly set up with a purchasable item on itunes, and I have test users on itunes. I am able to successfully test it with my own iPod, and with a friend's iPod -- I can choose the item to purchase, get the price info correctly from the Apple server, choose to buy, enter the Apple ID and password for one of the test users, an the purchase completes successfully.
Another friend also installed the game on his iPhone and was starting to look at in-app purchase, but he followed an incorrect procedure, an now we can't get in-app purchase to work on his iPhone at all.
Specifically, he correctly signed himself out of the Store via the Settings application, then ran the game and chose the item to purchase. It correctly retrieved the price information. However, when the standard UI popped up and where he was supposed to click "Use an Existing Apple ID" he chose "Create a New Apple ID" by mistake. This brought him out of the game (game was sent to the background) and over to the web page to fill in the details for a new user. He realized that was wrong and returned to the game. But when he then tried to repeat he process, after retrieving the price info (again successfully), when he went to initiate the purchase, it errors out and never shows the standard UI where he can choose Existing Apple ID or Create New. So it's like his phone was left in a funny state. He tried rebooting the phone, reinstalling the app. Same problem. Then I recommended that he log in to the Store via the Settings app using his regular account, download a couple free apps, and then log out of the Store via the Settings app and try again. My thought was that this full process would somehow "clear out" whatever bad state his phone was in. But no dice. Same problem.
We can't figure out what state his device is in such that it fails when going to the purchase step of this sandbox in-app purchase process. I am still able to successfully complete the process on more than one other devices, so I don't think it's a problem with the state of the purchasable item or test users on itunes. It seems to be something specific to his device. I also had him using iPhone Config. Utility to watch the Console log as he went through this process. Very little was seen -- just an error code coming back after trying to initiate the purchase. (Nothing about PIPELINING errors and other web-service type errors that I've seen before when in-app purchase wasn't set up correctly on the sandbox.)
Any ideas on what state his phone could be in with respect to (sandbox) in-app purchase, and how we can clear it out?
Reset your network settings (Settings -> General -> Reset -> Network Settings)
Turn off your iPhone and turn it on again.
Wait for 15 min (This is the time iOS caches AppStore credentials)
Try running the app again.
I have an app in the app store that I have added an in app purchase for, I fully tested it in the sandbox environment and all worked fine. I have had the app update and the in app purchase approved by apple and according to iTunes connect all has gone live. The app updates just fine but then in app purchase simply doesn't work!! No products are returned! Anyone else have this problem? Surely if it worked in the sandbox and apple has approved it, there should be no issues!?
It's all working just fine now! I didn't do anything it just seems to have taken about 36 hours for the in app purchase product to propagate through apples servers! :)
We just went live about an hour ago with the EXACT same issue. Everything worked during testing and even when Apple reviewed the application. I even verified they completed test purchases via analytics. But when users in the app store download the update, try to buy the feature it just fails.
My only guess is our store data has propagated to their live servers? The apps are still using the sandbox environment?
Which URL are you using to connect to the Apple servers?
The sandbox url is:
https://sandbox.itunes.apple.com/verifyReceipt
When launching the app or going live the url needs to be changed to the live Apple servers:
https://buy.itunes.apple.com/verifyReceipt
This has got nothing to with the receipts or anything. If it was working in the Sandbox mode, it's gonna get automatically fixed in around 24 hours in the live version, don't worry. The exact same thing happened to us and we could do nothing but wait...
Also, make sure the iTunes account on your device is set to your real account. If you are are still logged into a test user from when you were testing your IAP stuff, your purchases won't work.
So incase a where in app purchase in your app not working past 48 hrs, kindly visit developer.apple.com to update your tax information. In app purchase won't function until the in app purchase is updated even the app is live too.
I'm trying to test in app purchases in our app but I'm not having any luck. Part of the problem may be due to the expected sequence not being documented anywhere. Here are the steps I followed to support in-app purchases:
Create test user in iTunes Connect.
Log out of the Store on the device.
Build and run the app in Xcode using a non-wildcard App ID and provisioning profile targeting the device (an iPhone 4 running iOS 4.2.1). I've run through this building for both debug and ad-hoc release.
Make an in-app purchase.
Alert is displayed: "Confirm Your In AppPurchase" with two buttons - Cancel and Buy. Tap the Buy button.
Alert is displayed: "Sign In" with three buttons - Use Existing Apple ID, Create New Apple ID, and Cancel. Tap the Use Existing Apple ID button.
Alert is displayed: "Apple ID Password" with two text fields and two buttons - Cancel and OK. Enter the email address and password for the test user and tap the OK button.
Here is where my understanding of what is the expected behavior is deficient. Here is what I see at this point:
Alert is displayed: "This Apple ID has not yet been used in the iTunes Store. Tap Review to sign in" with two buttons - Cancel and Review. In all the documentation, blog posts, and forums, no one has mentioned this alert. Is this supposed to be displayed? I tapped the Review button.
I am now taken to the App Store app and taken through a series of steps to confirm the account.
The first page is titled "Confirm Your Country or Region" with a single value titled Store set to United States. I tapped the Next button on the toolbar at the bottom.
The second page is to agree to the terms and conditions and the Apple privacy policy. I tapped the Agree button on the toolbar at the bottom.
Alert is displayed: "I have read and agree to the iTunes Store Terms & Conditions." with two buttons - Cancel and Agree. I tapped Agree.
The third page is to confirm information for the account (email, password, security question, birth date) and enable/disable iTunes store subscription information. It requires me to enter the year (why didn't iTunes Connect just ask me for it!). I entered the birth year and then tapped the Next button on the toolbar at the bottom.
he fourth page asks is titled "Billing Information." This is when I realized something was wrong. All the documentation, blogs, and forums say I shouldn't be asked for a credit card.
Q1: What exactly should I expect once I enter the test user email address and password (the first set of steps)?
Q2: Why am I being asked for all this extra information for a test user? What should I be looking at to troubleshoot this?
Thanks for your help.
It happens when you install your development application over downloaded from App Store.
To fix this issue, you need to remove application from the device and install fresh copy using XCode.
iOS caches distribution profile somehow and requires production user if the first installation was done through App Store. With no regard what installation method was used recently.
Here is the trick (at least if worked for me..).
First log out of your real iTunes account in Settings > Store > Apple ID. You must be logged out of an account to be able to use your test account.
However, don't log in to your test account on that screen.
Go to the app, initiate your in-app purchase, and enter the test account email and password there. Assuming the test account is set up correctly (!), that should work.
Then, when finished testing, go back to Settings > Store > Apple ID and log out of the test account.
This sequence worked for me. I tried all of the above sequences and they failed for me.
Sign out of your account on the iPhone in Settings -> Store
Delete your test app
Power the iPhone off and on again
Close iTunes on your computer
Run the app again from XCode
Thanks to OmegaDelta's blog for this one:
http://omegadelta.net/2011/05/11/testing-in-app-purchases-in-ios-4-3-sandbox/
I found some answers to my questions above after I completely deleted the app off my device and tried again. I have no idea why that was required.
Q1: What exactly should I expect once I enter the test user email address and password( the first set of steps)?
No addition questions are asked once entering user credentials if it works, so if the first alert in the second list is displayed then you know it didn't work.
Q2: Why am I being asked for all this extra information for a test user? What should I be looking at to troubleshoot this?
The only thing I can think of is that there was something cached in my app from previous requests. This makes me nervous as I have no idea whether customers will have to delete the app or not like I did.
I've experienced the same problems until I quit iTunes and installed the right provisioning profile to my device. Running iTunes with Xcode restored my account from time to time so even when I log out on the device I was suggested to use my (not test) account in the app. Installing the correct profile fixed the second problem.
Hope it can help somebody too.
None of these answers is very specific or wholly correct, and the in-app behavior has changed slightly over the past year wrt test accounts. The true/current solution to this if you hit it: go through the review/sign-in pages in iTunes for the test account and just "cancel" from the "enter billing information" screen with no harm, no foul. If for whatever reason you never get prompted to review/sign-in, then don't bother to do so.
I was able to get around this issue by signing my test user into a different app that I was developing, then going back to the app where I was having problems (no amount of deleting or restarting helped). As others have said, you don't want to be signed in as the test user in the Settings menu when you try to perform your IAP.