The mechanics of the iTunes store - iphone

Not specifically a programming question, but might be something a bunch of programmers run into.
I wrote a really trivial application for the iPhone and submitted it for approvals. After a few back and forth (e.g. denied, then resubmit) of fixing various UI guidelines issues, I got an email today stating that:
Your application is now Ready for
Sale. If your contracts are not in
effect at this time, your application
will not be live on the App Store. You
may track the progress of your
contracts in the Contracts, Tax, and
Banking Module in iTunes Connect.
Now the application is free, so I am not sure why they are sending an email saying that the application is ready for sale. The contacts are in place as well:
(source: angryhacker.com)
But the real problem is that I click on the link they provided...it opens iTunes, then says:
(source: angryhacker.com)
I went into iTunes Connect to Manage Your Applications link. The status is green, Ready for Sale. I checked all the countries where the application is supposed to be available -- and all countries are checked. Plus, I cannot find it in the iTunes Application Store either.
What am I missing? Is there an interval between when the app is approved and when it should appear in the iTunes store?

Yes there is an interval while it is released. Wait about 6 hours and try again.

Once your application has been approved it does indeed take up to a few hours before it has propagated and shows up. The same applies when you pull your application from the App Store or changing your application description or screenshots.
Basicly everything you do in iTunes Connect regarding your app, takes some time to propagate through the servers. I don't think I ever had to wait longer than 6 hours though, more like 3 hours on average.

Related

App store review process for apps that rely on specific geolocation

I'm getting ready to submit an App that relies on the user being at specific locations to watch a video. (Kind of a mashup of geocaching and youtube.) Needless to say none of these videos are anyway near Apples headquarters. So how will the App store review people be able to properly review the App? Do I have to provide test data in their vicinity or can I instruct them to fake their geolocation to a location that works?
I guess the best way is to just submit it once, wait ~7 days and see what they have to say,
but since they have special toolchains to test apps, it shouldn't be a problem.
Just make sure to mention it in the review notes.
I've submitted an update to an app once that requires an user and password to login, and gave them a test user. When I checked the server logs, they never logged in once - but the app was still approved.
The iOS Simulator can 'fake' its location :) Though I doubt what they DO review in their process, because once they accepted one of my Apps' update which crashed upon launch...
Recently had to deal with this myself... submitted a location specific app without any extra review notes, and the app got rejected. In the rejection notice I was given the instruction to create a video of the app in action and then provide a link in the review notes.
So I used another iPhone to take the video, put some basic explanation text in the video using iMovie, uploaded to YouTube, put the link in the reviewers notes, re-submitted the app and then 5 or so days later it was approved.
As I understand, they review team does NOT test the usability nor stability of your app during app reviewing. All you need to do, is to provide an testing account, and some sample data, screenshots to them helping understand how your app works. If the app does not show any data because of a reasonable circumstance, it's not the problem of your app quality nor user usage, but data coverage. So you won't have problem with it.

in app purchasing submission process iphone

