PodSearch

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.