iPhone StoreKit development: Can't create a test user? - iphone

I'm trying to get up to speed on how to develop an in-app store using the new 3.0 SDK... but I'm a bit stuck in that I don't seem to be able to create a test account. The iTunes Connect FAQ states "To create test users for your sandbox environment, go to the Manage Users section of iTunes Connect and select In App Purchase Test User. Your test users will not have iTunes Connect access. They will just have access to the sandbox environment."
...but when I go to that Manage Users section, there's no mention of any sort of "In App Purschase Test User" or how to make one. Did I miss doing something to enable that?
There is another section of that same FAQ that seems to suggest I need to have a paid app in the store first? Is that the reason I can't even use the test environment?

Having the same issue and here's what i did to get it working:
login to http://developer.apple.com/iphone
CLick "My Profile", next to "Hi, your name"
Leave first page, click continue
Where its says "Please select the primary category for your application(s)", make sure you tick second option "Commercial Applications"
hit continue
then go to itunes connect
click "Contracts, Tax, & Banking Information"
you will find a new "Paid Application" contract
tick the box next to it and add it
follow the prompts, no need to submit any Tax info for your testing
now go to itunes connect - Manage Users
and there you have it, both options "Itunes Connect User" and "In App Purchase User" are now available.

Have you signed up for the 3.0 beta access? If not, that may be why you can't see the information. For me, when I log into iTunes Connect and click on Manage Users, it asks for me to select a user type. I have to choose either "In App Purchase Test User" and "iTunes Connect User"

Related

How do I make an App Store in-app purchase notify my server?

I expected to simply find a place that says "hit this URL with this data when an in-app purchase is successful," but I don't see anything like that at all in iTunes connect.
Does such a thing exist?
Yes, it does now. Go to your app on iTunes Connect and under the "App Information" tab scroll down to "General Information" section and you will see a text field like this:
More info about it here:
Subscription Status Apple

xcode app submission error: "no eligible software found, make sure this software is owned by your developer organization"

I'm getting the stated error when trying to upload an app submission to itunes connect on an organization I am a member of, but who's itunes connect username is different than my my apple developer ID.
The problem is I have a single Apple Developer ID I use for all my IOS development across multiple organizations. my.name#gmail.com That id has been added to multiple organizations in the IOS Member Center. On Itunes Connect however, it does not let you add an existing Apple ID (or existing Itunes Connect user on a different organization) as a new user to an organization.
So if I'm a member of 3 organizations, each one uses a different Itunes Connect email, usually the email for that org, not my main gmail Apple ID.
When trying to upload using XCode, I get this error since they don't match. How can I work around this? I fixed it for one organization only by using my co-worker's ID which matched for his appleID+itunes user. However I'd like to be able to do it on my own.
I tried adding individual org emails as xcode emails, however none of them are Apple Developer accounts, and Xcode refuses to use them.
How can I upload my app to a new org I'm a member of on Itunes connect??
EDIT
I tried using the Application Loader tool from Xcode menu, and I get a different kind of error shown below. I tried with App Store Build and Ad Hoc build. This is a development build only at this point which I hope to use for internal testing via Itunes Connect Testflight, so we're not using Release/AppStore provisioning profiles yet, nor have we even created them yet.
EDIT 2
Apple docs say:
"A single Apple ID can be associated with multiple Member Center teams. Using the same Apple ID, you can enroll as an individual and join other teams. However, you can only be associated with a single iTunes Connect team. Consequently, developers should create another Apple ID for different individual or company accounts that they want to manage separately in iTunes Connect."
This is true for itunes connect. But how does one then submit builds to these other itunes connect accounts, from xcode?
I was able to sort this out and thought I'd share for others looking for answers. Because I have a single apple developer id and multiple iTunes Connect ids, that is the core of the problem. Xcode would not let me put and use a non-developer account id into the user preferences. The solution was to use the Application Loader tool.
An Overview of necessary steps, which I use for every deployment now:
Make sure your Release build is using a Distribution provisioning profile and not just a development one. Don't use "Automatic" either, even if it sometimes works. I use an App Store profile, even for test flight releases via ITC. Create the provisioning profile on apple's ios center manually, call it something obvious like "[APP_NAME] App Store Distribution". Then in the Xcode build settings, set the release profile to this name. Secondly, make sure the Code Signing developer is the one on this profile, it doesn't always toggle default to that.
Archive your app as usual to generate the build.
Do not "submit" app from organizer, instead do an export, export to file.
When prompted, choose "App Store Submission" instead of "Ad hoc", otherwise it will fail.
In Xcode open Xcode->Open Developer Tool->Application Loader
From here you can add/select any of your itunes connect users independent of Xcode.
Choose "deliver your app" to submit, and choose the exported build file.
This should get the upload to itunes connect. If you are using TestFlight in ITC and it is setup, this will result in a new TestFlight push.
When creating a new app for each organization I work with, I always setup the new Distribution profile immediately, don't start using "Automatic" or let Xcode "Fix it...", as these may work once, but will likely cause issues or failed releases later. Always name your profiles to include the app name, distribution and App Store, as once you start doing this a lot it is easy to confuse them if you're just naming them non descriptively like "MyApp's profile".
"No eligible software" suggests that either the appID doesn't exist or it exists on the wrong developer account (perhaps Xcode auto created).
Check the team you're using normally (if it's wrong, XC might have done something useful but in the wrong account). Start with Xcode Preferences > Accounts then details of the preferred and current teams in question. After that, check in the devcenter (making sure you're logged in as the team you're trying to submit under) - check your appIDs and see if the app you're expecting to see there actually is.
Also make sure the iTunes Connect account you're using to upload has the "technical" role (per https://developer.apple.com/library/ios/documentation/IDEs/Conceptual/AppDistributionGuide/UsingiTunesConnect/UsingiTunesConnect.html)
In my case the problem was I didn't realized that "Application Loader" has a login!
So I just select Window menu / Sign In as.. And enter the same developer account I used to create the "certificate and provision files", that I used to compile the app.
Please match the bundle Id from itunesConnect & Xcode.
I was getting same error & solved with bundleID.
Change your Application Loader user account to application's signed user account.

