Hacker News new | past | comments | ask | show | jobs | submit login
How Apple badly messed up with in-app purchases on Lion and didn’t tell anyone (gorban.org)
173 points by grayprog on Sept 20, 2011 | hide | past | favorite | 48 comments



My honest opinion is that the only solution here is to pack up and leave Apple's closed ecosystem, because they clearly don't care about their developers. If you are continuing to do business with them you are sending them a message that it's OK to continue to do this. If it's a Mac app, sell it on your own website; if it's an iOS app, rewrite it for Android and sell it there.


Interesting assertion. Are those other distribution vectors as profitable and trustworthy as the Mac and iOS App Stores?

From my own experience as an app developer, selling the same app on the Mac App Store and through my own FastSpring based store, the Mac App Store is fantastically more profitable. We have a free trial which offers a seamless in-app purchase through our FastSpring store, and we also offer bulk purchases and enterprise discounts through that store, yet the vast majority of our sales are through the Mac App Store. From my numbers, only one day have we seen more copies sold through our own store, and the revenue that day was still less than the Mac App Store's.

From my own experience as an app purchaser, the App Stores rock. I can quickly download and install any and all purchased apps on any and all of my devices. I don't have to worry about serial numbers or registration files. I don't have to worry about nefarious acts that might compromise my download. Hell, I don't even have to worry about installing. The app just appears on my system, ready to go with a single click.

So, from both sides of the field, Apple's App Stores offer a fantastic experience. Are there downsides? Sure. As a developer, I need to worry about bugs like the OP hit and I need to deal with Apple's approval process. But that said, I have to worry about bugs in my own store and purchase validation code (bugs happen there, trust me!), and the approval process leads to the huge upside I and everyone else experience as consumers. And if that process makes consumers more willing to purchase my product, I'm willing to pay that price.

You can call the ecosystem "closed" and you may feel Apple doesn't "care about their developers" but, from my point of view, Apple's provided us with a fantastic platform, some of the best dev tools out there, and the single best software storefront that exists today. Personally, I'm feeling quite cared for and don't see any other platform or storefront offering the same experience. Not by a mile.


easier said than done. How do you distribute apps to people outside the app store?


For Mac OS X apps: over the intertubes, of course. In fact, there's lots of awesome things (Sparkle auto-updater framework) that make this easy.

For iOS apps: Most of the time you don't. You could write your app as a mobile web app, but that doesn't cut it for a lot of apps. If you're determined to have a legit iOS app, you're playing Apple's game.

For Android apps: You can distribute on a number of app stores, in addition to or instead of the official Android Market. You can also offer downloads that can be installed manually, although this requires users to change a setting to allow so-called "sideloading" of apps.


I really don't like how people consider App Store apps "legit" and all the rest "illegal hacker shit".

Jailbreaking is simple and performed by millions. Support issues aside, if I were selling iOS software I would offer it in the App Store as well as on Cydia.


I never said that iOS apps not on the app store were "illegal hacker shit." Not my words.

That said, yes there are alternative app stores available for iOS devices but I would hardly call them "legitimate" since Apple defines that term with respect to their devices. The sad truth is that you have to bypass Apple's restrictions, and continue to do so for each new iOS release, to benefit from an alternate app store like Cydia.


The same way you did before there was an app store - through your website. As for Android, you can sell APKs through your site that people can sideload onto their phones.


If you have any references for what effect that might have on sales, I'd be genuinely curious to see.


Yes! Why didn't we think of this before, we could just... go back to doing what we were doing before that never worked very well!

People already complain about too much competition on the App store. On the web you're competing with virus' and everything else as well. And people have to figure out where you are.

Having your app on the App store is like having it in some giant big box store. Having it on the web is like having your app somewhere on the planet.


I thought the terms of service were changed so that you can't sell directly ...

How does it work? Do you just send ipa files that the user is expected to import into itunes?


Yes, but jailbreak is required.


makes sense, but I thought w1ntermute was distributing using a non-JB channel


There are mechanisms for sideloading to a limited number of devices. Those mechanisms used to be trivially exploitable to authorize an infinite number of devices, but AFAIK, Apple locked it down a lot more and blocked developers that were doing it quite a while ago.


Yes, exactly, either you don't make apps for their platform anymore (in the case of iOS) or you distribute them through your website, just like before the app store existed. Or, you could make a webapp.

Apple has been treating their developers like crap ever since the app store opened, and the only way to change it is to vote with your wallet (or more accurately in this case, your development time). Otherwise, you are part of the problem.


I can't stand apps that appear free but require an in-app purchase to work fully. It feels really dishonest to me.

Yuck.


I'm not sure what is dishonest unless the product mis-represents itself. Crippleware was big in the shareware scene all through the late 80s and 90s and still works today.

Perhaps Apple could allow a new category, but it is an honest model.


problem is that crippleware was, and still is, universally hated. The only areas where it succeeds is where there is no other real competition.


You obviously didn't grow up in the shareware gaming days. All the old Apogee classics (Wolfenstein, Commander Keen, etc) were 1 episode teasers that required you to pay to play the remainder of the game.


And Doom, and Quake, and Quake3, and Unreal Tournament...


I have to say that they (or more rightly Doom) were a revelation at the time: cripple-ware that wasn't crippled.

Most cripple-ware wouldn't give you a fully-functioning product: save didn't work, print had "UNREGISTERED" (or worse) emblazoned over it.

