21: App Store Rejection
00:00:00
◼
►
Welcome to Under the Radar, a show about independent iOS app development.
00:00:04
◼
►
I'm Marco Arment. And I'm David Smith. Under the Radar is never longer than 30
00:00:08
◼
►
minutes, so let's get started. So today we wanted
00:00:12
◼
►
to talk a little bit about App Review and
00:00:16
◼
►
specifically avoiding App Store rejection. I've run into some
00:00:20
◼
►
recent challenges with App Review and this is just sort of par for the course
00:00:24
◼
►
and it seemed like a good opportunity to talk about this. Like, it's
00:00:28
◼
►
And as much as it's easy and nice and fun to talk about the building an app process,
00:00:33
◼
►
like the part of actually designing it, implementing it, testing it, and even in some ways even
00:00:39
◼
►
like submitting it, that process, like at some point your app is going to go through
00:00:44
◼
►
the app review process if you're an iOS developer.
00:00:48
◼
►
And there's a very reasonable chance that at some point one of your apps is going to
00:00:54
◼
►
be rejected.
00:00:56
◼
►
And it's probably worth saying that this is very common.
00:00:59
◼
►
Like I've been rejected many times over the years, I've been doing this for seven
00:01:03
◼
►
years, and it isn't like, you know, so somehow when I get rejected, it's always a bit
00:01:08
◼
►
sad and complicated, but it isn't something that's like life-shattering and like, "Oh
00:01:14
◼
►
no, this is terrible," because, you know, it's a process and you can usually work
00:01:18
◼
►
your way through, like, with a very few exceptions, almost all the times I've had an app rejected,
00:01:23
◼
►
I end up working with App Review, it's either a misunderstanding or I just need to change
00:01:27
◼
►
something small and subtle in my app, and you can work your way through.
00:01:32
◼
►
But there's a lot of things that you can probably do to avoid it in the first place, and then
00:01:36
◼
►
just sort of some things that I think we're going to talk about too of things to--how
00:01:40
◼
►
to respond in an appropriate and constructive way when things don't go quite your way.
00:01:46
◼
►
Because it's a big part of the process, and it's also certainly something you want to
00:01:49
◼
►
keep in mind when you're planning your release, especially if you're trying to release something
00:01:54
◼
►
with a specific date in mind, I think right now Apple quotes that 98% of new apps are
00:02:00
◼
►
reviewed within five days right now, on their support website, which I say, take them at
00:02:06
◼
►
their word, that's probably true. But that doesn't mean that once you submit, your app
00:02:11
◼
►
will be ready in five days, because every time you get rejected, you kind of have to
00:02:15
◼
►
to restart that clock, and so I tend to expect things
00:02:19
◼
►
to take at least two weeks, like 14 days,
00:02:23
◼
►
to be, you know, from when I submit it
00:02:24
◼
►
to when it will be ready for the store,
00:02:26
◼
►
and by and large, unless, you know,
00:02:28
◼
►
things are going very problematic,
00:02:30
◼
►
or it's a really, really, really busy time of the year
00:02:32
◼
►
that usually sort of seems to work out.
00:02:35
◼
►
- Yeah, I mean, you know, this is probably a bigger problem
00:02:38
◼
►
with consulting where you have to,
00:02:40
◼
►
where the client wants to know, like,
00:02:41
◼
►
when is this gonna be ready, and you kinda can't give them
00:02:44
◼
►
a guaranteed date.
00:02:47
◼
►
But anytime you're planning any kind of marketing push,
00:02:49
◼
►
which you probably should be with almost any kind of app
00:02:51
◼
►
you make these days, it is kind of a problem
00:02:53
◼
►
to not know when it will actually be released.
00:02:56
◼
►
And if you can have everything kind of uncommitted
00:03:01
◼
►
and just kind of in draft mode with all your marketing
00:03:04
◼
►
and everything, then you can just release it
00:03:07
◼
►
whenever you get approved or within an ideal day
00:03:11
◼
►
of if you wanna wait 'til it's not a weekend
00:03:12
◼
►
wait till it's not midnight or whatever,
00:03:14
◼
►
that's probably a better idea.
00:03:16
◼
►
But otherwise, if you have to commit
00:03:19
◼
►
to a firm date to somebody, the only real way to do that
00:03:23
◼
►
is to set the app for hold for developer release
00:03:26
◼
►
and get it approved first and then set a date.
00:03:31
◼
►
And of course, that's very time consuming,
00:03:32
◼
►
'cause then you have to basically write the entire app
00:03:35
◼
►
like maybe a month before you wanna actually release it
00:03:37
◼
►
because you have to allow all these paddings for everything.
00:03:40
◼
►
And so I think it's just, you know, anything you can do both for your client if you're
00:03:44
◼
►
a consultant or for yourself if you're not, and anything you can do to kind of reduce
00:03:49
◼
►
people's expectations of having a precise release date for an App Store app will help
00:03:54
◼
►
you there because that's the reality of what we're dealing with here with App Review.
00:03:59
◼
►
And it's always been that way and it's always been, you know, it's always been you can get
00:04:03
◼
►
it released within a week most of the time, but not all the time and you can't guarantee
00:04:09
◼
►
that and it might be longer, you know, and you can't even say, oh, well, maybe we'll
00:04:13
◼
►
get rejected once and then second time we'll get through. You can't even say that because
00:04:17
◼
►
second time, you know, first of all, it might take longer. There's occasionally times where
00:04:21
◼
►
you get stuck in a preview for weeks and you don't really know why and maybe you got like
00:04:25
◼
►
email developer relations to have them kick it for you and get it going again or something
00:04:29
◼
►
and sometimes things require manager review if you're like kind of on the edge of something
00:04:33
◼
►
which we'll get to. So there's, you know, you can never really be sure how long it will
00:04:38
◼
►
take. And so anything you can do to not depend on that, or to not guarantee that to anybody
00:04:43
◼
►
else, the more you can do that the better.
00:04:46
◼
►
Yeah. And it's just sort of part of the process. And it's probably one of the things to keep
00:04:49
◼
►
in mind with, like, the number one rule of app review in some ways is to, like, keep
00:04:53
◼
►
calm and try and not have it be a pressured thing, which is very much easier said than
00:04:59
◼
►
done. And I'm speaking that from very specific experience where it's hard to not be calm,
00:05:05
◼
►
anything you can do, like you're sort of like to take pressure off that process, to have
00:05:09
◼
►
it not be like, "But I have to have this out by this particular day." Like that is a, like
00:05:15
◼
►
asking for trouble because this is the process we have. Like App Review exists for a purpose,
00:05:20
◼
►
you could disagree with that purpose or not, but like it exists, this is the, like these
00:05:23
◼
►
are the rules of the store, and so it's just something that we have to, as developers,
00:05:28
◼
►
keep in mind and plan accordingly.
00:05:29
◼
►
- Yeah, it's not going anywhere.
00:05:31
◼
►
Like if you're sitting, I mean,
00:05:34
◼
►
even the most hardcore developers
00:05:37
◼
►
who were really super against the idea of the App Store
00:05:39
◼
►
in the early days, I don't know anybody
00:05:42
◼
►
who is still fighting the fight of saying,
00:05:44
◼
►
there shouldn't be App Review.
00:05:46
◼
►
Everyone fought that fight in 2008,
00:05:48
◼
►
and I don't think anyone is still expecting that to change.
00:05:52
◼
►
And ultimately, I like the idea of App Review,
00:05:56
◼
►
and I usually like the implementation of it.
00:05:58
◼
►
there are parts of it that I think need to be reconsidered
00:06:02
◼
►
or need to be improved, but overall,
00:06:05
◼
►
the concept of App Review and most of the execution of it
00:06:09
◼
►
I think is actually beneficial to both us and our customers.
00:06:13
◼
►
And as an App Store customer also,
00:06:15
◼
►
I appreciate that it's there.
00:06:17
◼
►
- Exactly, 'cause it's, you know, its goal is to try
00:06:20
◼
►
and maintain sort of a certain, like,
00:06:22
◼
►
be this line in the sand to try and say, like,
00:06:25
◼
►
you have to meet this bar.
00:06:27
◼
►
And we can argue about where that bar is, but yeah, I'm very glad that there is a bar,
00:06:32
◼
►
and both it's helpful as a developer to have a goal in mind.
00:06:36
◼
►
And I think in general I wish the bar were a bit higher in a lot of cases, but it's the
00:06:42
◼
►
bar that exists that we have to at the very least reach.
00:06:47
◼
►
So let's probably start talking about that bar.
00:06:51
◼
►
And there's a couple of links we'll have in the show notes about this.
00:06:53
◼
►
Like Apple is pretty helpful in terms of their documentation about app review, about what
00:06:58
◼
►
to expect, and they have a really helpful page that if you haven't looked at, you're
00:07:02
◼
►
kind of doing this wrong, of common app rejection reasons.
00:07:07
◼
►
And they have a page where they list out like what are these most common reasons, and they
00:07:11
◼
►
even include at the bottom like for certain periods of time, they'll say what the most
00:07:16
◼
►
common reasons were for app rejections.
00:07:18
◼
►
But before we get into those, the first thing you always have to do when you think about
00:07:22
◼
►
app review is read the actual app review guidelines. Like, if you haven't read the rules, there's
00:07:28
◼
►
really no way that you could reasonably expect for your app to pass review except by luck.
00:07:34
◼
►
And there's a lot of them. I counted them up in preparation for today's show, and there
00:07:38
◼
►
are currently 182 app review rules, and they're broken down into all kinds of different categories,
00:07:45
◼
►
they're all different kinds, like there's ones that are functional, there's ones that
00:07:47
◼
►
that are more privacy related.
00:07:49
◼
►
There's ones that only apply to certain apps.
00:07:52
◼
►
So if you're a health app, there's
00:07:53
◼
►
certain rules that apply to you.
00:07:55
◼
►
If you're a insurance company, there's certain rules.
00:07:59
◼
►
There's all kinds of very-- some of them are very specific.
00:08:01
◼
►
Some of them are very broad.
00:08:03
◼
►
And it's one of these things that periodically you
00:08:04
◼
►
should probably just read through the app review
00:08:07
◼
►
guidelines and make sure that you at least know vaguely
00:08:09
◼
►
what's going on there.
00:08:11
◼
►
It's because ignorance of the rule
00:08:13
◼
►
isn't going to be a particularly useful defense if app review
00:08:16
◼
►
back and says, "Hey, you need to change this." And you're like, "Oh, I didn't know." It's
00:08:20
◼
►
like, well, it's in the guidelines. But on that page, the most interesting thing that
00:08:27
◼
►
I see that when they break down the typical reasons that people get rejected, at least
00:08:34
◼
►
a quarter of them are in some ways entirely avoidable. So 14 percent, they said, of app
00:08:40
◼
►
projections happen because the developer did not provide enough information. That's like
00:08:45
◼
►
the catchall, more information needed, which I would take to mean you didn't do something
00:08:52
◼
►
complete in your App Store description or your screenshots, or you're doing something
00:08:57
◼
►
funny that they need more clarification on, which is, just as a side note, when you submit
00:09:03
◼
►
an app, there's a little box that says Reviewer Notes. If you're not putting anything in there,
00:09:08
◼
►
probably sort of doing it wrong because that's your opportunity. If there's anything that's
00:09:16
◼
►
weird or edge casey or that your reviewer could get confused by, you can write a little
00:09:21
◼
►
note and the reviewer will read it before they look at your app. And so anytime you're
00:09:27
◼
►
doing anything that could be problematic, kind of preempt that by saying, "Hey, I'm
00:09:32
◼
►
doing this in this app, maybe if it requires a certain kind of permission, you can explain
00:09:39
◼
►
why it requires that permission. So in Podometer++, I have a little note that I usually submit
00:09:44
◼
►
along with it that says it requires motion tracking permission, and that's what it uses
00:09:49
◼
►
to count your steps. If you don't provide this information, it shows you an informational
00:09:52
◼
►
screen in the app indicating that it needs that permission in order to gather the data,
00:09:57
◼
►
or something like that. But like 14% of app projections are because you didn't provide
00:10:02
◼
►
enough information. And then another 10% are apps that exhibit bugs, which is typically,
00:10:09
◼
►
in this case, I think, crashes, is probably the biggest category of bugs. But like, that
00:10:15
◼
►
ultimately, if you're submitting an app that's crashing in the brief window that the app
00:10:20
◼
►
reviewer is looking at it, like something's got missed in QA, probably, because they're
00:10:26
◼
►
really not, it's not the kind of bug that they're going to be importing 10,000 records
00:10:30
◼
►
into your database and really working, like pushing your app to the limit. I expect they're
00:10:35
◼
►
probably sitting down with your app and using it for five minutes at most. And so if it
00:10:40
◼
►
crashes in that first five minutes, you've probably done something not quite right in
00:10:45
◼
►
your testing phase. You should probably have been able to replicate the crash that they're
00:10:49
◼
►
having in the first place.
00:10:50
◼
►
- Yeah, I mean, and this is one of the reasons why
00:10:54
◼
►
app review is so good for everybody,
00:10:58
◼
►
because, yeah, I mean, there are lots of crashes
00:11:01
◼
►
that get through review and that ship to customers,
00:11:03
◼
►
but I know a lot of developers, myself included,
00:11:07
◼
►
who app review has saved us from accidentally shipping
00:11:11
◼
►
something that would have affected a lot more people.
00:11:13
◼
►
Like, you know, they test a lot about the app.
00:11:16
◼
►
Like, you know, for instance, like if your new user
00:11:20
◼
►
or login process is broken and you ship a bug fix update
00:11:24
◼
►
that you think it's just a bug fix
00:11:25
◼
►
and you don't test new user logins
00:11:27
◼
►
because you didn't hit that during your hour of testing
00:11:30
◼
►
on your own phone, they will hit that
00:11:33
◼
►
and then you don't accidentally break the app
00:11:35
◼
►
for all of your customers during the next week
00:11:38
◼
►
while you can get another bug fix out.
00:11:40
◼
►
So this is like, the guideline where if your app crashes
00:11:45
◼
►
or exhibits obvious bugs during review,
00:11:47
◼
►
you will definitely get rejected.
00:11:48
◼
►
that is great, and I think that's totally unarguable
00:11:52
◼
►
whether that should be there or not.
00:11:54
◼
►
- Exactly, yeah.
00:11:54
◼
►
Like, that's the kind of, and it's,
00:11:56
◼
►
I will, like, it certainly happened to me too, yeah,
00:11:58
◼
►
where you, it's a lovely thing where they'll catch something
00:12:02
◼
►
that you just, it's usually not hard to recreate,
00:12:04
◼
►
but it's just a situation that you may not,
00:12:06
◼
►
you may have missed.
00:12:07
◼
►
Like, it's on a particular device,
00:12:10
◼
►
or like on a fresh install on a particular device,
00:12:12
◼
►
you'll have an issue, or things like that.
00:12:15
◼
►
And it certainly is a nice thing that it's like,
00:12:16
◼
►
there's this last sort of sanity process.
00:12:19
◼
►
Definitely don't rely on it as a QA process.
00:12:21
◼
►
App Review is not QA.
00:12:23
◼
►
It's not like, oh, I don't need to worry about doing basic QA
00:12:27
◼
►
because App Review will find it.
00:12:28
◼
►
That is entirely the wrong way to look at it.
00:12:31
◼
►
It's more like it's this last chance
00:12:33
◼
►
to catch a bug that may otherwise get through.
00:12:39
◼
►
But once we're through, kind of like those first two,
00:12:41
◼
►
like you just didn't provide enough information to Apple,
00:12:44
◼
►
or there's obvious and glaring bugs in it.
00:12:48
◼
►
Well, then we start to get into rules and things that
00:12:52
◼
►
become much more squishy.
00:12:56
◼
►
Things like rule 10.6 is one of these,
00:13:00
◼
►
"Apple and our customers place a high value
00:13:02
◼
►
on simple, refined, creative, well-thought-out interfaces.
00:13:07
◼
►
They take more work, but they're worth it.
00:13:08
◼
►
And Apple sets a high bar.
00:13:09
◼
►
If your user interface is complex and less than very
00:13:13
◼
►
good, it may be rejected.
00:13:17
◼
►
- And like 6% of apps are rejected
00:13:19
◼
►
for not meeting that criteria.
00:13:21
◼
►
- I wonder, I'd love to see those 6%.
00:13:23
◼
►
Because if you look at what's in the store,
00:13:26
◼
►
I would describe many apps that I come across in the store
00:13:30
◼
►
as having UIs that are less than very good.
00:13:34
◼
►
So you gotta wonder what else they're seeing
00:13:36
◼
►
that gets that 6% rejection.
00:13:38
◼
►
'Cause this is one of those areas
00:13:39
◼
►
where I would love for the bar to be higher.
00:13:41
◼
►
- Yeah, exactly.
00:13:42
◼
►
There are some of the guidelines that are negative, and there are some that are almost
00:13:49
◼
►
more positive, more aspirational.
00:13:51
◼
►
I like the concept of this rule, and I like the way it's written, even.
00:13:54
◼
►
I think that's a really good thing, and being more strict on that is certainly something
00:13:59
◼
►
that could be helpful.
00:14:01
◼
►
But it's certainly something to keep in mind, that yeah, Apple is going to look at your
00:14:05
◼
►
app, and if it really is just kind of shoddy and thrown together, there's a good chance
00:14:10
◼
►
that it'll be rejected as a result.
00:14:12
◼
►
And so, you know, like, work hard on your app,
00:14:16
◼
►
make it look good, you know, try your best.
00:14:17
◼
►
Like, especially in iOS, since like the iOS 7 stuff,
00:14:20
◼
►
like a lot of these things are much easier to do
00:14:23
◼
►
than they may have once been,
00:14:24
◼
►
to kind of make an app that looks and feels at home
00:14:27
◼
►
on the platform and, you know,
00:14:29
◼
►
is good in that kind of visual sense.
00:14:32
◼
►
But, you know, like know that if you don't,
00:14:35
◼
►
you might get called on this.
00:14:37
◼
►
- Yeah, and it's, this is one of those rules
00:14:39
◼
►
is that it's very hard to enforce consistently
00:14:43
◼
►
by a large staff of a whole bunch of humans.
00:14:46
◼
►
And this is part of the problem with that review.
00:14:47
◼
►
One of the biggest problems they have
00:14:49
◼
►
is just inconsistency of enforcement.
00:14:52
◼
►
And we can sit here, as we have, and say,
00:14:55
◼
►
we'd love for the bar to be higher
00:14:57
◼
►
on the UI quality rule, but the higher they make it,
00:15:01
◼
►
the more we're gonna see people getting rejected
00:15:04
◼
►
for things that are arguable
00:15:06
◼
►
or that they shouldn't have been rejected for.
00:15:08
◼
►
and we don't like that and we blog about that.
00:15:11
◼
►
So, you know, I don't know.
00:15:13
◼
►
I think this is one of those things
00:15:16
◼
►
where I wish the rule was more strict,
00:15:19
◼
►
but if it were, it might just cause more problems.
00:15:22
◼
►
- Maybe, yeah.
00:15:23
◼
►
And it's probably also where it's like
00:15:26
◼
►
the reality with app reviews,
00:15:27
◼
►
and this is something very important
00:15:29
◼
►
when you are dealing with a rejection,
00:15:31
◼
►
is the understanding that the people
00:15:33
◼
►
who are doing app review are people.
00:15:36
◼
►
Like, they're individuals whose job it is
00:15:38
◼
►
go to work every day and they sit down and they go through applications and they make
00:15:43
◼
►
decisions about them, and people are flawed and make mistakes, and if they make mistakes,
00:15:48
◼
►
in my experience, AppleView is very good about correcting those mistakes, but inevitably
00:15:54
◼
►
there's going to be subjective decisions that someone has to make. They have to look at
00:15:58
◼
►
it and it's like, "Is this good enough? Is this good enough?" Something like, if your
00:16:03
◼
►
app crashes, it's a binary thing. As soon as your app crashes, it's failed from review.
00:16:08
◼
►
just sort of like the rule. It's something like a, you know, a refined quality interface.
00:16:14
◼
►
Like finding that line is inevitably going to be more difficult. And so just sort of
00:16:19
◼
►
give App Review some grace about if we're having a mis—if you have a misunderstanding
00:16:24
◼
►
with them about what that might be, then, you know, just kind of have to work through
00:16:29
◼
►
that at a human level that you're just trying to convince somebody who's doing their job,
00:16:34
◼
►
you know, that your app is actually good enough.
00:16:37
◼
►
Our sponsor this week is Hover.
00:16:39
◼
►
Quite simply, Hover is the best way
00:16:41
◼
►
to buy and manage domain names.
00:16:43
◼
►
It's my place of choice, honestly,
00:16:44
◼
►
for registering all of my domains.
00:16:45
◼
►
I go there first and I just, I stop there
00:16:48
◼
►
and I buy things there because it's just really good.
00:16:50
◼
►
It's well designed, it's hassle-free,
00:16:53
◼
►
it's very respectful of you and your time
00:16:55
◼
►
and your money and your privacy.
00:16:57
◼
►
Hover is great for buying domains.
00:16:59
◼
►
They have all the big TLDs, all the top-level domains
00:17:01
◼
►
that you might need, all the crazy new ones,
00:17:03
◼
►
plus all the nice, you know, conservative old ones
00:17:05
◼
►
that I tend to prefer most of the time.
00:17:07
◼
►
And they have great prices.
00:17:10
◼
►
Dot-com domains are now just 12.99 a year.
00:17:13
◼
►
That includes who is privacy for free
00:17:15
◼
►
along with all their other domain names that include that.
00:17:19
◼
►
They also have fantastic customer support.
00:17:20
◼
►
Hover has a no hold, no wait,
00:17:22
◼
►
no transfer phone support policy.
00:17:24
◼
►
So you can just call them.
00:17:25
◼
►
This is great.
00:17:26
◼
►
You call them and a human being picks up the phone
00:17:28
◼
►
and that person helps you.
00:17:29
◼
►
It's amazing.
00:17:30
◼
►
It's like the way everything used to work
00:17:31
◼
►
before everything got horrible.
00:17:32
◼
►
Hover still has that today for domain registration.
00:17:35
◼
►
Plus, of course, you can email them if you need to,
00:17:37
◼
►
everything else, they have great support.
00:17:39
◼
►
They have volume discounts for bulk domain renewal,
00:17:42
◼
►
they have custom email solutions,
00:17:43
◼
►
you can have email hosted there
00:17:45
◼
►
or forwarded to the domain of your choice.
00:17:47
◼
►
They even have an awesome new feature called Hover Connect,
00:17:49
◼
►
which makes it easier than ever
00:17:51
◼
►
to get new domains connected with various hosting platforms
00:17:54
◼
►
to make a whole website really nice and easily.
00:17:56
◼
►
So now from the domain admin panel,
00:17:58
◼
►
you can select which service you use,
00:17:59
◼
►
including Squarespace, Tumblr, Shopify, and many more,
00:18:02
◼
►
and they will automatically configure all your DNS
00:18:04
◼
►
to work with those things.
00:18:05
◼
►
So no more weird copying and pasting,
00:18:07
◼
►
getting the A record right and everything.
00:18:09
◼
►
Hover Connect is great for getting things set up quickly.
00:18:11
◼
►
So go right now to hover.com
00:18:12
◼
►
and try them out for your domain names.
00:18:14
◼
►
Use code REVIEW, that's code REVIEW at checkout,
00:18:18
◼
►
and you'll get 10% off your first purchase at hover.com
00:18:21
◼
►
and show your support for Under the Radar
00:18:23
◼
►
and all of Relay FM.
00:18:24
◼
►
Thank you very much to Hover for sponsoring our show.
00:18:27
◼
►
- And of course there are many other rules
00:18:29
◼
►
that we could talk about.
00:18:31
◼
►
- Oh yeah, and just like,
00:18:32
◼
►
kind of like as a guiding principle,
00:18:34
◼
►
Like in general, I feel like a lot of people
00:18:38
◼
►
look at the App Store rules as though it's like
00:18:41
◼
►
a legal contract that you can try to wiggle your way around.
00:18:45
◼
►
And it's very important to consider that the App Store rules
00:18:48
◼
►
are not laws, and App Review is not a court of law.
00:18:52
◼
►
And while you can, like while there are parts of it
00:18:56
◼
►
that kind of sound like it, like there's the appeal process
00:18:59
◼
►
and everything, but it's always important to remember
00:19:02
◼
►
that these rules are broad, usually, they're vague,
00:19:07
◼
►
they are made to be subjectively interpreted
00:19:11
◼
►
by the app reviewers and their managers,
00:19:14
◼
►
and they also are not the complete list of rules,
00:19:16
◼
►
and the rules can change over time.
00:19:18
◼
►
So really what matters is the spirit of the rules,
00:19:21
◼
►
not the letter of the rules,
00:19:23
◼
►
because they're all being subjectively evaluated,
00:19:25
◼
►
and you can't guarantee that if you are trying
00:19:29
◼
►
to skirt around a rule by using some kind
00:19:32
◼
►
technicality in the wording or interpreting something differently, that probably won't
00:19:36
◼
►
work. And if it gets through once, it probably won't get through the next time you gotta
00:19:39
◼
►
do an update. And so it's wise in general to just avoid being near the edges of the
00:19:45
◼
►
rules. You know, avoid relying on things that are almost disallowed or almost against the
00:19:51
◼
►
rules but you're living on the edge because it's going to bite you eventually. You know,
00:19:56
◼
►
again, you might get through this time but then when you need to submit an urgent bug
00:19:59
◼
►
bug fix, that might get rejected for something the first version passed for. That wasn't
00:20:04
◼
►
even included in the bug fix, but it just so happened, "Oh, your login screen plays
00:20:08
◼
►
weird tricks that are kind of against the rules, so we're going to reject this important
00:20:11
◼
►
bug fix." So generally speaking, this is not a place to try to play fast and loose
00:20:17
◼
►
or try to live on the edge of a certain interpretation of a certain rule, because that's not how
00:20:23
◼
►
>> Yeah, exactly. And especially when you start to get into the next most popular reasons
00:20:29
◼
►
that people are rejected, start to become things that are very obvious that aren't good.
00:20:34
◼
►
They tend to start to get into things around being fraudulent or misleading, not dealing
00:20:39
◼
►
with people's personal information correctly, having misleading or inappropriate trademark
00:20:44
◼
►
violations. Things that are kind of obvious and problematic. And if you're doing those
00:20:49
◼
►
things, you really are in trouble. The place to push the boundaries in your application
00:20:53
◼
►
is not on the policy side, it's almost certainly going to be on the technology side, doing
00:20:59
◼
►
something new and interesting functionally rather than trying to find some new way to
00:21:05
◼
►
game the app store. Because like you said, Apple at any point, it's a very one-sided
00:21:11
◼
►
relationship and you could argue back and forth about whether that's a good thing or
00:21:14
◼
►
not, but at the end of the day, if Apple doesn't like your app, they don't have to publish
00:21:18
◼
►
it. It's not a situation that even if you and your heart of hearts could think this
00:21:25
◼
►
app belongs on the App Store, if Apple disagrees, that's the way it is. And by and large, I
00:21:31
◼
►
think they're fairly good stewards of that power, but ultimately that's the reality.
00:21:36
◼
►
And so trying to do things that are gaming or being aggressive against the rules is just
00:21:43
◼
►
never going to work, and it's just not productive.
00:21:45
◼
►
Yeah, you basically you can't rely on getting away with it.
00:21:50
◼
►
You know, like they like if you think you can get away with
00:21:53
◼
►
things and other, you know, other parts of your life,
00:21:54
◼
►
because you can live on the edge of rule or you can find a
00:21:57
◼
►
little loophole. Apple doesn't care if what you do technically
00:22:02
◼
►
is allowed by the wording of a certain rule. If it violates
00:22:06
◼
►
what they believe to be the spirit of the rule, you're
00:22:08
◼
►
going to get rejected simple as that and you can complain as
00:22:11
◼
►
much as you want. You can you can blog about it. You can get
00:22:14
◼
►
press about it, but ultimately, yeah, they make the final call
00:22:19
◼
►
and you just have to accept that and you can argue about it,
00:22:24
◼
►
but that arguing about it won't usually get your app back in
00:22:27
◼
►
the store unless it's really truly arguable and they are
00:22:32
◼
►
undecided internally about what the policy should be and then
00:22:35
◼
►
you can argue for certain things to be changed like when
00:22:37
◼
►
things are new and they're still figuring out the rules
00:22:39
◼
►
around certain things, but stuff like the 30% cut and
00:22:41
◼
►
trying to get around that, which everybody wants to try
00:22:43
◼
►
around these days trying to have like an app purchase through your website that's not running
00:22:48
◼
►
through their system and everything like stuff like that the rules pretty the rules are pretty
00:22:52
◼
►
clear and you you won't skirt them by some technicality exactly and so lastly I think
00:23:00
◼
►
the place to talk through is the process of when you get rejected what that's like and
00:23:06
◼
►
then maybe some recommendations around like constructive approaches to it you know and
00:23:12
◼
►
And so you submit an app and you put it out in the App Store, and it goes into waiting
00:23:17
◼
►
for review as its status, and then eventually it'll pop over in review, which is always
00:23:22
◼
►
very exciting.
00:23:23
◼
►
>> JESSE EISINGER-HAWKMANN It's terrifying.
00:23:24
◼
►
>> ANDREW WARNER Terrifying, yeah.
00:23:27
◼
►
You could use that word, it's very similar.
00:23:29
◼
►
So you're in this terrified state, just waiting for--and you probably should have the iTunes
00:23:35
◼
►
Connect app installed on your phone, and in that you can turn on push notifications, so
00:23:39
◼
►
You can be really aware of if anything's happened with your app.
00:23:44
◼
►
And then you're hoping for, it'll probably come back to processing for App Store or pending
00:23:49
◼
►
developer release if it's been approved.
00:23:51
◼
►
That's like, those are the good ones.
00:23:53
◼
►
Or you may get, your app has been rejected.
00:23:56
◼
►
Which is a bit of a harsh thing that can mean a lot of different things.
00:24:00
◼
►
It could be rejected, there's what's called metadata rejection, which is the app is fine,
00:24:05
◼
►
but there's some issue with your screenshot or description, or something along those lines
00:24:09
◼
►
or your keywords aren't quite right, or those types of things where it's more of a very
00:24:13
◼
►
minor fix, like you don't have to resubmit your app, you can just change the metadata
00:24:16
◼
►
and resubmit. But when it happens, usually the app will provide you a reason in what's
00:24:24
◼
►
called a resolution center in iTunes Connect. And usually they'll cite a rule, like I've
00:24:30
◼
►
pretty much always had a rejection that always ties back to some rule. Sometimes the rules
00:24:34
◼
►
are the very sort of catch-all rules, sometimes they're very specific. They'll say, "This
00:24:39
◼
►
This is the rule that you violated.
00:24:42
◼
►
They give you a one or two sentence description about your specific violation, and then they'll
00:24:47
◼
►
usually give you a couple of sentences about what you'll need to change, if anything could
00:24:52
◼
►
be changed, to be in compliance with the rule.
00:24:56
◼
►
When this happens, number one advice, and this is hard-fought advice that I've learned
00:25:00
◼
►
over the years, is the first thing you need to do is calm down.
00:25:05
◼
►
It's so easy, at least for myself, for this to be a very emotional thing.
00:25:11
◼
►
It's kind of like when you read a one-star review in the App Store or something like
00:25:14
◼
►
that, where it can be very emotional, like you can become very attached to your software,
00:25:17
◼
►
and then suddenly someone is saying they don't like it.
00:25:20
◼
►
It's rejected.
00:25:21
◼
►
It's a pretty harsh thing.
00:25:22
◼
►
And so you kind of have to just take a step back, take a deep breath.
00:25:25
◼
►
You don't want to just immediately go to the resolution center, open that up, and start
00:25:30
◼
►
yelling and screaming and saying, "I can't believe you did this."
00:25:34
◼
►
reality is you need to be professional. You need to be polite, understand that there is
00:25:39
◼
►
just someone doing their job at the other end of this, so being polite, considerate,
00:25:43
◼
►
patient, like writing in full sentences with not full all caps. These are things that are
00:25:49
◼
►
probably going to help your case, because shouting at them isn't going to help your
00:25:53
◼
►
case. Being clear and constructive might be, or at least will help. And the thing that
00:25:59
◼
►
I found most helpful too is to take a step back and try and put yourself in the app reviewer's
00:26:05
◼
►
shoes and see why they rejected you. Like if it isn't immediately obvious, like if obviously
00:26:09
◼
►
if they just said like your app crashed, that that's not a big surprise. But if you're on
00:26:14
◼
►
one of these things where it's more subjective, just being like, well, you're wrong, like,
00:26:19
◼
►
that's not what I'm doing there. Or that's different or you're, you know, that rule is
00:26:22
◼
►
stupid. None of those are going to help. But if you can understand why they're doing it,
00:26:25
◼
►
like where they're coming from, what the spirit of that rule is probably around, and frame
00:26:30
◼
►
your response to them accordingly, you probably have a much better chance of kind of clearing
00:26:37
◼
►
it up and just sort of having it be a misunderstanding that gets fixed, rather than being like a
00:26:42
◼
►
confrontation that just began.
00:26:45
◼
►
And beyond that, you just kind of have to work the process.
00:26:47
◼
►
Like it'll take time, you write them a message, and then within a few hours, a few days, you'll
00:26:52
◼
►
get a response back.
00:26:54
◼
►
If you need to, you can go to the app review appeal board, which I think would take even
00:26:59
◼
►
longer if you really are pushing up against something that is kind of gray in the policy.
00:27:04
◼
►
But in general, you just kind of have to keep calm and just work the process and understand
00:27:10
◼
►
that it happens.
00:27:12
◼
►
It's nothing personal in that way.
00:27:15
◼
►
It's not like, "Oh man, you're a failure.
00:27:17
◼
►
Your app was rejected initially."
00:27:18
◼
►
I've had a lot of apps, many of whom went on to be very successful, that their first
00:27:22
◼
►
submission was rejected for all kinds of reasons.
00:27:26
◼
►
And so it's just part of the process.
00:27:28
◼
►
Keep calm, be respectful, and it'll probably
00:27:30
◼
►
work out okay in the end.
00:27:32
◼
►
- Yeah, I mean, 'cause we all go through this.
00:27:34
◼
►
Everyone gets rejected, and even,
00:27:36
◼
►
not just your first version,
00:27:38
◼
►
updates can get rejected for all sorts of reasons too.
00:27:41
◼
►
And I mean, my apps get rejected all the time.
00:27:43
◼
►
Probably, I would say, maybe 10 to 20%
00:27:47
◼
►
of my submissions get rejected for some reason.
00:27:50
◼
►
And that's 'cause, and it used to be a higher rate,
00:27:52
◼
►
like I've just gotten better over the years
00:27:53
◼
►
at trying to avoid those issues.
00:27:55
◼
►
It just, it happens, right?
00:27:57
◼
►
And we all deal with it.
00:27:58
◼
►
I mean, right now, like, I'm on edge right now
00:28:00
◼
►
against all the advice you just gave.
00:28:02
◼
►
I'm not calm right now because I have a bug fix update
00:28:04
◼
►
for Overcast that's been in review through a night boundary.
00:28:08
◼
►
And usually what that means, like,
00:28:10
◼
►
in review is fine when it lasts one day.
00:28:14
◼
►
When it crosses a night boundary
00:28:15
◼
►
and you are in review for multiple days,
00:28:18
◼
►
what that sometimes means is they're busy.
00:28:21
◼
►
But what it most of the time means is
00:28:24
◼
►
you're being kicked out to a manager for something.
00:28:26
◼
►
And that's usually not good.
00:28:28
◼
►
I'm probably about to get rejected for some reason
00:28:30
◼
►
that I consider BS, but I'm just gonna deal with it,
00:28:34
◼
►
and I'll resubmit, and I'll move on, and that's life.
00:28:36
◼
►
That's just being an app developer,
00:28:38
◼
►
and it's no big deal.
00:28:40
◼
►
- Exactly, and we just make the best of it.
00:28:44
◼
►
Maybe it's an example of a place
00:28:46
◼
►
where it's just part of being,
00:28:48
◼
►
like you use the word professionalism or something,
00:28:51
◼
►
Like this is an area where that comes very much into play,
00:28:54
◼
►
that like, okay, it happens, let's just move on,
00:28:57
◼
►
try and make it as unemotional as we can,
00:28:59
◼
►
let's be respectful as best we can.
00:29:01
◼
►
And in the end, like I said,
00:29:02
◼
►
I've been doing this a long time,
00:29:04
◼
►
I've been rejected many times, I've had some very,
00:29:06
◼
►
I've had a lot of feelings about rejections at times,
00:29:12
◼
►
but by and large, I can look back,
00:29:14
◼
►
and the reason I'm still doing this,
00:29:16
◼
►
seven and a half years later, is because in the end,
00:29:20
◼
►
I very rarely look back at the way that App Review
00:29:22
◼
►
has behaved and look at it and sometimes I'll disagree
00:29:26
◼
►
with it, but I can respect it and I can understand
00:29:29
◼
►
where it's coming from and that helps a lot
00:29:32
◼
►
in keeping level-handed and being reasonable in this process.
00:29:36
◼
►
- Well said.
00:29:37
◼
►
All right, thanks a lot for listening everybody
00:29:39
◼
►
and we will talk to you next week.