File an appeal with the App Review Appeal Board (or whatever it's called). It's pretty simple to do from iTunes Connect. Someone smarter than a robot will look into it and get back to you (my IAP appeal took ~14 days, but they did take precedent set by other apps into consideration and understood some nuanced arguments, so they might know what Stripe/Square etc are and how it matters)
I changed the summary text of my apps to say that I disagreed with Apple's patent lawsuits and that I would be removing them from the app store once I'd had a chance to distribute updates to existing users for any issues with iOS 6.
The next day my apps disappeared from the store with no notice or explanation.
I will never invest in a platform with this kind of arbitrary, totalitarian control again. Goodbye & good riddance Apple & good luck with your silly joke of an IDE.
Not that I disapprove of the sentiment, but wasn't announcing the reason you were dropping support the equivalent of waving a red flag in front of a bull?
Yes, but I thought they'd be professional enough to at least let me know they were removing them from the store listings. Instead they just yanked them without notice and let me deal with the customer fallout.
I'm pretty sure what you did was a very clear abuse of the description field for your apps. When you very blatantly flaunt the rules and use them to publicly insult your host, what exactly were you expecting to happen?
Here's what I wrote in my appeal. I tried to speak in the most simple terms as possible. I hope it works:
"
The rejection states that "if the purchasable content, functionality, or services are intended to be used within the app, they must be purchased through IAP, within the app" - This is absolutely not the case. Pay Pad for Stripe allows USERS to accept payments from their customers with their iPhone & iPad. Nothing that the user is accepting payments for would be used within the app.
I am not selling anything inside of the app. There are no subscriptions inside of the app. There is no exchange of a fee or subscription money between myself and a Pay Pad for Stripe user. They cannot buy any content, products, or services from my while inside the app.
The most straight-forward way I can describe how someone might use Pay Pad for Stripe is this: My wife has a Stripe account which allows her to accept credit card payments. She downloads Pay Pad for Stripe so that she can manage her Stripe account and accept mobile payments. She takes our daughters to the local grocery store to sell girl-scout cookies. A customer of hers want's to buy a box of thin-mints. She uses Pay Pad for Stripe to take a credit card payment from the customer for those thin-min cookies.
That's it. The feature is identical to what you will find in the popular Square and Pay Pal apps. This is not in-app purchasing. This in enabling B2C business transactions. There is no money exchanged between myself and the Pay Pad for Stripe users.
"
Honest question: why hasn't Apple fixed this fucking stupid review process?
They have the resources to pay cheap reviewers who are probably better than this guy. I'm sure college kids with no job prospects would jump to "work at Apple" even if it's making $10/hour reviewing apps.
Why not allow all apps into the store as long as they pass some security checks done by Apple (no downloading executables etc)?
The current review process is just encouraging developers to look at alternatives. Android for starters. I'm even spending time learning about Firefox OS. If Apple would stop rejecting totally legit apps for "having limited entertainment value" when my Mixpanel analytics say otherwise I (unfortunately) wouldn't give a shit about Android or any other mobile OS.
"why hasn't Apple fixed this fucking stupid review process?"
Are you asking why it's not perfect? That's an impossible standard. In general app approval seems significantly ahead of where it was in past years.
"They have the resources to pay cheap reviewers who are probably better than this guy."
I'm going to go out on a limb and say that most large businesses have the resources to hire people better than their worst employees. Again if you're asking why their staff is not all 5 star employees who never make mistakes I don't even know where to start.
"Why not allow all apps into the store as long as they pass some security checks done by Apple (no downloading executables etc)?"
Because they don't want spam, porn, hate apps, whatever. It's easy to make sweeping judgements about what's best when you aren't actually managing a 200 billion dollar brand.
There's a difference between legit apps being rejected for silly reasons and spam, hate etc apps. You're right it's probably appropriate for Apple to draw some line when it comes to those apps. However my frustration comes from totally legitimate apps being rejected for non-sense reasons.
I don't expect the review process to be perfect. I'm just curious why Apple hasn't improved it beyond it's dismal state in the last four years.
Easy answer, spaghetti; Apple didn't build their review process for developers first, they built it for their users and Apple Inc (not necessarily in that order).
As a developer, I want free and easy access to the App store to upload my apps.
As a user, I want a selection of the safest, highest quality, predictable and elegantly design applications.
Apple Inc, as a for profitable organization, wants to ensure that they maintain control over the various revenue lines (and ensuing profit).
It's the only rational profit-maximizing-response for an organization that has their market dominance.
As a user, I want a selection of the safest, highest quality, predictable and elegantly design applications.
They've utterly failed to deliver that. They've been mostly successful in limiting outright malware but the store is absolutely bursting at the seams with cheap, crappy apps and scams. At this point they'd be better off delegating malware detection to an algorithm and using their editorial control to surface the good apps.
It's interesting to think about in terms of a rational profit-maximizing-response. Perhaps rejecting apps for silly reasons is Apple's way of trying to get rid of apps they deem crappy. This is only a problem when they label something crappy but users would enjoy quite a lot. But it might be a problem that's too small to care about when it comes to a rational response.
Apple's review process is unreasonably strict because it hurts them more to approve a bad app than to disapprove a good app. Apple takes responsibility for every user's iOS experience; people will blame them if an app ruins it.
I'm not sure if approving a bad app hurts Apple. If the app is truly awful customers can get a refund. Also the app store has some sort of collaborative filtering in place. Namely apps that are highly rated and/or downloaded a lot and/or some other reasons bubble up to the top. So apps that stink will just float to the bottom.
Is Google hurt when a bad webpage makes it into the search index? Not really. In general it just floats to the bottom.
I agree there's an over abundance of app developers. I wonder if the costs to Apple in terms of hosting all the free apps, paying reviewers, dealing with refunds and dealing with rejection appeals just isn't worth it?
However in a way the review process is broken for customers. Say I have a free app with 100 reviews and a 5-star average. The app has been downloaded on average 90 times per day for a year and the monthly average has been slowly growing (except for the initial release spike). Also the analytics show retention and daily usage going up. IMO it's safe to say that users like this app. Therefore users suffer when an update to the app is rejected or the app is pulled for superfluous reasons.
I would suggest if the example app with 100 reviews and ninety downloads a day was rejected, users would just buy a similar app.
Users are happy, ignorate that another app that may have been better was rejected. Apple is happy because revenue is revenue. Only the developer of the rejected app is not.
I don't understand how it is possible that Stripe is not allowed to have this functionality but Square is. Certainly Square does not give 30% to Apple for every swipe.
The cross-platform bit is interesting though. This should send a clear message to developers that they should go with ANDROID FIRST.
The rule doesn't apply to either. It specifically refers to in app content and features. Accepting a credit card for a good that is not "in app" (ie. a physical good like coffee or a virtual good like consulting) is perfectly acceptable under the rules. The reviewer in this case is just being retarded.
There's an app review board. I'm not sure of the exact procedure for getting in contact with them, but it's basically the procedure for appealing a rejection like this. I think there's an email address somewhere in the developer portal.
Edit: This trend of running straight to social news sites (e.g. HN) whenever something goes wrong is very strange. There are processes in place for dealing with this problem, processes that thousands of people have used in the past. Why would you go complaining publicly before even attempting to resolve it using the normal methods?
In my experience the appeal board are just as stupid as the reviewer cited in the post. It was like my app was evaluated by a random different reviewer.
Something is strange about the whole app review process. It's been problematic for years. Apple could fix it if they had the incentive. IMO they do have an incentive (more developers, more sales etc) but something else is preventing the process from improving. Lately it seems like the review process is becoming worse.
Perhaps it's company politics? The VP of whatever group is ultimately in charge of hiring reviewers, adjusting policies etc may be standing in the way. However given the explosion of the mobile ecosystem it seems unlikely that organizational politics would come first.
One side note: for my last app that was reviewed and rejected multiple times (once by the appeal board) it seemed like the reviewers were really trying hard to make the app crash. I log almost everything users do in the app. Since the only people with copies of the app were myself and Apple I could see the reviewer(s) activity. If you've tested iOS apps that use even basic tableViews populated with remote data you know that swiping vigorously, pushing and popping viewControllers quickly etc can wring out some funny corner cases. It seems like the reviewer was trying to find one as a pretense for rejecting the app when the real reason was something they didn't want to say. Apparently they didn't find anything and went with "app is just a re-packaged website without enough native iOS functionality" when the entire app uses native iOS features.
Are you actually complaining that the reviewer was performing some QA-like functionality? That's surprising. You may also be misinterpreting. Quickly going through an entire app (which is what I'd expect a reviewer [who's actually testing the app] to do) is necessarily going to involve lots of really quick pushes and pops of VCs and swipes and whatnot. So no, I don't think the reviewer was trying to find some pretext to reject you. That doesn't even make sense. Why would a reviewer need that?
Perhaps I did misinterpret. However the given reason for rejecting the app suggests there's something else going on behind the scenes. "Your app doesn't have enough native iOS functionality" is obviously BS when the app's primary navigation is a tableView, uses the accelerometer and in general is filled with native iOS functionality.
Maybe the app's use of Google maps was frowned upon because of some tense relationship between the two companies. So instead of rejecting the app for "using Google maps because we don't feel comfortable with that" the reviewer tried to find a crash. When they couldn't they gave me the hilarious BS reasons. Hence a pretense to reject the app could make the reviewer's life easier.
"before even attempting to resolve it using the normal methods" - I know I left it wide-open for assumptions like this. I'll update the post with what has transpired since my conversation with him.
> This trend of running straight to social news sites (e.g. HN) whenever something goes wrong is very strange
This seems more general than just when things go wrong. I've noticed a lot of posts on Reddit in /r/math and /r/physics from college students asking for advice on what order to take classes, for example. A student might state he is a math major, and want to know if he should take linear algebra or real analysis first. Typically, he omits to state what school he attends, or what kind of math he is interested in.
These questions puzzle me, because the answer to this kind of question depends on details of the school's math curriculum, and vary from school to school. For instance, at some schools linear algebra is the first "proofs" course, and typically should be taken after freshman calculus as a transition to higher math.
At other schools there is a separate course specifically on proofs and mathematical reason designed to prepare students to transition from the practical oriented calculus courses to the theory oriented "real" math classes. At such a school, the order of linear algebra and real analysis is probably best determined by what courses have which as prerequisites and what the student is interested in.
I would expect the obvious thing to do when wondering what order to take courses in would be to (1) check the requirements for your degree--there should be specific courses you have to take so you need to make sure you don't do anything to screw taking those, (2) work out from that and from the prerequisites from those courses any constraints on when you must take specific courses, (3) look at examples your school gives of typical schedules for students pursuing that degree, and (4) TALK TO YOUR ADVISOR--I assume schools still assign to each student an advisor in their major to give them guidance on course selection and such.
Similarly, people will post saying they are taking a course in X next term, and would like to get a head start--what book should they read? Again, the often don't tell us the school so we can go look up the course and try to figure out what level it is at. They don't tell us what the textbook is so we can pick something that fits in well with that.
It apparently never occurs to them to ask their professor what would be a good book, or to ask older students who have already taken the class, or to go to the library and spend an afternoon looking at a few books on the subject to find one on their own.
I hope Apple are reading this, possibly some of their trillions of cash dollars would be spent on hiring people that have heard of paypal or square. If they are in a decision making position, they should be equipped with the necessary skills to perform their job. This is inexcusable of a company that is so wrapped up in its mystique and brand image.
"He recites 11.2 to me. I again attempt to explain in detail how the app works, how Stripe works, and how we use Stripe with the various apps and products we have. He stands firm."
I once had this argument with a tech over a macbook apple care repair. My screen cable was broken, no display. They opened and found a coffe stain on the case from many months prior. He said I had water damage. I asked what part is damaged by the water. We must have went back and forth 20+ times on this detail. Nothing was damaged by the water, they found an old stain on the case!
After shipping it to them twice with no repair, finally I cleaned it out entirely with a qtip and took it to an authorized service center. Fortunately the tech there was able to negotiate the claim for the busted cable.
Was it because I already have a few apple care repairs and was near the end of my term? No, the phone operator was trained robotically to repeat the same nonsensical phrase ad infinitum.
One observation: The landlord gets to screw with their tenants at his whim, and you don't even have to expect minimum standards (such as basic intelligence) in your interaction with them. This is part and parcel of operating in a walled garden, and should be a conscious part of your decision making process when you work out if you want to work this way (or not).
My guide app was recently rejected for being "simply a book." Seriously. There's actually a "Books" section of the App Store (it's the first one, no less!).
My only recourse? Publish it on iBooks, which requires an ISBN. Also, I've never met anyone who's ever even opened the iBooks store.
I would have thought the solution is simple - release an extremely primitive Android app of the same name and splash screen that says "Coming soon", and report back to Apple "Yes, I have an Android version of my app."
He probably exaggerated the responses when he made that transcription. Unless he had an audio recording, it would be an easy thing to do, especially if he was mad.
There's a big difference between "I haven't heard of the PayPal app" and "I haven't heard of PayPal". I presume that when discussing reviewing apps with an app reviewer, it's not a stretch to assume that the app reviewer thinks in terms of apps.
Reality check: the iTunes Store sales represent 4% of Apple total revenue.
As long as there is a sufficient selection of movies, music, and apps to keep the iPhone compelling, Apple doesn't need to foster a "long tail" app catalogue.
Wait, so if I build something on Android and iPhone, I don't have to use Apple's in app purchase? I can use Stripe directly? Am I understanding this correctly?
You can use anything you want if you are not selling in app items. Think Fandango. You are buying movie tickets. Do they use Apple's in-app purchase? Heck no. But a game with virtual goods is required to.
The REALLY weird thing is that "cross platform exemption."
This guy was NOT doing what that section of the ToS was meant to prohibit. But let's say someone else had an app that really was, that was doing in-app purchases without giving apple their 30% vigorish.... all you have to do is make it for Android too, and Apple will let you?
Then don't do business with a dictator as Apple is. There have been enough cases of "creative interpretations" of Apple's guidelines, against which you have nearly no handle.
If you resubmit through creating a new app, it goes to a different reviewer. Be sure to change the name of your old app before you delete it, so you can still use the app name under the same account. Sometimes the new reviewers are more understanding/ might not see a problem with apps that have been rejected before.
E.g. my HN iphone app was rejected 2-3 times for "webviews stuff" or whatever. Once I resubmitted, it had been approved the first time, plus it's been received well by users.
I thought it was a brand new app, but since it's an update. You can try to resubmit the same binary and hopefully that will trigger a different reviewer.
Don't remove the feature, just figure out how to resubmit in such a way that it gets reviewed by a different person. Then you have a high chance to be approved.
The feature is that it allows you take payments from anyone by having them enter their CC, and deposit the funds as directed by your Stripe acct. Clearly not in-app purchases. The functionality is similar to Square, without the swipe.
Well, I am just glad that Android, Windows Phone and Windows 8 store apps don't have this stupid restriction if you don't use their payment systems.
Walled garden and 30% forced cut of app sales is one thing, but a forced 30% cut of every in-app sale is like erecting a toll booth on all apps. Gruber's explanation of "Apple does it because it can, and the people complaining are just jealous that Apple can and they cannot" doesn't really fly.
This is one of the reasons that Apple is dragging its feet on making HTML5 web apps work on par with native apps, despite Jobs' anti-Flash memo two and a half years ago.
Edit: Sigh, looks like this submission is sinking on the HN front page due to people flagging it for it being anti-Apple. Be classy, HN.
The language isn't as restrictive as you're suggesting. Here's the quote from section 3.3: "All fees received by Developers for Products distributed via the Market must be processed by the Market's Payment Processor. "
The key distinction is that this doesn't apply to products not distributed by the Market, like eBooks and mp3 hosted and sold externally (see: Amazon, B&N, Kobo, ...). Hell, you can even buy physical goods via the Amazon Mobile app (and others I'm sure).
- Reading the Android ToS, it sounds far less restrictive. 3.3 says that if your apps has a "upgrade to full version" option, it has to be their payments. 4.5 says you can't sell alternative markets. Neither is anywhere as broad as Apple's "anything you sell must be charged as an in-app purchase", which applies to things like Dropbox subscriptions, etc.
- On Android, you can always just distribute your app online to be sideloaded if you don't like the Market. Or distribute in an alternative market like Amazon or GetJar. On iOS, Apple's store is the only way to get on the device.
Doesn't the Kindle Android app allow you to buy ebooks and subscriptions?
Also,while Microsoft does support in-app purchases in their store, they don't restrict other payment methods like Apple does. From Microsoft's Store guidelines:
Your app and service may already depend on a particular transaction provider or benefit from ties to other lines of business. Your customers want the trust and efficiency of a familiar, trusted transaction experience. You can use your own transaction provider within your app to provide the experience your customers expect.
If you are not using the Windows Store as your transaction provider, you will want to make sure that your app meets all of the certification requirements such as:
Identifying the transaction provider to the user during purchase confirmation
Prompt the user for authentication before processing the transaction
Your payment processor must meet the current PCI Data Security Standard
Google's Play Store ecosystem disallows you to use any other provider but the Android in-app billing via ToS. Likewise, Kindle disallows you from using any other in-app payment mechanism besides their custom in-app SDK. FYI, Kindle apps need approval, unlike apps in the Google Play store.
So this is no different (in fact worse, because you now have to maintain two code bases and accounting systems).
Good to know about Microsoft - thanks.
Edit: Ah, the Kindle app for Android. I misunderstood. It's possible that Google might deem those violations (see links to the relevant section I posted in parent). Their DOJ mess with eBooks might prevent them from taking such measures though.
Um, Google doesn't have a DoJ mess with eBooks, Apple does.
The Google Books lawsuit is primarily a dispute with authors and publishers about fair use. The DoJ's involvement in that is tangential (and AFAIK was limited to commenting on and investigating the proposed and now rejected settlement).
> Gruber's explanation of "Apple does it because it can, and the people complaining are just jealous that Apple can and they cannot" doesn't really fly.
Well, Gruber's job is to come up with rebuttals to any criticisms of Apple, no matter how lame they may be. Otherwise, he wouldn't continue to get fed insider information from his Apple sources.
As someone who's spent the better part of the last two years building a framework for mobile applications (jQuery Mobile) with the primary purpose of supporting as many platforms as possible I can tell you that mobile safari is hands down the best mobile browser out there today.
You could make the case that Apple's patent threats around the touch event spec are holding things back (not having a standard here is making a nightmare out of handling both click and touch events) or that turning off Nitro for the UIWebView control are a detriment to HTML "apps" but ultimately Android's browser is actually the biggest hindrance to HTML as a competitor.
I'm not an Apple fan (I don't buy their products for other reasons) but mobile safari blows every other mobile browser out of the water in terms of having sane implementations of HTML5 features and performance (css or otherwise).
I'd certainly agree that Mobile Safari is superior to the stock Gingerbread browser (and even the stock ICS browser, to a lesser extent). That being said, are you asserting that Mobile Safari is "hands down" better than other members of the current generation of mobile browsers (Chrome for Android, Firefox Mobile, Opera Mobile, etc.)? To me, that seems like a much, much harder case to make.
First and most importantly lets highlight an exceptionally important issue that well equipped web developers _always_ seem to forget: 2.X was 84% of Android market share as recently as a month ago. ICS and Jellybean are tiny by comparison.
Leaving that aside, Android's stock browser and Chrome still has serious issues with CSS based transformations and animations on non-trivial pages which mobile safari has handled with aplomb for the last 2 _major_ versions. This is not ICS, I'm talking about Jelly Bean. Even the newest flagship devices from HTC, the One X, can barely handle complex content animations. Again, toy examples have worked for a very long time but anything exceeding the compositing engines tile size just falls over completely.
Unrelated to animations, here's a bug that I logged myself against 4.0:
If you look at the issues we've recorded over time you'll see there are plenty of iOS issues there too, but the degree of pain caused by them is vanishingly small when weighed against those we've dealt with from Android.
> First and most importantly lets highlight an exceptionally important issue that well equipped web developers _always_ seem to forget: 2.X was 84% of Android market share as recently as a month ago. ICS and Jellybean are tiny by comparison.
Fair point, but... the overwhelming majority of those users (2.2+) can use the latest Firefox, nearly all of them (1.6+) can use the latest Opera and most (2.3+) will be able to use the latest Dolphin when it comes out of beta. All of these browsers are leaps and bounds ahead the stock Android browser for 2.X and Android lets users change the default browser nearly seamlessly.
Now, granted, none of these browsers is considered important today because they have little to no mobile penetration, but then, mobile web developers could influence that, if they chose to.
This is one of the reasons that Apple is dragging its feet on making HTML5 web apps work on par with native apps, despite Jobs' anti-Flash memo two and a half years ago.
Is it? I instead suspect it's because making HTML 5 web apps work on par with native apps would require Apple to build out dozens (if not hundreds) of new, platform-specific extensions and APIs that would bring the web stack on par with Cocoa Touch. It's going to be some time before we see HTML 5 web apps that are truly on par with native apps.
And before citing WebOS, note that they added dozens of new, platform-specific extensions and APIs to make apps running on their stack as feature rich and responsive as apps on other platforms. I don't consider WebOS apps to be "web apps", as they only work on their platform.
I also note that Apple has one of the best mobile web stacks out there. I'd say they're only bested by Chrome for Android, and not by much. That's not a sign of a company that's dragging their feet on HTML5 support.
I was very excited about Apple for about a decade now, but this walled garden is really getting to me. I doubt I'll be buying any new Apple hardware in the future, and I'll pivot to developing for the web instead of making apps as soon as I can.
The church of Apple likes reading nice things about itself.
There's lots of people religiously invested in Apple here on HN, which seems to have Apple (and it's share-price) as the better part of their identity.
The html5 assertion is bunk: there are things that can not even be expressed in html5/js which are ubiquitous in native apps. An example is true honest to god no bs no excuses no hand waving thread spawn. As in truly concurrent threads, as comcurrent as the os allows, not some interstitial vm allows, not js worker threads. The j2se JVM gets that right but Ruby and Python do not, but there are no shortages of excuses as to why.
Well, 99.99% of the millions of people queuing up for iPhone 5 don't know about stuff like this and some don't care even if they do.
If the Kindle app lacks the ability to buy books, they will blame Amazon the for lack of that feature and not even linking to the Amazon.com page to buy. This is losing battle regardless of a few HN'ers switching to alternate platforms because of this.
Same as with the patent case against Android, Apple has much more to gain that lose by pissing off some developers. In fact, much of their fan base was cheering on Apple against Samsung and Gruber has ~220K Twitter followers, so I felt that the lawsuits may have the effect to actually legitimizing patents among the sizable segment of Apple aficionados. Like Microsoft in the 90s, Apple has turned into this juggernaut that no power grab can really affect their market sales.
I have been bashing Apple for all of this on my blog (I have some regular readers) and I have carefully explained the "Apple problem" to 15+ people in non-Internet space.
It is OK with me if most people don't get the problems that Apple's new butt asshole behavior is causing. Personally, I will spread the message as I am able, and move on. (As I have previously mentioned here, I wrote the simple Chess program distributed with the early Apple II and I had fairly good luck with an app I wrote for the Mac in 1984 - but that is history for me now.)
Yes, I definitely worry that of the many negative impacts of Apple's patent lawsuits that the worst might be creating a popular constituency that has begun to believe in the legitimacy of our deeply broken patent system.
"Apple: “If your app is cross-platform, then 11.2 does not apply and this problem goes away"
Me: "Really, so if I build an Android version and launch it, I’m good?"
Apple: "Yes”
Is the above right? Doesn't seem to hold. If it is so, why does the Kindle app still seem to obey the 11.2, despite being cross-platform?
Hey, I for one am glad Apple is encouraging developers to build apps for Android. Maybe developers will actually start developing for Android first, considering this keeps happening, and worst case scenario, they remain with the Android app, if Apple completely rejects it. If they have just the iOS app, they might just give up for good.
The fact that Google has just made a Java 2 Object-C translator tool and that there are now more Android devices in the wild than iOS devices, should be a couple of nice incentives as well to build the Android app first.
yeah well except for the fact that you really dont make us any money. we make android apps because we are expected to, not because its a good business decision....