Having a great, polished level for free and the opportunity of buying more isn't my idea of crippleware. There is no feeling of being cheated and no "if only".


That would explain the downvotes, thank you.


It's more about defeating dishonesty actually.

You can download full version of apps for free very easily with a Jailbroken phone.

As a developer, by using in-app purchase you have a very good chance of defeating that loophole.


(I guess I should clarify that this is an analogy, and that the same applies for desktop software. Dial home = one extra layer against piracy if someone pirated the app.)


There is an inapp purchase cracker on cydia now... Most apps dont actually check to make sure you purchased the content.


Most iOS apps use a standard set of system calls to check if the item has been purchased. I assume the hack works by patching the systems calls to return YES to all queries about in-app purchase items. That's how I would do it if I was building something like that. There are no tokens or keys to validate... it's just "hey system, is this paid for? okay!"


There's an option to do server-side receipt validation. That should prevent a hack like that.


Also, checking for the purchase status of an item that can't be bought would be a cheap and easy place to start.

Easy to get around with a custom crack, but it should actually be pretty effective against a blanket 'just return yes' crack.


It is a model which allows people to try before they buy, which also expands the audience and allows the game to spread. It is a good thing when implemented well.


It would easily be sufficed with a "free app" and "paid app". Apple just doesn't make this seamless. Consequently, the "freemium" model is born through in-app "upgrades".

As someone who hasn't bought a single in-app purchase (I might if Carcasonne add expansions), are these transferrable across devices like the apps are?


Yes, iOS in-app purchases are transferrable across devices that are linked to the same app store account. It is a somewhat strange experience when you do it the first time because you are basically expected to "buy" the item on the additional device and then at the last moment the system determines that you already paid for it and provides it for free -- I had visions of getting a bill for multiple in-app purchases of the same item but in the end it all worked out.


For this reason (and for clean installs) there's an option in the API for "restore purchases". Applications should provide this option in addition to "buy".

Another benefit of it is that it restores all in-app purchases for this app. Very helpful in case the application provides more than one purchase product.


> Applications should provide this option in addition to "buy".

I recall reading that this is a hard requirement for apps that offer in-app purchases.


> It would easily be sufficed with a "free app" and "paid app". Apple just doesn't make this seamless.

In-app upgrades from free to full are exactly that, and generally seamless... What are you whining about exactly?

> are these transferrable across devices like the apps are?

Yes.


It's really the only way to do a trial of any kind in Apple's app stores. It's better than a lot of apps in the App Store where you have to pay in full for it without being able to try it at all, including Apple's.


It's been fun watching this comment's points go up and down like a yoyo. At one point it was at -1; it's currently at 10. This is clearly an issue that divide HN readers.

I obviously fall in the against camp — though I can see the argument for it (and many good points have been made).

There is no simple answer other than very clear labelling.


Didn't shareware work like this back in the day? Or are these apps selling themselves as "free!!!!!" and hiding the "(extra features cost $$)" in small, hypothetical print?


Slightly OT: I notice that your apps are for sale both in the App Store and through your own site.

I'd be interested in hearing about your experience maintaining your own sales/fulfillment channel while also taking advantage of Apple's. What advice would you give other developers?

Thanks


Not sure I'd advise to those starting out today, except for the following cases: 1. You consider enterprise or other large sales, which are not comfortable through Mac App Store. 2. You want to participate in bundles or other promotions. Technically, you don't need a store for this but you need to create a version which can be licensed outside of Mac App Store.

Personally, I started selling ImageFramer (my first Mac application) in 2006, so we first had our own store and Mac App Store came second.


Exactly the way Google treats customers when it messes up. Google, Apple and all these big silicon valley companies suck at customer service.


I remember Google having reported various problems with their app store in the past, so the accusation is not valid, at least with respect to what we're discussing here.


I hit this with Pixelmator...I actually assumed it was their fault, and just uninstalled it and reinstalled it again, after which it worked fine.

I'm on Snow Leopard still though, so might not just be a Lion problem.


In-app purchases don't existing in Snow Leopard. I think it was some other issue.


I experienced something similar with the iOS in-app purchases but I did avoid damage like bad reviews, etc. Details here: http://crazyviraj.blogspot.com/2011/08/dont-let-apples-laten...


Expecting anything more than this from Apple is deluding yourself.

If they can't get fixes out for security holes until they're in imminent danger of being in the spotlight (Pwn2Own - and that's only one example; Apple are especially notorious for only fixing things when it affects their public image), then expecting them to fix issues like this is extremely naive.


Also, it should be known that in the SDK terms of use, Apple warns that it's a bad idea to tell the press when there's a problem, so developers are actually afraid of publicly complaining about Apple...


You could have tested your in-app-purchase, yourself, and minimized the damage. #2020hindsight


If you think we developers don't test in-app purchases before releasing, think again.

It's one the most critical parts of user's experience and certainly this is not a place where we'll just write code and ship without testing.

The problem is that it didn't happen for all transactions and appeared to work for some users but not for other. Sometimes it worked for some user on one machine but not on another.

And another developer who hit it with his app in testing didn't understand it was Apple's issue. He created another test-user Apple ID and it worked then so he supposed it was kind of a glitch related to his use of the previous test Apple ID. Really, the last thing you'd think is that Apple has bugs in the payment system.


It didn't fail for all users, just some users.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: