Developing Perspective

#21 - Submitting to the App Store


00:00:00   Hello, and welcome to Developing Perspective.

00:00:02   Developing Perspective is a new daily podcast discussing the news of Note and iOS, Apple

00:00:06   and the like.

00:00:07   I'm your host, David Smith.

00:00:08   I'm an independent iOS developer based in Herndon, Virginia.

00:00:11   This is show number 21, and today is Friday, September 2nd, 2011.

00:00:16   The format of Developing Perspective is that I'll cover a handful of links, articles, things

00:00:19   that I found interesting since the last show, and then move over to a more general discussion

00:00:23   towards the end.

00:00:24   The show will never be longer than 15 minutes.

00:00:26   Let's get to it.

00:00:27   All right.

00:00:28   First, I have a link that is about Linode.com, which is where I do all of my VPS hosting.

00:00:34   And specifically, they just recently announced that they're lowering the cost of bandwidth

00:00:39   traffic to and from their servers.

00:00:41   And specifically, they're reducing to zero all incoming traffic and reducing dramatically

00:00:46   the cost of outgoing traffic above the normal limits that they give you.

00:00:52   This is just one of those things that's just great news for anybody hosting there because

00:00:56   all of a sudden something that you're paying for anyway just got a whole lot cheaper and

00:01:00   better.

00:01:01   And just another reason for me to recommend Linode.

00:01:03   If you're at all interested in doing somewhat more dedicated hosting, but for something

00:01:09   in a VPS environment, which is much – if you're not familiar, is basically you get

00:01:14   dedicated use of a virtual machine.

00:01:16   So rather than having the actual physical hardware be something that you control, it's

00:01:20   something that you have a quarter of a machine or an eighth of a machine, depending on whatever

00:01:25   configuration you're on, which gives you somewhat more reliable performance and dependability

00:01:30   versus something like Amazon EC2 or something like that, where it's completely virtualized

00:01:34   and your machine could be running around all over the place, switching from machine to

00:01:38   machine and all kinds of things that make things much more unpredictable.

00:01:41   And VPS is typically much more performant, I would say, than a cloud solution, but typically

00:01:48   at a much cheaper rate.

00:01:49   Linode is where I've been doing my hosting for years and years, and there's nothing but

00:01:53   good things to say about them.

00:01:54   All right, next I have a texture tutorial that I have found, that I found from Louis

00:02:01   Mantilla talking about how he does textures for some of his wallpapers.

00:02:06   And it's just the actual tutorial itself is, you know, somewhat useful and somewhat interesting.

00:02:11   The thing I really recommend this most is just, I always think it's amazing to kind

00:02:15   of look over the shoulder and watch someone who is really, really good at what they do,

00:02:20   do what they do.

00:02:21   It's kind of just watching a craftsman at work.

00:02:23   It's just kind of really cool to watch the way he can use Photoshop and kind of bend

00:02:28   it to his will.

00:02:29   So just definitely worth checking out.

00:02:30   It's a pretty short video, but kind of a lot of good nuggets in there.

00:02:34   All right.

00:02:35   And lastly, I have a link over to the Fog Creep blog, which you may remember I linked

00:02:39   to a thing a couple weeks ago about.

00:02:41   They have sort of the Price of Developer Happiness series, and they have a part two in that series.

00:02:47   This one's talking about the importance of developer offices, and specifically how they

00:02:51   spend quite a bit of money to ensure that all of their developers have a private office.

00:02:56   And something that I definitely recommend, sort of anyone who can afford and do is definitely

00:03:02   a big plus as a developer.

00:03:04   Whenever I worked in large organizations, we're having a lot of, you know, working in

00:03:07   a busy office is something that is just sort of sapping to your focus for your ability

00:03:12   to get work done in a way that having your own space and something that you can kind

00:03:16   of go into a cave and knock stuff out is really good.

00:03:19   It's always kind of the funny thing if you walk around a typical company that kind of

00:03:23   mixes developers with non-developers, is you can tell the developer apart because they're

00:03:27   almost always the ones with the big giant headphones on, kind of trying to block out

00:03:30   the world.

00:03:31   Such an interesting article to read, and if you haven't read the first one, I definitely

00:03:37   recommend giving that a peruse as well.

00:03:40   All right, that's it for links today.

00:03:43   Sort of a short list there, but I was going to move over to something that I wanted to

00:03:47   sure I have enough time to cover and do it justice.

00:03:51   And what I'm going to be talking about today is the process of submitting an application.

00:03:55   So if you're familiar from two episodes ago, I kind of walked about the setup process of

00:04:00   getting an app ready for the store.

00:04:02   And this time I'm going to kind of talk about the process once you sort of have your final

00:04:05   release candidate and you're about to submit it, and kind of what that looks like, where

00:04:09   you go, kind of what to expect from that process.

00:04:12   So basically, once you have your final sort of code set that you're going to deploy, you

00:04:18   go into Xcode, you select your distribution certificate rather than your developer certificate,

00:04:23   and you do a build.

00:04:24   And this is sort of, you know, build an archive, and it creates sort of a bundle with all the

00:04:28   relevant information for you in the organizer that you can then use to submit to the application.

00:04:35   Once you have that sort of that build ready, the next place you need to go is into iTunes

00:04:38   Connect.

00:04:39   iTunes Connect is sort of the interface that you have to the App Store itself, and really

00:04:43   to all of the financial, contractual, those types of parts of the app process.

00:04:48   So the developer portal, which is developer.apple.com, is where you go for all the technical things,

00:04:52   new betas, documentation, setting up device profiles, those types of things.

00:04:57   iTunes Connect.apple.com is where you go for all of the sort of the more financial and

00:05:01   operational parts of the developer process.

00:05:05   When you first sign up for your developer account, you'll need to go in there to sign

00:05:09   a bunch of contracts to set up where you want your money to go, those types of things.

00:05:13   And once you've done all those, you should go ready to submit an application, open up

00:05:16   iTunes Connect, click on Manage Your Applications, say I want to create a new application.

00:05:21   This will walk you through a series of sort of steps and questions that it's going to

00:05:25   be asking you.

00:05:26   It'll ask you what the bundle ID for the app is, what the name of the application is, how

00:05:31   much you want to charge for it, where do you want to make it available, all these kinds

00:05:34   of questions.

00:05:35   It's important that you sit down and walk through this process thoughtfully.

00:05:41   And often I'd recommend going through it in a fake way or at least reading the iTunes

00:05:45   Connect guide if you're not familiar with the process up front so that you get a sense

00:05:50   of what constraints you have, rules about the process, and so on, so you're not surprised

00:05:54   at the end.

00:05:55   Especially also if you're just submitting an application for a client, this is also

00:05:58   important that you put it in front of them to make sure that they understand how the

00:06:02   process works and sort of all the diverse ins and outs of it so they're not surprised

00:06:07   by like needing to create this kind of review copy for the description or choosing which

00:06:13   screenshots you can show, how many screenshots you can have, those types of things.

00:06:17   Basically once you've done sort of the initial header information, the next kind of questions

00:06:21   are fairly straightforward.

00:06:22   It'll ask you what version the application is, what the description of the application

00:06:26   is.

00:06:27   It'll ask you what keywords you'd like to use.

00:06:30   are significant because rather than what they used to do probably over a year ago, Apple

00:06:35   no longer searches the full text of your description as part of its search algorithm. It's based

00:06:41   entirely on developer name, title, and keywords. And keywords are restricted to things that

00:06:46   are general and non-trademarked, typically. So you're not allowed to do things like referencing

00:06:53   other competing products, typically those types of things would typically get you in

00:06:56   trouble and potentially cause problems with your approval.

00:07:01   You can sometimes get away with some of that in terms of, especially if your competitors

00:07:04   use sort of general purpose names in their app description or those types of things.

00:07:12   So, you know, so say for example, someone had a big successful game was called First

00:07:18   Person Shooter, and your app was a first person shooter, you could pretty reasonably use that

00:07:23   as something in your name because they're

00:07:24   kind of trademarking a general purpose term.

00:07:27   But if you're trying to create the next Angry Birds,

00:07:29   you probably can't throw Angry Birds as one of your keywords.

00:07:32   You just get rejected.

00:07:33   It's not really worth trying.

00:07:35   And next, you'd have to throw in a couple of things,

00:07:37   like what the copyright information for their app is,

00:07:41   and then a bunch of URLs.

00:07:42   You'll need where your support emails will go to,

00:07:44   the web page you want people to go to for the application,

00:07:48   and those types of things.

00:07:49   And then you'll get to the last section,

00:07:51   which is sort of collecting rating information.

00:07:55   And this is where you'll rate your app in terms of a variety

00:07:58   of things, in terms of language in it, content,

00:08:02   whether it involves gambling or tobacco,

00:08:03   all kinds of different things like that.

00:08:05   And this works out whatever the age rating

00:08:08   is for your application.

00:08:10   And above a certain rating, Apple won't even sell it.

00:08:12   So if you're doing something that's at all dubious,

00:08:13   you're definitely going to want to go in there and see

00:08:16   where you'd fall.

00:08:17   And the same kind of thing as with keywords.

00:08:19   Trying to misrepresent your app here is definitely not something that you'd want to do because

00:08:22   you'll likely just get rejected.

00:08:24   Lastly, the layout of all the image assets for your application.

00:08:27   So this includes an icon.

00:08:28   This is a large version of your icon that's 512 by 512 pixels.

00:08:33   And it's important that your icon is similar or roughly identical to the smaller versions

00:08:38   of your application that you had bundled with your application.

00:08:41   And these are of various sizes.

00:08:43   I think it's 57 pixels on an iPhone or double that on a retina display, 72 on an iPad.

00:08:49   and a variety of other sizes, so that you've kind of had created for the shrunk ones that

00:08:53   are actually shown on the device.

00:08:55   But the 512 by 512 needs to be a similar representation of what they're going to see on the device.

00:09:01   And so I've had apps rejected because, for example, I changed the layout or color slightly

00:09:08   in the sort of the 512 by 512 because it looked better when it was made that large.

00:09:14   You know, because some things where you have to cut some corners in terms of the complexity