I am trying to submit my first iPhone app that has in-app purchasing features. Needless to say, I have been banging my head against the wall for a while. I have read through several tutorials, such as: http://troybrant.net/blog/2010/01/in-app-purchases-a-full-walkthrough/ and http://blog.mugunthkumar.com/coding/iphone-tutorial-%E2%80%93-in-app-purchases/ but it seems these are outdated? For instance, I can't find where the developer is to reject the submission on iTunes connect.
Additionally, I am submitting the app the in-app purchase features included in the bundle(I don't have them stored on the server- I just want to unlock the code when the user purchases the feature). What is the best way to do this?
Thanks!
Some of the information in the linked tutorials is in fact outdated: I could create in app items in iTunes connect without having to submit (and reject) a binary first. Just be sure NOT to submit your items for review while you are testing. Also changes to the items (e.g. price tier) have been processed almost immediately and I did not had to wait 24 hours.
To unlock your feature, you may use storing and retrieving the purchased status in NSUserDefaults . But this could easily be tempered with by users with jailbreak or acces to the apps folder. Have a look at http://maniacdev.com/2011/08/open-source-ios-keychain-wrapper-for-easily-securing-user-data-for-your-app/ . This offers a simple way to store data in the keychain. Still this will not prevent someone to 'hack' your app and enable the purchased feature without actual purchase, but it's not that easy...
In-App Purchase development is definitely a pain point in iOS development - their sandboxing model for this is ridiculous.
Needless to say - the articles you're reading are still up to date. The developer reject is definitely the way to go (I think can do from within the binary details). One thing to remember is that you need to have accepted the appropriate contracts and tax schedules also - if you haven't then the store "just doesn't work".
One thing that caught me: when you submit your final version of the app - make sure you tick the in-app purchases to be included; else the in-app purchases won't be reviewed (and accepted)!
Update: Although it's pretty long... you may want to flick through this: https://itunesconnect.apple.com/docs/iTunesConnect_DeveloperGuide.pdf
Explains how to developer reject etc.

How many times a particular App has been downloaded -- where is this info?

Re: Apps in the Apple Store (iPhone &iPad) --
I've never seen a source that lists how many times a certain App has been downloaded / paid for. Is there one?
I'm deciding what to do for my next App and would like to check around and see how some individual Apps are selling that are in my area. To see if there's a market for whatever I'm going to do.
I believe Apple used to list how many times an individual App had been downloaded. But it's not there now.
Thank you.
Log onto your developer account and go to iTunes connect. Information about all of you apps is there with download reports, crash logs, etc.

App Name Expiry on iTunes Connect

Apple in iTunes Connect Developer Guide says:
App Name Expiry
Once you have created your app, and it is in the state Prepare For Upload or Waiting For Upload, you will have 180 days (6 months) from your creation date in iTunes Connect, to deliver a binary to Apple. If you do not deliver a binary before the 180-day deadline, your app will be deleted from iTunes Connect. As a result of this deletion, your app name will be able to be used by another developer and you cannot reuse the app name, SKU or Bundle ID. See the Deleting an App section of this guide to learn more about the ramifications of App Delete.
What's the meaning of "deliver a binary"? The app should be uploaded and approved in 180 days or just uploaded for review?
Is it possible to upload a preliminary binary and set the release date in the future (Availability Date setting within Rights and Pricing), so that before that date I can upload the final binary of my app?
I worked around this by preparing a version of my app that was good enough to be approved by Apple, even though it wasn't where I wanted it to be yet for the first release. I submitted it just before the 180 day deadline but set a future release date on the Rights and Pricing tab in iTunes Connect. Apple approved the binary and I continued working on the app with no further warnings about the name expiration. I was even able to move the release date further into the future to give myself more time.
I don't know what would have happened if my submission had been rejected by Apple or if I had rejected it myself. That might have been okay, but I preferred to play it safe and submit something that met all the review guidelines.
Now I'm still not ready for a public release, but ready for beta testing. I submitted my latest version for review and Apple approved that, too. At this point, even though the app still isn't publicly available, I can generate promo codes and give them to beta testers and they can download the app from the App Store using the promo codes. In my case this is better than using up more of the 100 devices available in my developer account. The trade-off is that each beta version I want to share has to go through the Apple review process.
Anyway, setting your release date in the future does let you meet the 180-day upload deadline without releasing something before you're ready. When you're ready to release, you can submit your final version, make sure it gets approved, then move the release date to the desired date.
Well most of us (fellow developers!!) will be happy to know that the grace period of 120 days has now been increased to 180 days which is roughly 6 months.
The following quote has been taken from iTunes Connect Guide
App Name Expiry
After creating your app and it is in the state Prepare For Upload or Waiting For Upload, you have 180 days (6 months) from your creation date in iTunes Connect to deliver a binary to Apple. If you do not deliver a binary before the 180-day deadline, your app is deleted from iTunes Connect. As a result of this deletion, your app name can be used by another developer and you cannot reuse the app name, SKU or bundle ID. See “Deleting an App” (page 90) to learn more about the ramifications of App Delete.`
Well, MisterX claims that once you upload a real binary, you can then reject it and never hear from Apple again. My company has had issues that prevent me from uploading their app (which I did) and I need to buy some time. The app uses their registered TM name so if I lose it I'm in big trouble!!!
Lets home MisterX was telling the truth!
EDIT: well, in fact, I did do an upload of the app once (you have to get all your permissions in order, certificates, etc and the binary has to pass the internal tests on using only legit frameworks etc). I immediately cancelled the binary, and I was able to keep my app name past until we were able to post it over 180 days after getting the name). This was as of May 2012 so YMMV.
iTunes App Name reservations no longer expire.
http://blog.salsitasoft.com/apples-new-app-name-reservation-policy/
I lost one of my app before and I can't take its name again. But now I have too many apps that are waiting in iTunes Connect about 1 year.
Deliver a binary - this is the zipped and compiled version of your app. This needs to be submitted for approval to apple.
Yes it is, but if you mess apple about then I don't know if they'll like it too much.
Basically the rules and what you're experiencing are there in order to stop people doing what you're doing, which is basically name squatting. Make the app, submit to itunes connect, upload the binary, get into the apple store. Don't just sit on names without an app, its not fair on the real developers trying to get real apps out there.
As guide says:
If you do not deliver a binary before
the 120-day deadline, your app will be
deleted from iTunes Connect
You must upload your binary for the application (ipa file) in maximum 120 days since you added in iTunes.
This binary will be the subject for approval. You cannot send one binary as a test one, and later the final binary. It will be rejected.
1) It should be just uploaded for review. Normally review takes about 7-10 days.
2) Yes it is possible to control the release date of the app. You can select it when you login to itunes connect and create a new app. One of the fields there asks for release date.
Also if you app is approved(Test binary in your case) you can also upload a newer version for the approved app (which can be your final binary) However the approval lies wholly on the review team at Apple.
I don't know this precisely, but by my experience and context, I think it means just uploading.
If you want to upload another binary, you should reject binary yourself and re-upload new binary, that means you should wait once more for review.
From what I understand, you just have to have the app uploaded. And if you really read exactly what the iTunes Connect Guide says (look at the wording), that 180 timer is only counting the number of days that your app is in either the Preparing For Upload or Waiting For Upload state. Take a look:
After creating your app and it is in the state Prepare For Upload or Waiting For Upload, you have 180 days (6 months) from your creation date in iTunes Connect to deliver a binary to Apple....
So a solution would be to upload whatever binary you have right now, then wait for the status to change to Waiting For Review. Once that happens, developer-reject the binary. Leave it in the Developer Rejected state until you're ready to re-upload. The reason I say this is because putting it back into Prepare For Upload or Waiting For Upload might start the 180 day timer again (though I'm not sure).
Play it safe. When you upload your binary upload something that would pass review and have a decent standing on the AppStore (even if it means "hiding" some features).
Let's hope this works! I have three days left before the 180 day deadline and I'm about to upload. I'll post to confirm if it works.

How can I reserve an iPhone app name in apple's developer portal?

I want to reserve an app name that I intend to build out over the next 90 days, how do I do this in apple's web developer portal?
Update 2015:
The limit of 180 days is now gone, Apple dropped the cap this year -
You can read the full licence here, gone.
Also, you may have noticed that the app name expiring topic is gone from the contact us question tree in iTunes Connect.
That being said, as you can see in the declaration:
You will not, directly or indirectly, commit ... (e.g., submitting
fraudulent reviews of Your own Application or any third party
application, choosing a name for Your Application that is
substantially similar to the name of a third party application in
order to create consumer confusion, or squatting on application names
to prevent legitimate third party use.
This lets us suppose that if you haven't updated your binary for a looong time and someone wants to use the same name, chances are that if they ask for it, they will get it, but yeah, technically speaking, you don't need to worry about this anymore.
Update 2014:
As stated in the iOS Developer Library, the limit is now 180 days:
Note: After you create your app and assign it a name, you have 180
days to deliver a binary or else your app will be deleted from iTunes
Connect so that the app name is free for use by the developer
community. Per section 3.2 of the iOS Developer Program License
Agreement, squatting on an app name to prevent legitimate third-party
use is prohibited. For information about email alerts you will receive
to remind you of this policy, see “App Name Expiry.”
90 days you say? This wouldn't be the first project that was supposed to take 90 days but needed more.
Once you fill in the information in itunes connect you have 120 days. After these 120 days your app name will become available for other developers. Yes, others, you can't take it again.
So you better make sure that you have your app ready for sale in 120 days.
You should read the itunes connect developer guide. It explains the process in detail. It's too complicated to answer this in a 5 minute stackoverflow answer. But the others outlined it, and I just wanted to mention = the 120 day limit. Happy squatting.
You don't do it in the Developer Portal, you do it in iTunes Connect.
Log in using your developer credentials
Click Manage Applications
Click Add New Application
Complete the basic information, including the app name
This resources implies that app names no longer expire.
TUTORIAL: RESERVE YOUR APP NAME FOREVER
Log in to https://itunesconnect.apple.com
Click Manage Your Apps
Click Add New Application
Complete the basic information, including the app name
Upload temporary icons and screenshots (for iPhone 4 & iPhone 5)
Change the app status to “Waiting for Upload”
Create a very simple app and use the new bundle ID
Submit the App to the App Store for Review (as you normally would)
After the status has changed to “Waiting for Review” go into iTunes Connect
Click Manage Your Apps > View Details > Binary Details
Click Reject this Binary
This will set the status of your application to “Developer Rejected”. Since you have successfully submitted a binary and had a “Waiting for Review” status it can sit in that status forever, therefore your app name is parked forever! Apple considers it a “real” app since it was officially submitted. So now sit on your great app name until you’re ready to finish development.
(Source 1, Source 2)
In iTunes Connect, go to Manage Your Apps and then Add New App. You can choose a name and enter other relevant information, but not upload binaries at this point. You'll also be able to set a release date in the future.
Go to iTunes Connect, then Manage Your Apps, then Add New App.
Create an App with placeholder data (you'll need screenshots, real or temporary).
If you don't upload an associated production [App Store] distribution App within 90 days, you'll lose the right to use that name forever.
Cyber-squatting on an App name you don't make use of is bad form.
If you decide you don't want to use the name, please delete it and free it up to someone who will.
You can add the application as suggested above. And about app name reservation here is my answer.
After creating your app and it is in the state Prepare For Upload or Waiting For Upload, you have 180 days (6 months) from your creation date in iTunes Connect to deliver a binary to Apple. If you do not deliver a binary before the 180-day deadline, your app is deleted from iTunes Connect. As a result of this deletion, your app name can be used by another developer and you cannot reuse the app name, SKU or bundle ID.
I got this information from apple documentation and the link is
http://developer.apple.com/library/ios/#documentation/LanguagesUtilities/Conceptual/iTunesConnect_Guide/8_AddingNewApps/AddingNewApps.html#//apple_ref/doc/uid/TP40011225-CH13-SW1
Search for "App Name Expiry" and it leads you to the required page.
I hope this helps all of us.