Expected sequence when using iTunes test user

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.

Help on creating test users on iTunes Connect Portal

Dear all,
Actaully i am a admin user.i am trying to create a test user account for in app purchases...
when i log into the iOS Provisioning portal, i cant able to create test users.
also refer the screenshot i attched.in that it is mentioned that "Manage Your In App Purchases" module on the iTunes connect home page.but i dont find that kind of a module over there.it is given that "Manage your in app purchases" module will be shown if
1) you are an admin or Technical user
2) and your team agent has clicked
through the latest iOS developer
program License Agreement in the iOS
Developer provisioning portal.
can you please tell me why the "Manage your in app purchases" module is not shown to me?
And in the second point , i cant understand what they mean it actually ( related to team agent)
Please help me out , i have been searching a lot for this for the past 3 days...
Thank you for all your help and time.
You need to fill all financial and banking information before those options appear.

Deleting an app in iTunes Connect

Apple has introduced the possibility of deleting an app. Quoting the iTunes Connect guide:
If you have created an app in iTunes
Connect that you no longer need to see
or manage, you can delete it from your
iTunes Connect view. Deleting your app
will not allow you to re-use your SKU
or App Name and you will not be able
to restore your app once deleted.
So far so good. Then it gets slightly confusing:
If you are selling your app to another
developer for their own distribution
and need to remove it from your iTunes
Connect account, we recommend that you
use App Delete so the App Name will be
freed up for their use.
Does this mean that I won't be able to reuse the name in my account, but other accounts will? Has anybody tried this?
Please see Removing an App From Sale (page 92) section on iTunes Connect Developer Guide 6.3
Click "Rights and Pricing"
Go to the sale territories section. There is a link near the end
Click on the "Deselect all" button to uncheck all App Store territories.
Click on the "Save Changes" button.
After removing all assigned territory checkboxes from your app in the Rights and Pricing section,, the status
changes to Developer Removed from Sale and your app will not be seen on the App Store within 24 hours.
It's possible to salvage the situation. I also made a mistake and forgot to type com.XX part when entering the Bundle ID. My app was not live yet, but once you submit BundleID, it's not possible to change it.
What you can change though, is the "App Name". Thus:
Change the app name into something bogus
Add new app, now using correct Bundle ID and type the original name
Re-upload everything
You could reuse the App Name of the app you have deleted if you change the Default Language of the application information.
Full details here: http://hesh.am/2012/01/recovering-a-deleted-app-name-in-itunes-connect/
I just ran into this today trying to submit my app. I used an incorrect bundle ID and nievely assumed that deleting the app from iTunes Connect would release the app name and SKU for me to reuse when I recreated the app. Not so. Now I get these two errors:
The SKU number you entered has already been used.
The App Name you entered has already been used.
You are correct when you say their documentation is confusing. What the heck is "App Delete," and how is it any different from the "Delete Application" button in iTunes Connect?
I only hope I'm not screwed with regards to my app name being unavailable forever. I've contacted Support so here's hoping...
Simple steps for Deleting/Removing app from iTunes Connect:
iTunesConnect>App>Rights and Pricing>specific stores> Deselect All> Save
Change app status: Developer Removed From Sale
After 24hours app will be removed.
when you delete an application from iTunes Connect you can't upload with the same App Name and SKU in the same developer Apple id. This resource is for migrate an App for another company or individual developer. Ex. when an App was sold.
Follow Below Steps
Login into your iTunes Connect with your developer id: https://itunesconnect.apple.com
Click on App Icon
Click on Rights And Pricing
At the bottom This app will be on sale in all App Stores worldwide.
Or, you can select specific stores “here”. Click on here button to open all specific app stores.
Click on the “Deselect All” button to uncheck all App Store territories.
Click on “Save Changes” button.
Now when you save all these and go to back to your App icon home screen. There will be one more button appear “Delete Application” after “Set Up iAd Network”.
Click on Delete button and read instructions.
Your app will disappear from the app store within 24 hours.
Refer to: see Removing an App From Sale (page 92) section on iTunes Connect Developer Guide 6.3
Follow Instructions Below:
Click "Rights and Pricing"
Go to the sale territories section. There is a link near the end.
Click on the "Deselect all" button to uncheck all App Store territories.
Click on the "Save Changes" button.
Now when you save all of these and then go to back to your App icon home screen there will be one more button that will appear called “Delete Application” located after “Set Up iAd Network”
Click on that "Delete Application button" and read instructions
After removing all assigned territory checkboxes from your app in the Rights and Pricing section, and clicking "Delete Application", the status changes to Developer Removed from Sale and your app will not be seen on the App Store within 24 hours. The name you were using for your app will also become freed for other developers' use.
Hope this helps!!!