00:09:18   of your icon when you're compressing it down.

00:09:21   And to some degree, you can certainly make your 512 512 a more richer version of your

00:09:25   small one.

00:09:26   You just have to keep consistent in terms of recognizability that if you take your 512

00:09:30   512, and just do a simple like Photoshop resize down, that it looks similar enough that people

00:09:35   aren't going to be confused.

00:09:37   And then after that, you submit screenshots, you can submit up to five screenshots for

00:09:41   either each either platform.

00:09:43   So for iPhone, iPod touch, and for iPad, which get you a unique set of five screenshots for

00:09:49   each of those, they can be either orientation.

00:09:51   Something that they recommend is that you take the status bar off the screenshot so

00:09:55   that you don't have that sort of little black bar on the top, unless for some reason your

00:10:00   application makes use of that space.

00:10:03   And generally that's sort of the process in iTunes Connect.

00:10:05   Once you go through all that, you'll hit sort of ready to go.

00:10:09   And assuming you pass all of the automated tests, so things for checks or keywords for

00:10:15   copyrighted phrases and those types of things, make sure you didn't miss any fields.

00:10:19   At that point, your application will change to, let's see, "Ready for upload," I think

00:10:27   it's called.

00:10:28   And then at that point, you'll hit a button that says, "I'm ready to submit my binary."

00:10:33   And basically, it's important that you are absolutely sure that a lot of the information

00:10:36   is exactly how you want it when you hit that button, because a lot of the fields get locked

00:10:40   once you hit that, and you can't then change them until you submit a binary.

00:10:45   And if you wanted to change it, you'd have to submit a binary, then reject the binary,

00:10:48   and then change them, which is a bit of a cumbersome process.

00:10:50   So make sure that everything is good to go before you hit "Ready to Submit," at which

00:10:54   point your application switches from "Ready for Upload" to "Waiting for Upload."

00:10:59   And at this point, you go into Xcode, select the archive that you had just built, and go

00:11:05   Open the organizer and say submit.

00:11:07   It'll ask you for your Apple ID.

00:11:08   You log in.

00:11:09   It'll come up with a list of applications that are available.

00:11:12   You choose whichever one this application is and hit submit.

00:11:15   At this point, Xcode will run a series of automated tests on your application, which

00:11:21   you could have also run if you hit validate rather than submit in the organizer.

00:11:25   These do some basic checks, making sure you have an icon, making sure you have your P-Lifts

00:11:29   formatted correctly, a bunch of things like that.

00:11:31   Increasingly, I think that's also getting more and more sophisticated to catch things

00:11:35   like private API tests and all kinds of things like that, making sure your signing credentials

00:11:40   are correct.

00:11:41   So you may -- and if anything's wrong, you'll just sort of immediately get a binary rejected

00:11:46   message, at which point, if assuming everything passed, your application would then go for

00:11:51   waiting for review.

00:11:53   And so waiting for review is just essentially your -- you've just been added to the line

00:11:56   that Apple keeps for reviewing the application.

00:11:59   At some point later, it'll then switch to in review, and then once it's in review, it

00:12:04   very quickly typically then moves into either rejected or approved.

00:12:09   Approved Apple calls ready for sale, and so you'll get a couple of emails from iTunes

00:12:12   Connect for this.

00:12:13   Once it gets approved, it would go to interview, and then processing for App Store, ready for

00:12:18   sale, assuming everything went well.

00:12:21   Something I'd recommend doing is installing the iTunes Connect mobile application onto

00:12:25   your phone or iPod touch or iPad.

00:12:29   And one of the nice things I like in there is that you can choose to get push notifications

00:12:34   for status changes, which is just kind of a nice way, especially as you get towards

00:12:39   launching an app, to know exactly when it is it got approved, to know when it's changing

00:12:44   status is just something that I quite like.

00:12:46   And you can get that.

00:12:47   You get an email, but it's kind of nice to get a push notification for that.

00:12:51   And you just get that if you install the mobile application, which is available in iTunes

00:12:54   Connect kind of in the top third of the sort of home screen where it has a bunch of sort

00:12:59   of updates and news information.

00:13:02   And basically that's it for the submission process.

00:13:05   At that point if you want to submit an update, you'd go and say add a new version to the

00:13:08   Xcode or in iTunes Connect you'd say add a new version, give it a version number, tell

00:13:12   it what's changed, say ready for upload, and then go into Xcode, do another build, and

00:13:17   submit it.

00:13:18   And you kind of repeat the process however you need to.

00:13:20   And that's it for the general discussion.

00:13:22   Hopefully that's a helpful overview if you've never submitted an app before and kind of

00:13:26   gives you a flavor for what to expect and kind of reserve roughly what you need to do

00:13:30   that.

00:13:31   Otherwise, have a good weekend.

00:13:32   Happy coding.

00:13:34   And if you like the show, make sure you tell a friend, tell two, tell three.

00:13:37   If you have any questions or comments, you have to go to the contact page which is developingperspective.com/contact

00:13:45   or hit me up on Twitter.

00:13:46   I am @_davidsmith.

00:13:47   Otherwise, have a good weekend and I'll talk to you on Monday.