#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: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: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: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: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: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: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: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: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: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: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: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.