mikeash.com: just this guy, you know?

Posted at 2008-09-18 00:30 | RSS feed (Full text feed) | Blog Index
Next article: It's a Poor Carpenter Who Blames His Tools or: Xcode Sucks Again
Previous article: NetAwake
Tags: iphone rant
The iPhone Development Story
by Mike Ash  

I just got my first application in the iTunes App Store, and I wanted to tell the story of what it's like to publish one, from start to finish. The app, NetAwake, is an independent project I wrote with my friend Joshua. It makes an interesting story, I think, because unlike the sordid tale of some people's struggle to get accepted into the iPhone developer program, my personal experience was perfectly normal. (As far as I know.)

But even a perfectly normal experience with the iPhone developer program is intensely weird. Compared to the simplicity of developing and distributing a Mac app, Apple's iPhone program is extremely convoluted and strange. Here's the story, step by step.

1. Sign up with the iPhone Dev Center
The iPhone Dev Center is Apple's portal page for iPhone development. Here, you can download the SDK and find tutorial videos and documentation. For reasons unknown to me, merely having an account with the Apple Developer Connection does not suffice. I have to sign up again for the iPhone site. This is pretty straightforward, however: just click through some scary legal forms and off you go. Now I can download the SDK and get started.

2. Enroll in the iPhone Developer Program
I'm not done signing up with stuff yet! You see, although I signed up and clicked through the scary legal stuff and downloaded the SDK, I can't actually install any software on my iPhone. I can read documentation, write code, compile it, and even run it in the iPhone simulator, but I can't get it onto my actual iPhone.

(And don't think that the simulator makes for an adequate development platform. There's a reason it's called a "simulator" and not an "emulator". Running on the real hardware ends up being pretty different.)

For this privilege, Apple makes me sign up for the developer program. I get to fill out some more forms, click through some more scary legal stuff, and send off my request.

Request? That's right, I don't get an answer immediately. Instead I get to....

3. Wait
This step is going to come up again. I believe that this time the answer came the next business day.

4. Pay
Did I mention that the program is not free? And remember, this isn't to distribute apps, it's just to start realistically working on them. $99 to put apps on my own iPhone. (Or as it happens, on my own iPod Touch.) But I pay my money and shortly afterwards I receive an activation code.

Now I'm ready to put software on my iPhone! Well, not quite.

5. Provision
A stock iPhone won't take any software that hasn't been signed by Apple. This puts us third-party guys in a bind, because we can't get Apple to sign every single build we make. So what Apple does is allow you to create a provisioning profile. This is a cryptographic blob which essentially tells your iPhone to accept apps signed by you and not just Apple. To create it, we have to get the iPhone's unique identifier (accessible through Xcode) and then paste it into Apple's web form, then download the result from Apple. Very oddly, although I am enrolled as an individual developer, I still have to make a request and then manually approve my own request before the provisioning profile can be generated.

I download the profile, install it using Xcode, and now I'm ready to put software on my iPhone!

And if you believe that, you haven't been paying attention.

6. Certificate
I said that the provisioning profile tells the iPhone to accept software signed by you. Well, you also need a certificate to sign with. And of course this can't be any old certificate, but a special one made by Apple. The process here is fairly involved. You get to open Keychain Access, go to a little-used corner, generate a certificate request, open the result in a text editor, copy/paste the blob of random characters into Apple's web form, and then submit it. Then you get to download and install the result (after placing a request, and then approving that same request) as well as an intermediate certificate provided by Apple. And if you're like me, you also get to scratch your head over a bunch of really bizarre errors until you have a sudden flash of inspiration and run Keychain First Aid to fix corruption.

But now it's all done! My iPhone (iPod Touch) is provisioned, I have my certificate, I have the intermediate certificate, and I am now finally ready to put software on it.

Come on, you know better than that by now.

7. Screw about in Xcode
Of course none of this goes quite right. There are a bunch of settings in Xcode that have to perfectly match the stuff that you gave to Apple, and they don't start out matching. The errors are essentially worthless. I believe I only ever saw Xcode generate one error, over and over and over again, as it encountered a whole bunch of different problems.

But by careful log reading, insight, pure random luck, and internet searches, I finally arrive at a working system. I build in Xcode, and the application appears on my iPhone (iPod Touch). Yes, really. I'm not kidding this time. It actually worked, at last.

8. Develop!
This is what I'm here for, after all. Now that all the pieces are finally in place, I can get down to writing code. (Yes, I could write code before. But I couldn't run it on the hardware that it was targeting, which made it somewhat less useful that it otherwise could be.)

As everybody knows, developing for the iPhone is a lot like developing for the Mac. Instead of Cocoa, you have Cocoa touch, which is very similar. There are significant differences as well, though, so it takes some getting used to.

In addition to the perfectly natural difficulties encountered from working on a new platform, there's also a big artificial difficulty. As any experienced developer knows, a great deal of help can be had from simply talking to other developers working on the same system. But Apple doesn't let us do that! If you'll recall, I mentioned a bunch of scary legal stuff that you had to click through to sign up with the program. Among all the other stuff, it included the &*%#ing NDA (WARNING: link contains extremely large curse words) which says that we can't talk about this stuff, with anyone, ever.

And it's not just boilerplate. If you read between the lines a bit on Apple's cocoa-dev info page, they pretty much come right out and threaten to sue anyone who violates their NDA on the mailing list.

It's not just code that takes the hit. Xcode took a lot of magic incantations to work as well. It would have been a lot easier if I had been able to (legally) talk with my fellow developers about it.

9. Ship
At last, the product is complete, and it's ready to be given to the customers. Well, not quite. This being the iPhone, Apple has a lot more hoops for me to jump through first! I had thought that all the craziness with certificates was behind me. I should have known better.

10. Certificate
For reasons entirely unknown to me, a build that is intended for distribution through the iTunes App Store needs to be built with a special distribution certificate. I don't understand why Apple can't just sign the build with their own special certificate. But apparently that's not good enough. So I go through the whole process all over again. Keychain Access, request, approve my own request, download, install.

Now I'm ready to ship.

I realize you're probably getting tired of this game, so I'll stop. Next time I say that I'm ready to ship, I'll mean it. Because of course, I'm not ready yet!

11. Provision
I forgot to mention that you need a special distribution provisioning profile too. I don't really understand why. You can't even install the built-for-distribution app on the iPhone. But there you have it.

12. Screw about in Xcode
You may recognize this from step 7. It's the same basic thing, but with a new twist. There are literally pages of instructions (admittedly, largely due to having a bunch of screenshots) detailing how to reconfigure the Xcode project to use this special magic distribution certificate instead of the development certificate I had before. The first time I went through these pages of instructions, I apparently missed something because when I built I got The Error instead of having things work. When I went back and redid the instructions from the top, suddenly it worked!

13. Submit
This involves filling out a pretty standard web form. First they ask a bunch of basic information about the app, such as its name, its version number, a description, and whether it includes cryptography. (Apps which include cryptography need a special license to be sold outside the United States. As if the US had some sort of monopoly on cryptography! And yes, this foolishness is due to Uncle Sam, not Apple.)

Next I get to a screen where I can upload the application, a large size icon, and screenshots. I click and upload the application. Then I do the icon. For some reason, Apple does not accept PNG files for either the icon or the screenshots, even though that's what their screenshot tools generate (on both platforms) and Mac OS X has had support for it since day one. They do support TIFF and JPEG. Alas, I don't notice this prohibition at first, and I upload a PNG version of my large icon. Somewhere in this process, something chokes, and I'm shown a cryptic error screen.

I press the back button, and I'm informed that my session has timed out. I go back to the main page, log in again, and go to the applications area. Nothing is listed. All of my previous work has been lost, and I have to re-enter everything a second time.

Fantastic.

I go through it all a second time, this time noticing and respecting the TIFF/JPEG requirements, and I make it through successfully. I set a price for the program, and now, at last, finally, it is ready to be purchased.

Just kidding! I'm sorry. I know I said I wouldn't do this anymore. But I couldn't resist.

14. Wait
The app sits in the list with this nice yellow gumdrop and a tag reading "In Review". There is no indication of progress, no ETA, no indication that anything is being done. I assume that something is, but I have to take this completely on faith.

This is when I started writing this post. While researching it, I went back and went through some of the motions that I had to do earlier on, so I could remember what they looked like. While I was doing this, I managed to hit all the right buttons to sign up with the iPhone Developer Program. Not one to let sanity stand in their way, Apple happily accepted my submission a second time. And so my account was thrown back in time, from being enrolled to once again waiting for acceptance.

I quickly sent off an e-mail to Apple requesting help, and then sat down for some low level panic. Fortunately, my status was changed back to being accepted within a couple of hours. Apple finally replied to my frantic request for help last week, about three weeks after I sent it. You'd think that with the NDA in place preventing us from helping each other, the least Apple could do would be to answer their e-mails in a timely fashion.

15. Get Rejected
About a week later, I get an e-mail from Apple. Wouldn't you know it, Apple can't make the thing work, so they reject the application. This e-mail is actually pretty decent, with the majority of it obviously written by an actual human about my particular case. When I write back to ask if they had run through NetAwake's troubleshooting guide, they reply within just a few hours to say that they had and it didn't help. Good on them for being so responsive!

Of course this puts my partner and me in a tough situation. The program works fine on our networks, but not on Apple's. And while Apple was nice about responding to my query, it's obvious that I can't get them to bust out a network sniffer and tell me about their router configuration.

After a great deal of thought we come up with a couple of things that might help it work on Apple's network, apply the fixes, and are ready to try them out on Apple.

16. Screw about in Xcode
This time it doesn't take nearly as long, but Xcode still has to put up some token resistance. There are two code-signing files that are supposed to be embedded in the application, and only one shows up in my initial build. After some clean building and a great deal of cussing, suddenly both of them show up, and I'm good to go.

17. Resubmit
Fortunately Apple provides a streamlined process for submitting a new build of a rejected application. A special link appears in the application's information on the submission site, and uploading the new application is just a couple of clicks away.

18. Wait
Of course once you're rejected you go to the back of the line, and I get to wait another week to see if the fixes did the trick or not.

19. Get Rejected Again
A week after resubmitting (nearly three weeks after the original submission), another e-mail from Apple arrives. This time they've found a legitimate bug in the application, and have rejected it because of that. This is perfectly understandable, and is actually a very good service they provide. But it is extremely annoying to have to wait a week to discover that they've found a bug, and then wait another week to see if the fix works for them.

(Note, I'm not saying that the first rejection wasn't a bug. Maybe it was, maybe it wasn't. I don't really have enough information to say one way or the other. This one definitely was, though.)

20. Re-Resubmit
My partner makes the fix, I submit again, and the waiting game begins. This is somewhat nail-biting by now, because not only is it possible that our bug fix didn't quite work and we've just wasted another week (although unlikely), but because of this bug we still don't know whether our fix for the original rejection worked.

21. Wait Again
Of course it takes Apple another week to check our new submission. As explained, much nail biting ensues.

22. Accepted!
Finally, nearly a month after the original submission, the application is accepted by Apple and appears in the store. It spent longer going through Apple's approval process than it did in development! And while Apple did find a legitimate bug, spending a month in limbo for a single bug is a very poor tradeoff.

Conclusion
Development for iPhone is an incredibly difficult process, much more difficult than it needs to be. The arduous process of shipping an application for the Mac suddenly appears to be absolutely straightforward after going through this mess. I really don't envy those companies who have staked their success to the iPhone platform. The amount of arbitrary hassle, uncertainty, and delay in the process can only feel vastly worse when your livelihood depends on it.

Did you enjoy this article? I'm selling whole books full of them! Volumes II and III are now out! They're available as ePub, PDF, print, and on iBooks and Kindle. Click here for more information.

Comments:

heh, that does suck Mike. You should port NetAwake to the PSP.

- Guy
I don't have a PSP, but I do have a DS. If only I ever used my DS, maybe such a port would be useful!
Heheh - I'm on app #2 - I went through all the crap you did, except to make things worse for me they had my original ADC email address wrong, so it took me 3 weeks just to get the "come and pay for your $99 developer license" email..
For my business or corporate account, I had to wait 2 months to get a call from India to verify my company's address before my membership was approved. Even though I've been a Select ADC corporate member for a year. Now, I'm waiting for the banking/tax info to be approved. So far, 1 week and counting...
I just had my first app approved today (after starting the process in July) but as an Australian developer, I had similar problems to Edward: the agony of trying to coordinate U.S. and foreign tax information and regulations. That's not Apple's fault but: grrrrr, aaargh.
Replace the words iPhone and Apple with PlayStation/Sony or Wii/Nintendo or Xbox/Microsoft and you've just described what thousands of games developers have been going through for the last goodness knows how many years! Actually, iPhone development and product approval sounds simpler ;-)
Still at step #3... since June (i.e. just after WWDC)! And being an ADC Select doesn't help at all. In this case, I think the bouncing between Apple US & Europe (who is responsible for what?) makes things even worse.
Oh well, luckily we have plenty of work to do on the Mac side of things...
Mike, feel lucky you're not developing for the Symbian platform. We recently finished a lengthy development project for S60 and UIQ (and Mac!) that was a signing *nightmare* - time consuming, insanely confusing, costly, painful and with changing signing programs (Symbian offer *four* different ones) in the middle of our development.

Apple is far beyond this, but still has a long way to go. Thanks for the writeup
I've had a good experience so far (have done everything but submit the finished product)- Xcode and Keychain had no problems. I did have a hiccup with the $99 registration but solved real quickly by calling ADC first thing in the morning instead of emailing.
I'm aware of how much worse the situation is on game consoles and other phones. It's too bad, but I don't think that makes the iPhone any better. I'm used to working on the Mac, and I want the iPhone to work that way too. Maybe it's unrealistic, but there you are. I have to wonder if Apple will ever improve this, or whether they're content with the flood of developers they have and don't care how much they have to suffer.
@Paul Donovan

Word Brother.

All these complaints make me laugh when compared to what game developers generally deal with. Shipped only a month after submission? That's bloody amazing.

Wait 'til they release the TRC for iPhone and you have to convince some QA doofus at Apple that you meet requirement 17a part2 sub section 4.

Unless of course you're a big name in which case you can do what you want and it'll get approved anyway.

;)
Ryan: The modern trend of comparing to the worst rather than the best disturbs me. It happens with discussion on almost every issue, from human rights to gas prices to software development. Why does the fact that game consoles suck even worse make the insanity of the iPhone OK?

Like I said, I'm coming from the Mac. There, my "approval process" consists of posting my binary to my web site and then telling people where to download it. The fact that other platforms have it even worse is of no relevance that I can see.
At this pace every iPhone will be jailbroken.
The App Store model sucks.
It has a lot of relevance. I didn't once say I thought Apple was doing a bang up job. I don't like their arbitrary rejections. However, perhaps it's a matter of perspective. I see absolutely no problem with having to get a certificate etc. It's a non issue to me.

I tend to agree that it could certainly be better. However, it's not the travesty people are crying about. It's just not. For this minor inconvenience you are getting a lot. You're getting the best and easiest dev tools available for such a device. You're getting the best and easiest marketing and online distribution available. etc. And the barrier to entry is essentially zero.

A free for all would be good in some ways. Definitely. And I certainly don't want it getting MORE like game consoles.
If it's really that tough, then how do you explain the fact that typically somewhere between 50 and 100 new apps are posted on the store each a every day?

Either, it's nowhere near as bad as this post claims, or, there are 10's of thousands of enthusiastic developers out there who don't seem to be daunted by the process
Ryan: Again, compared to the platform I come from, the inconvenience is huge, the barrier to entry is large, and the tools suck. I guess it's a matter of perspective, but I simply see no reason for things to be the way they are. The fact of the matter is that a bunch of people at Apple put a bunch of effort into accomplishing nothing more than to make my life harder than it needs to be. This grates.

Joe: I really can't understand what your objection is. The story I posted above is not some sort of hypothetical situation or some fantasy. It's a step by step description of what I actually experienced. You can take from it whatever you want, but the fact is that it is the truth, plain and simple.

I have no idea how you can conclude that all these developers out there are not daunted by the process. For all we know they're as frustrated with it as I am, but they haven't let it get in the way of actually building applications. After all, as many people have pointed out, the situation on game consoles is vastly worse and there's no shortage of software for them.
@mikeash: Great write-up. Minus having to resubmit a few times due to bugs, this is basically the same experience I went through. Add on waiting 2.5 weeks for my banking/tax info approval though.

@joe: No shit, it really is this bad. I've been blogging my own experiences. It's a rollercoaster of emotions - you're pissed that you have to wait, but after you get that first 'Your application has been approved' e-mail it's freaking awesome!
Comparison to the worst - fact of the web. Sorry. Perhaps you'll soon get a few comparisons to 'the best', whatever that may be. Of course, you may have to accept the very unpleasant possibility that this is the best for hand held devices.

It's early. The time may come when you'll disbelieve it was ever so hard to get an application up on the store. Let's hope for that. You wouldn't want it to get worse...

Judging by your experience and those of others, the process is clearly in early development. All the certs, approvals, bugs, and multiple convoluted steps Apple's software forced you through should be just a few clicks (except for the waiting).

Obviously, it worked, however poorly. There are mobile OS X apps for sale on the store. A year from now, much of this should be fixed. In three, hopefully, it'll just be a bad memory.
Have you tried signing up for a "paid applications agreement"? That takes another two weeks of waiting with no ETA, indication of progress or idea that anyone is actually doing anything.
I got stuck around step 6 or 7 and gave up.

I paid apple $100, waited months to be "approved" to be a developer, burned through some weekends and evenings trying to figure out how to get my own application to run on my own phone...and couldn't do it. I would happily have paid somebody $50 to get my Xcode configuration to "just work" with my iPhone so I could put apps on it, but I can't waste any more hours of my own time on the project, fiddling with random certificates and settings always to see the same useless error message in XCode. Someday Apple will release a toolkit that doesn't have all these hoops to jump through and I'll reconsider developing for the platform then.

Maybe Apple hasn't yet fixed their horrible process because they are overwhelmed with the demand as it is; the bugs in their process help filter out the people who *have* to develop for the iPhone from those who would merely *like* to.
@mikeash: was your wait time for each submission exactly one week? If so, I think that's still quite a decent system they are running. If it's random, that would suck..
@gg - Here's a rundown of the current waiting timeline AFAIK:

Individual Admission to Portal - Instant or 3-4 hours.
Company Admission to Portal - 2-4 weeks.

Banking/Tax & Contract - 4 weeks.
Application Approval - 1 week.

Banking/Tax and Application approvals can and will run concurrently. If your application is approved prior to your contract being approved, it just sits and says 'Pending Contract'. As soon as your contract is approved, your application shows up in the store within the next 24 hours.

All of the above are dependent on demand and the amount of time will be more or less at any given time. With the amount of demand though, I imagine it's just going to continue increasing until Apple staffs up or people just get frustrated and quit.
@Jon Nice info, but I was mainly asking about app approval. Seems to be always 1 week then, which isnt bad....I suppose
Michael: I can't agree that I'll ever disbelieve it was ever this hard. Simply because my memory is not that bad. I'm not going to look back in ten years and disbelieve my experiences from now. And of course it worked. My own app is available for sale, after all. It was just a crappy process to get it there.

And no, I wouldn't want it to get worse. I don't think the mechanical process will get worse. I think there's a distinct possibility that the political end of things will get worse, in terms of rejecting apps that shouldn't be rejected. But that's a separate problem.

Frank: As I recall, that happened essentially instantly. I think I signed up for shortly after making the first submission. Not sure why it would be so fast for me, unless it's because I'm in the US and you're not. (If you're not.)

Glen Raphael: And this is where the FNDA really causes problems. If you could just ask about it on iphone-dev I'm sure people could help you through your trouble really quickly. But Apple won't let us discuss it.

gg: Good question. I believe it was only approximately one week each time. I know that the last one was somewhat less than a week, as I submitted on a Monday and it was approved very early on a Sunday morning. Even if it were exactly one week, they give no indication of how long it should take. If they plan on taking a week per submission then they need to say that somewhere. As it is, I'm sure that it's just slow because they're understaffed.
@mikeash - BTW, was your "one error" the same as mine? My nemesis was this:
"Your mobile device has encountered an unexpected error (0xE8000001) during the install phase: Verifying application
Try disconnecting and powering off the device; then power the device on and reconnect it."

That is indeed the very same. I'm pretty sure that is the only error anyone ever sees.
I got some steps the wrong way, but I ended up taking maybe less time than you regarding all the application process. The part that killed me was indeed The Error : I think I spent hours on this one and don't ever want to have it again.

FNDA it is indeed : I want to learn from other developers. I want to tell them that kind of story, but go in details. I want to find a way to have a mail with attachments using the same intrface as Mail. But nobody can help me, and I can't help anybody. Except I think that among NDA'ed developers, we are able to discuss things. And Apple won't come to meetups, nor checked the names of iPhoneDevCamp.

One Week approval is horrible. I have one bad bug and I need to update my application so that people will really use, really like it and really stop making horrible non editable comments on every AppStore in the world. I can't. I have to wait. One week. I'm starting to hate the review process.

Very nice article, and feeling 'me too'. Thanks
I forgot :

a beta team is great. Find people to debug and check your app in the field before you submit. It really helps.
If you were a bigger company, the different certificates and the approval process (not Apple's the one you have to do to generate certs), would make more sense to you.
quote:
"Finally, nearly a month after the original submission, the application is accepted by Apple and appears in the store. It spent longer going through Apple's approval process than it did in development!"

With all the detailed description (you can take up the blames to Apple for your mistakes!) it seems strange to me that you did not mention any Ad-Hoc testing with external users.
If you did any testing and qa with other users, it would be nice to hear how to do that and your results.
(Being a network related app it would be like "indispensable" to do outside [your own network] tests.)
I too had 0xE8000001 for a long time, due to provisioning not being set up correctly.

So, after getting used to 0xE8000001 = provisioning, I eventually got it when sending to a device.

After toying around for another few hours trying to figure out what happened this time, it turns out the error message was actually honest, and the attached device needed a reboot.

I hope this helps someone!
Isn't there an option to have a betatest before actually submitting stuff? I know for sure that the devs of Things did a beta test with 50 participants. That should at least, you know, help with the bugs...
Thanks for the post Mike. I feel for you. At least now I know I'm not the only one having so much trouble.

I got a personal cert and started development fairly early on. Then I started working on a client project where they had their own corporate cert. So now I have to switch back and forth between one certificate and another in XCode. Should be easy, right? Say hello to the dread 0xE8000001.

It took a couple of XCode reinstalls, half a dozen iPhone OS erases, and a lot of hassle to just get back to where I could load a single test app onto the phone (it still bugs out when switching between simulator and phone and I have to manually edit the XProj files in TextMate). Word of advice: try to avoid building against multiple certs. It's a nightmare.

I've also started handing out AdHoc copies for testing. The first time around, things worked fine. The second time, sending updates to the same people had them getting 0x80000## errors on their phones. Still trying to figure that one out.

I have an even bigger problem coming up. To develop multiple apps and--for tax reasons--have the income go to separate accounts, requires two certificates. Should be a barrel of giggles switching between *three* certs. I'm seriously thinking about VMWare and switching between MacOS versions for each app.

Having gone through all this, I still think that not having to go through phone carrier certification makes iPhone a good app development platform. Can you imagine having to go through AT&T approval for each app? Yeesh.
You should send this to Steve Jobs (sjobs AT apple.com or steve@apple.com, IIRC) and see what he says. Seems he like things to be simple for his users, but not developers.
Dude, as someone planning to get an iPhone (hopefully today if Rogers can get their act together), I have to say I greatly appreciate the efforts of you and all developers in this. Apple really needs to make this simpler.
Jonathan George said:

 If your application is approved prior to your contract being approved, it just sits and says 'Pending Contract'. As soon as your contract is approved, your application shows up in the store within the next 24 hours.


There's one more thing to that: the apps are listed in the store in the order they were approved, not in the order that they were released. The crux of that matter is that if your contract is approved two weeks after your app, there will be two weeks' worth of apps ahead of it in the list, and you lose your time in the limelight.

And that's why it's on my todo list to send my paperwork to Apple on Monday despite not having time to start coding until October.

(Based on a real story.)
Mike,

That's a great delineation of all of the steps required to build an app for iPhone/iPod touch.

The NDA stuff is just ludicrous relative to the larger goal of building a robust developer ecosystem, disseminating and accelerating best practices and the like.

On the whole, your post suggests that Apple is somewhat human in its approach but could be a hell of a lot better if they had a Come to Jesus moment and got religion on simple, clear, consistent communication versus letting developers fumble around in the dark.

This is a good bookend to the hullabalo around their rejection of Podcaster on grounds that its duplicative of iTunes functionality, something that I blogged about in:

Apple v. Podcaster: White Hat, Black Hat
http://thenetworkgarden.com/weblog/2008/09/podcaster-perce.html

Check it out if interested.

Mark
Yeah, it's a pain in the butt to get things set up.

I called Apple support twice today, once because my access to the portal was never set up correctly (only figured that out thanks to this page!), and second because the documentation is out of date and talks about downloading firmware from the dev center.

Once I understood all that stuff, it was off to creating the most basic working environment - a window-based application with no additional code that can be installed on the device. OMG, so many random settings in the build required! I guess it's "flexible" and that's nice, but it's a pain. That otherwise-untouched app is being archived for future reuse.
I suggest that the onus to test your app falls squarely on your shoulders, not that of Apple. The fact that you did not do sufficient testing is part of a problem with your process, not Apple's.

Really what you're describing here falls under two categories:

1. your unfamiliarity with the tools (not XCode obviously, but yes, with the whole code signing process) which admittedly, kinda stinks.

2. And this is the big one: A QA process that is very slow and opaque (Submitting to Apple and waiting a week).

Apple is not your QA team.

Test before you submit. And I mean test like you are about to commit that code to stone for all eternity and any bugs/whatever will be there forever, because if you DON'T and Apple doesn't catch your bugs.. you can be SURE the users will, and it will be a black spot on your reviews for a lot longer than 3 weeks.

Good post!!

Did you get any email at step #22? I am at the step for more than three weeks.
Worst thing is that after going through all this, some random noob who didn't even buy your app will leave some junk comment about the price of the app or why he doesn't like the logo. And Apple will allow every such noob to comment without asking them to sign their comment!
You only had to wait a week for each submission? Lucky. I just hit the one-month mark of "you're still in the queue, can't tell you anything until it's reviewed."
Greetings iPhone developer,

Your content is in violation of Apple's NDA. Prepare yourself and your commenters for C&D's. LAWYERS ARE GO.

;)

Crazy, especially all the certificate action. Good lord.
I'm going to be fairly selective with comments from this point on, as there are just too many. If I don't reply to you, no hard feelings I hope. I'll certainly read them all, and I appreciate everyone reading and responding.

Lin Linless: But I'm not a big company. I have an "individual" account. I certainly understand why they need an approval mechanism for corporate accounts, but it makes no sense there. Obviously it's just a holdover, and it's not really a problem, it's just silly.

Luis Alejandro Masanti: My partner and I did testing internally as much as we could, but we did not use external testers. From what I've seen the ad-hoc distribution is relatively straightforward (as in, it's no more complicated than the rest of it), but I haven't used it.

Ramin: Certainly having to get approval from the carriers would make this about a million times worse.

Mark Sigal: Nice article, and thanks for the link.

Paul Hart: I thought this would just be a tale of woe, so I'm really happy to hear that you actually found it to be useful.

John: Never said Apple was my QA team. We did test before we submitted. A bug slipped through. That happens sometimes, as I'm sure you're aware. I am not upset with Apple in any way for finding the bug that they found. Quite the opposite, in fact, I'm really glad they found it rather than posting it and letting us discover the bug in the field. What I don't like is that you lose a week every time they can't make something work.

Kent T: Yes, I got an e-mail before it really showed up in the store, even. The e-mail arrived at about 3AM Eastern time (so around midnight Pacific), and the app showed up on the store sometime later that day.

Justin D: I hope you're wrong about the lawyer thing, obviously. I really wanted to share this with the world, in any case.
Reminds me of when I wrote CD-ROM games on the Mac. The PC only had a player app with no error reporting. So I had to bug fix blind. Also no network. So shut down the Mac, move the SCSI drive to the PC... lather, rinse, repeat...
I'm curious to know how long the development of your application took prior to actually submitting it to the store and what the learning curve was like..
Hey y'know, I can totally appreciate that you're not upset with Apple for finding it. That is definitely clear. What you ARE upset with is how long it took to get your app into the store, and I'm saying that the lion's share of that time is due to the fact that you have chosen a very slow method of testing.

The app store review process is slow. We know this. Therefore, by submitting an app with bugs, twice, you are choosing to make the whole process longer.

"What I don't like is that you lose a week every time they can't make something work."

Sounds an awful lot like blaming the user. Are you going to blame the customers when they "can't make something work" too?

I definitely understand that bugs happen. They definitely do, and there's absolutely no shame in that. But you can't point the finger at anyone besides yourself if you let those bugs get into the review process two times and therefore it takes you three weeks to get accepted.
Being a developer for the damn thing since July (with 5 apps in the store, 2 pending for weeks now, 1 rejected) I can relate to everything that Mike said. And to all those smart asses calling for better testing: You bloody can't! You can't proper test because you can't distribute the software to many people easily. The simulator is worthless for testing because many, many things that work in the simulator won't work in the device. Sometimes apps that work in the sim wouldn't even compile for the phone. As it is at the moment beta testing consists of playing around with the thing for 10 minutes, no crash, must be ok, submit it.

However, the *real* fun comes after the first month is over. That's when the money rolls in, right? Not so fast...

First, you have to realize that there is not only one AppStore, there are plenty. There's one for the US, one for the Aussies, one for the Euros, one for the Brits, one for the guys "north of the border" - you get the picture. The point is, each store will pay you separately but only if the proceedings of that particular store are over $250 for that month. If they aren't you'll have to wait for the next month, and the next one, etc.

This is not only annoying it means much extra work because you have to meet many diverse regulations:

- The UK store for example demands an extra hard copy invoice (bizarrely to be issued to some entity in Luxemburg).

- For the US taxman you have to file proof that you are outside the US.

- The JP store wants a certificate (signed in blood) that you are not japanese.

The fact that each store pays you separately will also mean that you'll have to invoice them separately as well (at least that's what the taxman demands where I live). Since each store reports in its own currency you'll also have lots of fun wrt currency rates.

Add to that the review problem in the store as noted above. Bottom line is that my enthusiasm is getting lower by the minute. As always, YMMV.
If the process were easier and Apple were less vigilant on what was sold through the App store, how would they then defend themselves if an app proved to be destructive either to Apples own site and its mechanism or when downloaded did nasty things to the users iPods or computers.
They have to defend both themselves and their users.
The requirements on international tax laws have nothing whatsoever to do with Apple.
We have been stuck on step number 2 for over a month! Is this usual? Are they accepting such lengthy delays in accepting new members? Is anyone in the same boat?
"Your mobile device has encountered an unexpected error (0xE8000001) during the install phase: Verifying application
Try disconnecting and powering off the device; then power the device on and reconnect it."

It took me ages to figure that one out (why oh why didn't I just RTFM in the first case...) The documentation they supply with regards to the whole provisioning process is a little sketchy to say the least, though I'm happy to say, I've finished the 12 step program, yay! Only, um, 10 more steps to go. Could less if there's no bugs in the application (ahem, and that's rather unlikely, knowing my approach to coding)
@Ryan: Correct, but

a.) they don't tell you in advance and

b.) nowhere in the iTunes developer control panel can any support, or docs, or FAQ re. this issue be found and

c.) they could have easily set up some clearing or intermediate entity to simplify this. As it is now it's rather convenient for them as it will take months to get over the limit in small markets and

d.) as the phone will be made available in more markets over the next months this will worsen considerably as there will likely be more country-specific stores. Currently many small markets are consolidated under rest-of-the-world but this will certainly change.

As the setup is at the moment this will be a bookkeeping nightmare. Remember that we are talking 99c software in most cases. If people do the math they might find that it's just not worth it. I'm not at this point - yet.
I'm based in Belgium, and my admission and approval as a developer took 48 hours from the moment that I filled in the webform to become a developer (and pay my 99USD) until the moment I downloaded my certificates and provisioning file.

The invoice was sent by snailmail three days later.

I was already registered on the iPhone Dev forum.

Getting debug builds to load on my Touch took some voodoo. I'm still not sure why I can now sign my applications, but loading the provisioning file was easy. The rest is obscure.

I did need to restart XCode after I "installed" my signing-certificate a few times. It also became clear to me that I needed to go through all this for every "profile" (to simulator, to device/debug) because the "multiple values" option only became visible after I was set to go.

Submitting to the App Store is a daunting step I still need to take, so I will just take a breather now and try to get my app running the way I think it should (with plenty of testing/swearing/sleepless nights etc). The future is looking like something <fill in your own view here>.
This is clearly not ideal in a number of ways but it is not the nightmare that I expected from another blog.

First, you got free QA here and that is worth a lot. What if they had let you ship your first submission and it did not work? How long would it have taken for you to find out that there was a problem and resolve it? Given that most users will not submit bug reports it might have taken you a week to get to the user who would have told you your app does not work in some scenarios and you need to fix it. Only then you probably would have annoyed some customers and have gotten bad reviews etc.

Second, while all the security stuff is annoying and it sounds like it could be made easier to handle as the dev, its sort of the other side of the hacker community. People are so happily hacking the device and trying to break the security on it, so legitimate developers are jumping thru a lot of hoops. On the upside, it sounds like the platform has some tough security in it, which is good for users.

Third, some of this is just the hassle of making something. You are getting a full distribution environment here. If you were a new developer you'd have to set up a website. If you wanted to charge for it, you have to set up all sort of stuff from kagi or whatever. In any process there are going to be steps. This should be better but it has a ton of benefits to you too. Like this ensures installation is easy. You don't need to do any hand holding to help users with installation or updating - that is all handled for you. You have a built-in marketplace for your work. People can find it and know about it. Yes with a Mac app you can just post to your website but then what happens? You still have to market it. Put it on versiontracker, all sort of other steps that you have to mess with that are done for you here. I am not saying its 2 weeks worth of time, but it is something.

I don't think that its a very big leap to think that having the mechanism of the App store your market penetration and adoption is much faster in the end. You are slowed down by the App acceptance process but its so much easier for people to find install it and adopt it, once its up you are sitting on a rocket. Its not all bad and part of the wait and the hassle is no doubt going into protecting this marketplace so it functions for users and developers.

Yes, of course you want Apple's testing to be ideally done in one or two days, or the same day would be great. Hopefully they can get there over time - or maybe it means that there is a huge push for shipping apps, in which case, maybe it is a sign of the health of the platform that you have to wait. It would be worse if you had a really fast response time but a slow uninterested marketplace to target.

The worst part of this to me are:

1) that you can't talk to other developers - that is sad and counterproductive.
2) @Bound by Nda comments that the apps stores are segmented and there is a lot of paperwork for developers for each market. I would hope that over time they could make that whole process more integrated for developers so that you'd still need to comply with each market but that you'd have one interface to do it and a unified statement for all of those stores. That would be much better.




@roz: "Put it on versiontracker"

Funny you should bring this up. Right now the App Store *is* becoming like VT. Submitting an update (no matter how small the changes) brings your app to the front page of the respective category again. If you follow the store daily you see that people are already gaming the system, releasing 1.01, 1.02, 1.03 etc. over a period of only two weeks or so.

The subject of reviews has been brought up already. I gave up reading them after some dimwit wrote about one of my apps "I would never buy this", giving it a one-star rating.

The store is broken in yet one other aspect: Apps in the "New" panel on the front page sometimes sit there for a week or so, getting free promotion. One would assume that each new submission is rotated through the front page, giving each application a fair share of exposure; as it is now it's just bloody unfair (You guessed it: None of my apps made it to that panel. Sigh.)
overall, it doesn't sound too bad, with the exception of the ban on outside discussions.

If you had a good mailing list or the iphone equivalent of the cocoadev website most of these problems would have gone away.

So Apple cut it out! Why?

But as noted previously $100 for QA is a bargain, and it took a while because good QA does (especially when its so cheap).

As a user I'm very happy to hear Apple makes sure these things work. (So it isn't like VersionTracker).

Mikeash you are such a whiner. Apple provides you an opportunity to make thousands if not millions of US dollars and all you can do is complain complain complain like a little spoiled brat, sheesh! By your own admission you did not even test the damn thing (cannot call you and your partner playing with the app - testing!). You submitted a bugged-up app not once but twice for Apple to figure them out for you. How many other mistakes did you make that you now blame on Apple? Grow up already!
Good summary ...

My experience up to the end of point 13 (Submit) mirrored yours almost exactlyy. I've now got a little book ... that is surgically attached to me ... filled with little tips to make sure the process goes more smoothly the next time (bundle identifiers set correctly, check; distribution set, check; PNGs for screen shots, check; 700 character description, check; audio code OK, check; etc.).

The waiting to hear for my first app to get the green light only took 5 working days though, and the second one has been only 4 to date (fingers crossed). Maybe I got lucky.

The bothersome wait(s) for me, anyway, are to get an update pushed through. It's incredibly annoying when someone says on the "reviews" that my opening screen went away for build 1.0.1 (bug fix) and it takes 5-6 more days to get 1.0.2 put out even though it was a 15 second fix and new build for me.

At least after two apps done, the third is taking no time at all as the process and coding now has become much more familiar, so that the third will also be done and submitted within 7-10 days.

But yeah, ask me about how easy it is to screw up your certificates and how some of Apple's portal interface needs some re-thinking. Ugh. That was nasty. And the "review" system needs a serious overhaul (perhaps numbers alone? without some of the libelous/baiting/troll-like comments that pass for reviews I've seen for many apps).
I want to clarify the circumstances of the first rejection, because it seems that there is some misunderstanding.

The reason for the rejection was that the Apple reviewer couldn't make the program wake the target computer. Everything appeared to work in the application, but nothing actually happened when he hit "Wake". This was essentially all the information he could provide me, aside from mentioning that he had followed the in-app troubleshooting steps.

This was a tough problem to face because we had no idea what the nature of the failure could be. We basically had to speculate as to what property of Apple's network could prevent the program from working, then find ways to get around it. Total guesswork on our part, and we had no confidence that it would fix the problem when we resubmitted.

Ultimately we still don't know if we fixed the problem. Maybe the third reviewer simply didn't encounter whatever circumstances prevented it from working the first time. Maybe Apple hit a bug, maybe they didn't. But if they did, the bug is still there, because we just added workarounds, not bug fixes, as we had no identifiable bug to fix.

Apple may or may not deserve blame for the first rejection. I don't know enough to say. It's certainly possible that they do. They obviously deserve no blame for the second one, as that was our bug fair and square.

swampysteve: I didn't keep good track, and it's hard to count as development was highly sporadic as we fit NetAwake work around our day jobs. But it was probably in the neighborhood of three to four weeks from start to first submission to Apple.

The learning curve was pretty simple. I did all the backend work and it was just like working on a Mac. The iPhone OS is Just Another UNIX, and it has essentially the same Foundation as you find on a Mac, so that changed very little. My partner did all of the GUI work and that's where the big differences are, but he seemed to find it to be pretty straightforward as well.

Bound by NDA: That's insane. The whole point of having Apple be the middleman should be to have them take care of all this nonsense. I sell Mac software through eSellerate, much of it internationally. I have never had to do any sort of invoicing, currency conversion, tax paperwork, or any other such thing. eSellerate does all that work, and I just receive money every month in my bank account. I see no reason why Apple couldn't do that too, they just don't want to.

Richard Dalziel-Sharpe: That makes no sense. Making the process easier is completely unrelated to being less vigilant. How many of those 22 steps were caused by Apple checking the app before posting it? Three! That's a whole lot of steps you could eliminate without impacting the quality of the apps they sell one whit.

roz: I had and still have no reason to believe that the first submission would have failed for anyone other than the Apple reviewer who tested it.

Second, you draw a connection between the difficult development process and "security" which makes absolutely no sense. None of the 22 steps I outline make the device any more secure against hackers, nor do any of them improve the security of the device in any way. You seem to be confusing "hassle" with "security", a mistake which is sadly all too common these days.

Also, you don't need to tell me about the "hassle" of selling software for the Mac. I've done this, successfully, and I can tell you that it was much less troublesome and worrisome than the 22-step iPhone process. If I could choose one or the other and have everything else remain equal, I would choose the Mac process with no hesitation.

Scott: I have an idea. If you don't like my blog or what I'm saying, don't read it, and don't comment on it.

One more developer agrees: I've yet to post an update, but that is undoubtedly one of the worst aspects of this whole thing. It's annoying but not the end of the world when an initial submission takes a week to appear. But when an update, one which could very well be fixing critical crashing or data loss problems, takes a week to get to users that's simply insane.
@Mike

Unfortunately it's true. - I'm selling my ordinary stuff (Mac barcode software) through SWReg (like esellerate part of Digital River now) and all I get is one monthly direct deposit and that's it. Not so simple with the App Store, I'm afraid.
@Mike, follow up:

This is what I received:

Dear...

Your Financial Report for sales in United Kingdom for the fiscal month of August is now available on iTunes connect.

< some drivel >

Hardcopy invoices are required for payments to be processed.

Please enter the billing address on your invoices as below:

< Luxembourg address >

Please send a hardcopy of your invoice to:

< UK address >

So far I've received eight of those notifications for August alone. I'm in the EU, so developers elsewhere may be treated different. Any money so far? Nope.
My game has never been at the top of the list. They launched it with a week old date, so I launched in position #150. My update didn't change my date either, so again, extremely low.

Has anybody else had this problem?
What is the solution?
mikeash:From what I've seen the ad-hoc distribution is relatively straightforward (as in, it's no more complicated than the rest of it), but I haven't used it.

Ha! You're an optimist at heart. After the ordeal you went through you still believe Apple would make at least this step easy for you. Doing an Ad-Hoc release would have added at least 3 extra bullets to your list :-(

Government health warning: the official guide _does not_ show you how to correctly set up an Ad-Hoc distribution, so Google first to keep what's left of you sanity...

Another complication: I'm developing as a contractor for other companies. Imagine the paperwork, countless delays, and certificate madness that involves...

Thanks for posting your experience. It feels good (well, sort of) to know that everyone else is also having trouble with this. Let's hope that someone 'up there' will take notice.
mikeash, excellent writing, I tell you, you have been lucky (...). On a scale of 1 to 10 the iPhone development experience brought Apple from a 9+ to a 6- ranking.
Well
I think jailbreaking is the best solution for free app

by http://platinum2289.blogspot.com/
Your app is quite neat actually.
I've done the whole 16 step dance, but I'm still stuck with " error 0xE800003A during the install phase: Verifying application". I've tried rebooting the phone, restoring, everything. What a half baked environment. Sure, during beta things will be rough. But by the time 2.1 is out, Apple should have this cleaned up. It's the same old Apple. They have always pissed on the developers, despite all the hooha at the annual dev conference.
mikeash: thanks for the writing. I'm hitting the same speedbumps (or brick walls). Still stuck with Jay's 0xE800003A error, and getting a build error in Xcode when I try to build for my 2.1 iPod Touch (cannot find Certificate). Will review the steps you've listed and try again.

On another perspective: I develop applications for Research In Motion's BlackBerry platform. You are required to submit your application to be "signed" by RIM if you use certain restricted APIs (things like accessing the network, email, personal information, device information, etc.). I have even developed libraries "embedded" in the RIM device OS that themselves require third-party applications to sign (through my company) their applications in order to access.

RIM used to charge $100 for a set of "signing keys" (the current price is now $20). You then had to initialize their "signature tool" with the keys, and then every time you want to load your app onto a BlackBerry, you would launch the signature tool, load your application into it, and it would be "signed" by RIM's servers. The signature tool takes a hashcode of your app, transmits it to RIM's signing server, and then the signed hashcode is added to the end of your application. This signature is checked on the device, and if everything matches, your application is permitted to run.

All of that seems much simpler than what Apple has produced, and - as there are lots of BlackBerry users and applications out there - clearly it's working for RIM. Jobs' original letter a year ago to the developer community indicated that he wanted something a little more exacting, akin to Symbian's approach for signing for their cellphones. I'm not entirely positive that Apple's mechanism actually protects either users or the cell network - all it takes is a credit card and $100, plus (apparently) a whole lot of frustration and anguish as you've outlined above, but if I'm a malwriter, it's not going to bother me any (nor will it trace back to me).

Thanks for your story.

kgk

Well, as you're probably all aware, Apple has announced that they will be lifting the FNDA. (They haven't actually lifted it yet. Big companies are weird.) This is a very good move and will go a long way toward making a lot of this process easier, although many problems still remain. In any case, it's a great step. Hopefully sometime very soon either Apple's mailing lists will open up to iPhone questions or Apple will create a new set for iPhone work. Either way, those of you stuck with technical problems should imminently have a forum for getting them resolved.
I have to agree that even though the AppStore as a distribution platform is a great idea, there are still a lot of problems to be ironed out, some of them unfortunately not being technical issues at all.

I will be starting a forum dedicated to iPhone OS development (as soon as the NDA is finally lifted), which will be independent of Apple (as I imagine the theoretical Apple forums will be heavily moderated). So if you get stuck with anything again or if you want to help others with similar problems as yours, have look there.

http://www.iphoneosforum.com
The pop-up error is pretty opaque, but the console log in the Xcode Organizer window is much more helpful. Googling the appropriate phrases from that led to this solution, which solved my problem:

http://discussions.apple.com/thread.jspa?threadID=1638457

Bundle identifier. It can be your friend, or enemy. ; )


This is a really interesting article, thanks. In so many ways the whole process just sounds so Apple. Lots of niggly little things which just become frustrating, especially when you compare it to the way you can deliver a Mac desktop app. I am working on some design work for another touch screen mobile platform at the moment and the hoops we are having jump through are insane. I think in time though developing for mobile devices will become more and more like developing for normal desktop devices.

I have not started iPhone app development yet but will do within the next few months. Well, to be more precise I will be designing and art directing some projects and someone else will be doing the actual developing ( thank god! ).

I am curious though, I am based in Barcelona and my colleague is based in the UK. We are both freelance but will work together on this project. What would be the best, have him sign up with Apple as the developer ( as he will be doing the coding ) or me as I will be leading the project ( you know I always believe creative projects should be creative led and not code lead. ) Or can we do some kind of 'joint account' but bear in mind we are not a company?

Hope that makes some kind of sense. Also I would love to hear from other developers out there. I am a really experienced designer and really want to focus on some iPhone app / games at the monet. So get in touch.
I bought your application.
I have no needs for it what so ever.
just showing support and thanks for you
extra efforts on writing this article.

I also gave 5 stars review.
We screwed up and submitted the wrong version of our app (whoops) which will be rejected. We changed the description to let apple know. Does anyone know how we can resubmit before the inevitable rejection? Does anyone have a good number that we can call for support? Thanks!
You can reach ADC support here:

http://developer.apple.com/contact/phone.html

I'm doubtful that they'll be able to speed things up for you, but it's worth a shot. They have been useful for other things, I just doubt that they can influence the review process that much.
Thank you and thanks for putting together this website.
Update: we were able to delete the binary code and resubmit the app. My business parter also had incorrectly submitted our bank info as a savings acct when it should have been checking; support for this is at iTSBanking@apple.com.

Yes, we got a little too excited and lost some perspective, but it is looking good for now. I'll keep you posted on the launch.

Cheers!
iTSBanking@apple.com replied the next day with a simple form that can be mailed or faxed back to correct the banking issue. Good service, eh? Take care.
LAUNCH! It's like having your song play on the radio for the first time! It's called MeterRead(tm) and it's on sale, listed in the Finance section. Sorry if that is spammy! Thanks again for this site. I will pick up your app to support your efforts. Cheers!
After 2 weeks my applications were approved and received the "ready for sale" status. Then they were thrown into the "pending contract" limbo, where your contracts must be reviewed by apple. Since that 6 weeks have passed with no contact and no answer by apple. I think apple is killing the love of iphone developers. Too much hassle and frustration to post a &$%/%$ application.
i have added provision file but still its not showing in the targets->info->code signing provision file please help me
thanks
You can find iPhone SDK tutorials and how-to's

http://www.cultofiphone.org/forums/forumdisplay.php?f=30
hi Mike,

I shared the same feeling like you, I have also halt at pending contract for more than 6 week and no sign that how long do I need to wait. Have you finally get your contract now ?

Yes, everything is all taken care of now. Step 22 was the end of the struggle, at least for this app.
Hi Mike,

Just wondering... how long does the "iPhone Developer Program Enrollment" takes? I already registered with them for almost a week now, but, still not getting any reply from them.

JT
I think it only took me a day or two. Maybe it takes longer now, but a week is where I'd start to think about contacting people to ask what's going on.
Great post! Mind if I ask how your app is doing? Can you give any kind of "general" stats.

Thanks.
It's not doing all that great to be honest, but it's not a complete bomb. Couldn't say whether it's because the iPhone market is weaker than it looks or, more likely, because this app is simply very niche.
Just wondering what hardware is good for developing on the iPhone? Would a Mac Mini be enough?
The system requirements for the iPhone SDK can be viewed on the Apple Developer Connection: http://developer.apple.com/iphone/program/download.html
I think some of the commenters here are missing something. Perhaps it is easier to develop an iPhone app than a game on a Wii - but the iPhone isn't a gaming console (even if Apple wants to dual purpose it that way)... it's a *phone*.

So, let's compare it to what it takes to make a Windows Mobile app:

1) Buy a copy of VS2008 Pro or use .Net 3.5 SDK, eVC or eVB is you want free.

2) Write your app in YOUR favourite language (VS2008), and test it in an emulator just like on the iPhone. No certificates needed.

3) Sell your app.

If you're targetting for certain phone providers, you might need to get the app signed - but most WiMo phones don't require that.

Oh... and you can write games or biz apps or.. well, pretty much what you want, really. No one is vetting your apps. And since you sell them locally - no tax issues.

It's easy to justify something by comparing to the worst case - it's the better cases that really show what's wrong.
A few more data points, and a disaster story: I applied for a Corporate account in August. After a month of no response, I applied for an individual account. The individual account was all paid for and active in a few minutes.

I went through all the above steps and got things working using a PowerPC (using some workarounds for the Intel Mac restriction.) It all worked, but when I went to do the final upload to Apple, I got The Error saying that my signature was not correct. I guess you really need an Intel Mac.

In the middle of this, in late October I finally get an email from Apple wanting my corporate papers for my corporate account. I send them.

The same day I figure out I need an Intel Mac, I get a call from Apple in India. I'm in the middle of cooking lunch. My corporate account is approved. I mention I already had a personal account. The person suggests I let them combine the two accounts, to save time and trouble and $99. I say OK, one of the stupidest thing I've ever done.

An hour later my personal account no longer worked at all. I cannot even access the user forums. All my signatures are invalid. Both accounts are dead.

This was ten days ago. I have not been able to do any development in ten days. The holiday sales season is near. Emails to Apple get me form letters that things will be fixed "soon".

I am not happy.

In April I started a Beta of my app, which is a "web app" based on IUI (my App Store app is a stub that launches the web app). I was getting about 10 new users a day just from Google hits, with no marketing effort at all.

After the App Store launched, Google traffic went down to about 1 hit per day.
I called Apple. Busy. I decided I would give up after 15 minutes.

At 14 minutes they answered. They were very helpful and restored my individual account and all its certificates etc. Then they told me that because of restoring the account, the corporate account was completely gone. They had me recreate the account and call them back, and we got it up and working within a few hours.

Now to get it finished. (It's called CalorieMinder, a nutrition application.)
All I can say is WOW! I am now intimidated. I am a PC developer, with a little experience with some small apps for the windows mobile / PocketPC platform as well.

I had no idea development for the iPhone would be so hard, and am now actually reconsidering it altogether.

Someone mentioned that maybe someone would compare this with the best. Well, I don't know if that is developing for the PC and MS mobile platforms, but basically it entails, write your code, build the app, upload to any any app distribution site you want (including your own website if you want).

Done.
I applied for enrollment (the one that costs 99$) about a week ago but have not received any answer whatsoever yet.

A colleague did that in August, paid the 99$, sent some requested tax info to Apple and is still waiting for to be accepted (Dec. 10).

Seems like Apple has completely given up the attempt to handle those requests in a timely fashion (if they ever have).

There are probably just too many people applying these days and maybe the new developers just aren't coming up with apps that add a lot of value to the 10.000 already availalbe in appstore. So Apple may not care much about applications anymore?
iPhone/iPod Touch Developers,

If you have an app in the App Store now, could you tell us the following...

1. When your app was launched in the App Store.

2. How much money you've made since the launch.

I'm a wannabee developer looking for inspiration. Thanks in advance!
I need an iphone developer - but i cant pay an hourly contract price - i am broke, but I have the million dollar idea - I guarantee it.

I am a hardcore apple fan - I study and scrutinize the app store - my idea is unlike anything in the entire app store.

Are you interested in programing an iphone app just because you love the idea and believe it will sell? I would like to do a profit share for the app sales with a good programmer.

Contact me back if you are interested. jlowenz@gmail.com

J. Owens
You forgot to mention that if you want to charge money for the app you have to fill out a contract and banking information and wait for the contract to be approved.

And, oh by the way, your bank better have a Swift code or the form will not submit! And don't forget that most credit unions don't have swift codes!

Apple needs to create a single web page that provides ALL this information up front!
Mikeash you are such a whiner. Apple provides you an opportunity to make thousands if not millions of US dollars and all you can do is complain complain complain like a little spoiled brat, sheesh! By your own admission you did not even test the damn thing (cannot call you and your partner playing with the app - testing!). You submitted a bugged-up app not once but twice for Apple to figure them out for you. How many other mistakes did you make that you now blame on Apple? Grow up already!

Scott, you're an ignorant something or other...

There are quite a few people trying to build FREE iPhone apps - like myself. Requires the same crap, frustration, hoops, and $99 out of my wallet for a FREE app maybe to get onto the AppStore.

And you don't get it at all do you? The iPhone simulator is crap. To really test, you need an iPhone or people with iPhones to act as betatesters. Oh, but you need signing code to even do that. And that means you need to pay $99 and such to get enrolled in the IDP BEFORE you can even test. At least that's the best I can make of the hundreds of web pages and PDF documents. If anything, Apple makes things as concise and clear procedurally as mud at night.

As for all of the comparisons to XBOX and such, remember that the computer/console gaming industry is a MULTI-HUNDRED BILLION dollar a year industry. No comparison at all. :)

Compare Apple's gauntlet to other phone's. It is horrific. My partner in crime here has already written (with my Java expertise), enrolled, paid, uploaded, and has his GPhone app in the store being installed and used - and I'm the developer and he is just a general code hacker. Here I sit still waiting to achieve step #2 of the gauntlet (an ADC member, IDC member, multi-year Xcode developer, decades computer programmer). Had I realized it would take weeks at each step, I would have enrolled before the iPhone SDK even started downloading.

Mike, I saved this article for future reference as I lose hair over the process. Thanks!

Apple, shame on you. You will discourage many thousands of developers with your gallows noose-like control and arbitrariness. The tighter the grip, the more sand escapes.
Hi J. Owens. You might want to contact us at info@dreamworldsol.com. We specialize in iPhone development. We've developed a number of iPhone apps and games so far, and most of them are already on the app store.

Sam
http://www.dreamworldsol.com
Quick question for y'all.

I'm sure you can understand how confusing/convoluted the Apple Developer's site and its information is. Besides the $99 fee and 30% of sales, are there any other fees involved in the process of selling an app through the Apple iStore?
J. Owens: I'm not meaning to sound harsh, but how much work would you propose to put into the partnership you're suggesting? If the answer is "Just the idea, some design suggestions, and testing" (or even worse, just the idea and nothing more) then I would doubt you'll find a profit share scheme.

Ideas are not worth very much. I tend to respond to a good idea by buying that person a beer. In making an app, the coding, graphics, UI design etc are the bits that take ages.

My first app is awaiting review in the app store now. The idea was the easy bit: it was the next fortnight of late nights staring at xcode, stubbornly optimising drawing code so it wasn't slow as shit... that's where the hard work lies.

Forgive me if you were intending some more equal partnership. I've just seen so many people say "I've got an idea -- if you code it, we can split the profit 50-50".
It's interesting the extent to which the iPhone gold rush has produced people who have an idea and "just need a coder".

As they say, million dollar ideas are a dime a dozen. It's the implementation that counts. You'll notice that there are no programmers out there advertising that they have a lot of skill and programming knowledge and would like to do profit sharing with someone who has a great idea. This should tell you something.
We are on app number 30 for us as a company and our clients. All I can say is we just keep churning out applications and let apple do all the heavy lifting... At any given time we have 7-10 applications in the queue for apple to approve or reject, we no longer wait for the big bad Apple to catch up !!!
I hope you'll forgive me for saying that having developers flood the store with hordes of tiny cheap applications doesn't excite me, and I don't view the fact that Apple's policies encourage it as a good thing.
As someone with an idea who "just needed a coder" I must agree with what you guys are saying about how most people either don't know exactly what they want nor do they really even want to spend the time to create it. These aspiring app developers are attracted to the Trism and iShoot stories that are written about every so often.

In my case I was actually very determined to execute on my vision, and so I began teaching myself the SDK while also creating the most detailed specs possible. I decided to outsource development abroad but, as the team I am working with will tell you, I knew exactly what I was looking for and had spent the time to understand just what was involved in creating it.

If you have an idea but can't be bothered to really think through it then move on, because the reality is that you will not find that special developer that will execute your idea and also hash out the specifics to make it work. As Mike said, there is a reason that guys who can execute and translate an idea into a product are not looking for people with little more than an idea. Odds are you will end up with a developer who is either mediocre or ripping you off if you are not willing to pay for contract work.

I have been keeping track of my experience and lessons learned in my development process and you can check it out here http://www.icombatgame.com
Here is My story Guys


I have applied for the iphone Developer Program before 25- 30 days didn't get any reply from apple .. I am still in Step 3 The wait condition if I ask about this they are telling its in process (Billing department) what is the hell this?
No wonder nobody has tried to fix the poor sms functionality.
Is it too much to ask to have the ability to forward a sms reply by tapping the bubble or delete just a single sms rather than the whole converstation by swiping left to right and tap delete? It is apparently too much to ask for copy and paste as well as pre-setup lists of common sms replies.
Don't one of you with a bit of spare time want to solve this since it doesn't look like Apple care.
"spending a month in limbo for a single bug is a very poor tradeoff."

I wish more developers had to go through this hoop before releasing a product to ANY market. :P
End User: Nobody is forcing you to buy apps the day they're released.

The other guy whose post I just deleted: My blog is not a job board, please take it to a more appropriate forum.
Im a .Net developer looking unashamedly to get onto the IPhone apps gold rush. Just bought a new Iphone and a mac mini. Applied to the developer program. Got accepted almost immediately. Confirmation email less than a day. Looking forward to writing a killer fun app.
Show me the money!
Keep the horror stories coming. Would want to breed competition.

In all seriousness I appreciate this site. As someone just looking to transition from windows development, I'll refer to this page while trying not to pull my remaining hair out.
sorry to hear you had such a difficult time. We didn't have nearly as many problems as you did, we found the whole process simple and straightforward. The only tricky part was figuring out tax exemptions for countries like Japan.

Best of luck with your future apps,

Max
I'm curious, what's the deal with tax exemptions? I thought the whole point of this App Store business was that Apple handles all the legal and tax crap for you.
I'm curious as well about 'the tax exemptions'. but in my case for europe, the Netherlands.
And can someone tell me about the benefits from selling an app?
Is it worth all the hassle?
This string started in 2008, now we are in april 2009.
Something has changed in communication with Apple?
As far as I know not a single thing has changed. Apple is still uncommunicative and slow. Certainly the software side of things is no easier. After losing the ability to load new builds onto my iPod on several occasions, I finally jailbroke the thing just so that I could continue working with it. At this point I'm just about ready to give up the platform.
Your lucky. We signed up, and have been waiting in step 3 for over a month - that's right, Apple with all their Billions of $ has taken more than 4 weeks and still has not 'verified our identity'
WoW!

I'm gearing up to become a iphone developer and this sounds discouraging. I hope by the time I'm ready to submit my app some streamlining has occurred.
TO: T. Worrall / mikeash

Ever thought about it like this - I don't care how good a programmer you are bustin' your ass making a little game or ball bounce around. If it is not a good idea or concept that you are putting your time and hard work into, you are not gonna get anything back out of it and nobody will buy it - good luck.

I have found people to program for me, and I will put my idea out there. Go ahead and complain about people like me with "Ideas" and just keep trying to find your contracted fixed price jobs instead of having some faith and maybe taking one second to listen to someone.

all these apps keep going into the same few categories - Ours will create a whole new category... Have fun!



 
The difference is, anybody can come up with a good idea. Transforming that idea into a working application takes an enormous amount of skill and effort.
I would like to know how many applications are submitted for review each week. If there are hundreds then a week of waiting is not bad at all!
That doesn't really make sense. If there were more submissions than Apple could handle then the waiting time would continually increase. If Apple could handle many more submissions than are actually occurring, the waiting time would only be as long as the actual review process takes. (And we have fairly direct evidence from developers of applications that phone home that the review process is only about 20 minutes long.) If Apple's capacity matched the volume of submission, the waiting time would move randomly up and down in response to natural random ebb and flow.

Fact is that none of these are true. The wait time has been pretty consistently about a week since the beginning. Nobody really knows why, because this does not fit any of the three possibilities above.
does anybody know if iphone app development companies can help you to put the app on your own itunes account ? or the guys at the apple store ? i am learning objective-c and iphone sdk. Its making my head spin.. So to all of you that are making apps already : I have nothing but the utter respect.. nikola at andelic gmail.com
this is so freakin true. developing is not a walk in the park. we have been doing this for awhile and hate the wait. when you order a new macbook you have email updates, website telling you whats going on, ups to track. why cant they do taht for iphone apps? would love an updated webpage telling me what stage my app is in. even if its bullcrap would help all of us.
Regarding the post by Profit?

Would those of you who have successfully made it through the process and have paid apps actually in the App Store say that it was worth it?

What level of monetary success would you say you have had? I realize that success with something like this will be determined by many factors, just looking for an unofficial average, from the "average Joe", casual conversation type of response.

BTW, I was kind of shocked to see this thread become so current without the posts becoming more positive about the process.

Thanks
My first app was definitely not worth it. Second app just came out yesterday and remains to be seen.

Overall, I think people's perceptions are deeply skewed by the fact that the news stories and blog posts are all about a few enormously successful people, and almost never about the vast majority of people who are doing at best average. For every Flight Control there are a hundred apps that are lucky to pay back the developer's $99 entry fee.

As for posts not becoming more positive about the process, the process simply hasn't improved. It was the same bunch of stupid stuff for my most recent app as for my first one. Worse, actually, because Apple never bothered to send an e-mail to say that the recent one was accepted, and we had to discover this fact on our own.
I think I may persist on, but it does seem that every time I turn there is another mountain to climb.

I am very new to all the tools involved (Obj-C, xcode etc) and it seems the process is very distracting from actually learning what is necessary to develop.

I originally thought my initial investment would be some time and $99. But it seems that it will be allot of time, waiting (which I hate) and since I only have a PPC PowerBook some expensive hardware.

It would be cool to see how you make out with your second app. Good Luck!
My story is similar. I'm amazed at how many developers actually make it through the process, and I wonder how many throw up their hands in despair and simply give up.

I'm at one week and counting for approval of a very simple calculator type app, two weeks and counting for approval of the contract/banking info...

Oh, I can add another horror story. I had paid my $99 almost 8 months ago and never went into iTunes Connect to set up the banking stuff. When I first tried, the password which worked fine for the main iPhone developer section wouldn't give me access to the other section (and yes, it is supposed to). Since there is no phone number anywhere on the web site, I tried email. After 4 weeks, I didn't even get a reply, and I kept sending new emails once a week. finally I found a phone number on google and called them up. After waiting on hold for 20 minutes, they fixed the problem in about 30 seconds.

The process is seriously broken and needs help.
In case others need it, ADC is the place to call and you can find their phone numbers here:

http://developer.apple.com/contact/phone.html
After all these being heard I open Apple developer connection page (http://developer.apple.com/iphone/program/) and what I do see first is huge:
"iPhone developer program
The fastest path from code to customer."

:) That made me smiling
Well I need to change my bank account details. I sent 2 emails to itsbanking@apple.com on 15th of May 2009 and 1 via a contact tool in itunes. So far i've'nt heard anything from them hopefully I will hear any time sooner.
God this is frustating...
Thank God I've got a response from ITunes banking team see below.
quiet interesting unlike others I'm not given any sort of change in bank details form to fill.

FYI
  
Hello,

Your request to change your account holder name has been received. Please note that these changes will not be reflected in your iTunes Connect account. We will make the changes in our accounting system. Please allow 21 days from date of receipt for these changes to take effect.

Feel free to contact us if you have any further questions.

I hope the process has gotten better. I'm a few weeks away from submitting my app to Apple.
Rumour of an announcement when the OS3.0 drops on a few tweaks to the app to store process. Lets wait & see...
I remember reading this post a couple months ago and saying: "screw iPhone development". But as a long time Mac user I finally took the plunge and paid my $99 dev. fee. Let me tell you all , it's exactly as Mike describes -- especially key signing -- a huge pain in the arse. Sign, crash. Key disappears. Delete key. Re-provision. It's as difficult as the coding itself.

So I'm on day 9 waiting tensely, expectantly after having submitted my app to Apple and either have them declare me an iPhone developer, or a simply declare "go back to the end of the line and wait another 2 weeks!"

I think with 0S 3.0 around the corner the team is busy re-testing all 40,000 apps to see if they'll run in that environment. I envision maybe 4 weeks wait? Anyone submit recently and still waiting?
Yeah, submitted on June 1st... so I guess I have a long ways to go. I'm trying to figure out what the average wait time is. Some people have told stories of getting approved after two days. Other people talk about a week, or two weeks, or three weeks. I agree that annoying yellow bullet with "In Review" and no other information is frustrating. In my case, my app could be seen as controversial because it is religious in nature. I'm wondering if someone with the wrong religious persuasion is going to be the one reviewing my app and I'll get the "does not pass the objectionable material test" after waiting for weeks. ARGH!

Hi Mikehash!


I work as a tv director, so im used to think and create scripts and ideas wich turn into fun for people, money for the channel.

I am thinking to get into the appstore bussiness, hiring a(or some) programmers,artist and well... a team to develop for the iphone.

So i am scouting the web looking for info about wich tools i have to get ( or buy) and so on.

I found your post, that catched my interest ( as long as scared me a lot!).

And i question to you... Is that hard develop a game for iphone??

Does it take that complex and time waiting-wasting process??

well, having an app created and tested, and get it on sell one month after, is not an extreme big deal to what i calculate, but it is a considerable amount of time.

I am in Spain,so being from out of the US gets the things worse than what you explain??

Hey, thanks for the post and the answer!

^_^
Alex, I have to ask, why do you think that you can get into the app store business like this?

From what you say it sounds like you have absolutely no relevant experience. And while I realize you would be hiring the programmers, the manager of a programming team still has to know something about the business he's in. It's as if you suddenly decided to go get into the offshore oil drilling business, or start an airline. You need relevant expertise in the field, and you don't have it. You can get it, of course, but the first step in this process would then be to go learn about computers.

It sounds to me like you've caught the gold rush mentality of iPhone development. I can't blame you for that, as it's pretty common, but it seems to have blinded you to the fact that you need knowledge of the business in order to be successful in it. My recommendation: forget about iPhone work and do something that's within your area of expertise.
Mike,

A couple questions:

When you pay your $99 you only have the ability to run your app on one iphone? If I know someone else who has an iphone and has paid the $99, can I test my app on his iphone and can he test his app my iphone?

I haven't seen anyone mention Iphone development books. Obviously, this won't take the place of being able to talk to other developers, but are there any books out that that people have found especially helpful?
Your ability to install things on real iPhones comes in two forms:

1) Development. You install a certificate and a provisioning profile and build with Xcode and it installs on the phone. This can be done on many phones, but you must use Xcode to install this way. I don't know what the limit is.

2) Ad hoc. You generate a provisioning profile and a special build of your app. The user then dumps these into iTunes, which loads it onto the user's device much like a purchased app.

#1 is part of the whole process outlined above, #2 is an extra bit of difficulty to get right on top of all the rest, but the user doesn't need to use or even have Xcode.
Well, the same was told to Atari on its begginings, but a appreciate your words of "go get down on earth".

I know just too few stuff about computers, its true.

Im more into knowing how to make deals within people, and how to learn what people wants and how the want it.

also helps my studies in psichology into achieving this.

I didnt know how to use properly a professional camera and today im running an entire tv, wich is increasing its profit at a steady pace by just creating programs that people like to see.

( and by the way, turning crazy all my technicians, because i spend all the morning meetings asking them if we can do this or that into ways that seem impossible, but i know ( and found out) that when you give a tech the opportunity to do something that looks like impossible, they eventually find a way to make it with what we've got here, that comes me to think sometimes that we have gone to the moon and back probably thanks to some tech that said "impossible? hah, you will see!").

What i mean to say with this is, Yes, youre right i have foreseen the opportunities that the appstore starts to be in terms of bussiness and cash making.

and yes, i have the only experience about games of being a gamer since kid. xD ( and i know that is not quite precisely what i need).

But i learn fast. Or i get around me people who knows what i lack. and form a team.

that is my experience that repeats over time since i was 8. getting into things in wich i know nothing than i want to know and be.

and i do it! I ran a store, then a disco, today a tv. with any experience before. but surrounding with people who really know what are they doing in that field, and learning from them.

maybe my talent is to make easy for me to create teams.


So tell me, what do you think that I should learn prior to get into this appstore quest?

thanks again for the interest shown in your response. its good to hear back stuff from someone with his feet planted on the ground.


( answering to your good advice, since a kid, looks that my area of expertise is getting my nose into unknow places... and get a success out of 'em!).
Alex, since you obviously seem to have the capability to get what you need and find people who make up for your lack, I'll simply wish you good luck (and note that you're about two years too late to "foresee" the opportunities of the App Store).
Need some Help!!

Hi everyone. This post is very helpful. I had a team develop my first app. I have some questions which may help alot of others who hire developers to create their applications. here goes.

1. The hired team has their own provision file and code. I created a new provision file for my company. Do I have to code the program differently or do I just submit the folder with files created by the hired development team and my provision profile? I do not know how to code. The program worked when I dropped the developer company provision profile and folder with code into my itunes library.

2. provision profile - Do you create a separate provision profile for each application or do you keep only one provision profile for all applications. I ask this because the provision profile says the app name in it and if I use for a different program I create in the future I do not want to have the wrong program app name in it.

Thanks for ANY HELP!!!!!

-James
OK guys, this is not a support forum. Please read over all relevant material available at http://developer.apple.com/iphone/ and, if your questions then remain unanswered, take all support-related questions to Apple's developer forums or another appropriate venue.

Further tech-support type questions (and answers) will be deleted without warning.
well written and great info mike - thanks.
i have been a professional developer on large systems for many years, am thinking of diving into iPhone dev more for the learning & fun then expecting to make any money. if i sign up as an individual dev, and by some miracle i end up with an app that is able to be sold, can the account type be changed to corp at that point? also, are the materials (e.g. api doc) provided by the Apple Dev program sufficient or do you need to supplement with lots of google searches, listserv perusal, etc?
@mikeash

it was quite enjoyable reading all your comments. thanks for pwning newbs, 4eva
You can transform your account to a corporate account by asking Apple, just be prepared for it to take a while.

As for the docs, it's just like Cocoa programming. Apple provides good references and decent conceptual docs, but virtually no tutorials or in-depth explorations of a given topic. External resources are a must until you gain a lot of experience, and often even then.
I think process is getting better..touch wood , I've submitted my app "iCommander" on 28th of May and it's got approved on 6th of June, I had catered for bitta contingency hence selected 13 th of June for release date.
I've 1 promo code left, your review will be much appreciated.
I wish a very good luck to everyone.
W39947TKYHAL

@mikeash

Thanks for the post, I'd been searching all over to find any indication as to whether or not the review steps incurred an additional cost, i.e. every review submission to Microsoft for Xbox Live Arcade apparently costs on the order of thousands, as they seem to do a fairly intense software review of each game. The cumbersome process doesn't surprise me, but at least it doesn't eat up funds in raw cash every time an app needs an update.

I noticed a comment posted in Oct. '08 about the possible lifting of the FNDA that would allow developers to more freely converse and help each other in the community. Has this happened yet? I'm a long-time PC developer, but have been researching X-Code and the iPhone 3Gs and getting close to committing to some *gasp* Mac hardware for the sole purpose of porting some of my works-in-progress to the iPhone, and am doing due diligence in making sure I know precisely what I'm getting into beforehand. Now I just have to hope that AT&T will support tethering soon, as that is a feature that I can't go without if I switch away from my old 8525.
Certainly you're right, the review process as-is is better than paying a ton of money for it! The thing is, the iPhone development process is way better than a lot of other platforms, but I compare it to the Mac, where there is no review process, I can install whatever I want without anyone's approval, etc.

The FNDA is long gone (happened sometime in late 2008, probably not long after you read about it).

For tethering, it sounds like they're going to get on it soon, but if you don't mind doing a little hacking, an easy google search will get you easy directions for setting it up now (and no jailbreaking either).
It is reassuring to see that al this mess of certificates & approvals also exist in consoles and other mobile devices. I was afraid it was some kind crazy thing Apple had come up with.

Still, I think Apple can do better and I hope they'll eventually let people publish their apps on their own in a more streamlined fashion (instead of what my nightmares tell me: Apple making the Mac application distribution in the same fashion as the iPhone's, with some kind of MacAppStore).

However, I developed for the Newton PDA many years ago and for that, besides buying the SDK, you only had to define a 4-letter signature as the creator of the apps. Apple would just register your proposed "signature" and, unless it was already taken, you were good to go.
This entire thread was amusing! Months ago I toed into the process, installed a basic interface on my registered device, and decided that I would be better served by investing further time into my current platform. It really isn't as effortless as I hoped, but as evidenced by the plethora of neat, terrible, and pointless apps; if you have the time, and the will it's not rocket
science. I gather from a handful of threads that in contrast to other platforms, such as computing cards, the iPhone platform isn't too bad. Being new to Obj-C I was hoping to spend that weekend learning the syntax & inspecting API's, instead of tinkering with keychain, and Xcode info files. I'm sure you're used to using Interface Builder but the process of linking interface elements to code seemed unnecessarily convoluted as well. Oh well, I'll be back to check in again with the next big OS / dev-platform upgrade.
Certainly the problems aren't insurmountable. The thing that really bothers me is that they're unnecessary.

I used to play around with custom code on a Lego Mindstorms. (Lego robotics platform if you aren't familiar.) Getting code onto that device was at least as hard as getting code onto an iPhone, maybe harder. And I had a lot of fun with that, and never ranted about how hard it was to get code onto the device.

Why? Because the difficulty of getting code on was an inherent part of the platform. I was working with a custom third-party kernel hacked up by people in their spare time, using an infrared link from a platform that Lego never dreamed of supporting, and a cobbled together toolchain that had to be coaxed just right.

Meanwhile Apple has all the parts it needs to make iPhone development simply a matter of build and go. And then from that base, they then put in a huge amount of work to make it difficult to install code. In other words, all the work I go through to make iPhone development function is because Apple put in a lot of extra work to make my life difficult. All they had to do was leave well enough alone on that part and everything would have been easy.
True enough! Perhaps these hoops are intentional to deter an even greater flood of submissions of which apple must review for appstore inclusion. I wonder when it will be possible to distribute the apps without the appstore, as it is with mac apps. Is their concern truly that apps may in some way harm the carrier network, or sidestep carrier-lockin, or what?
I don't think it will ever be possible to distribute apps without the app store. I don't think that they're main concern is carriers, because otherwise why lock down the iPod Touch, and why refuse to carry things like pornography? As far as I can see it's about control, pure and simple. It's their platform, and they want to be able to regulate what third party applications are available on it.

I can understand the desire to do this. The idea of spending years developing this neat little pocket computer only to have people do all kinds of nasty things with it is disturbing. But ultimately you ought to let people do what they like. I doubt Apple ever will though....
I suppose they wouldn't have been able to prevent tethering for as long as they did if apps were freely distributable. I think this is the type of control they want, but I wonder how much they gain from treating the development platform differently than mac development in this sense.
This has been great blog so far. Thanks to everyone.
I am also considering developing applications for iPhone. The process of getting accepted to App Store sounds a little bit scary. I am wondering how is it possible to get your application developed by a software company and then submit the code to App Store. Anyone have any experience with this?? What should I pay attention to if I follow this route?
This is a great article - thanks

and all this for a 'free' app!
was it worth it?
Well, it was a paid app at the time. Anyway, no, not worth it at all. I do not plan to develop any more iPhone applications.
Thanks for this Mike, you have no idea how much easier this has made things for me. Myself being entirely alien to the Mac platform in general, it shed some necessary light on things I had no knowledge of, and I could actually get stuff running about an hour after I had gotten my certificate.
Wow love your story I imagine everyones mileage is different on the process. Amazing how the comment section is way longer than the article.
I suggest that the onus to test your app falls squarely on your shoulders, not that of Apple. The fact that you did not do sufficient testing is part of a problem with your process, not Apple's.

We are professional iPhone App development company. We have produce quality app for all over the world.
I would delete this last comment as spam, but the %20 in the URL breaks it and is hilarious.

As for testing, I suggest you read through all of the comments posted before you post your own. This issue has been addressed extensively. Your post brings absolutely nothing new to the table.
Jeez, I wish I found the whole thing as amusing as you now seem to be able to. I was once an extremely proficient Mac developer but am just jumping back in to develop some personal utilities. I am dumbfounded.

These complexities Apple has created are, simply, pointless - as you've well identified. And the chorus of other developers with similar problems is frightening!

Me, I've got all my certs and have followed all the steps. I give up.

Maybe I should have bought an Android phone...
Mike, I'm very grateful to you for posting your story... and to the others who chimed in with constructive comments. Heck, I'm even grateful to the "You're a whiner" and "I've got the million-dollar idea--guaranteed!" posters for providing comic relief. ;-)

Like many here, I've been through a series of hair-pulling episodes with iPhone development, and have the bald pate to prove it. I kept thinking "Does it have to be this hard... or am I just unusually dense?" It's at least somewhat reassuring to learn that I'm not alone.

Right now I'm stuck on step 13, caught in code signing limbo--not only unable to submit my app to Apple, but all of a sudden, mysteriously unable to even install a development version on my iPod touch, which was working fine until last night.

I'll probably give the App Store submission process one more try, but in the meantime I took a couple of hours today to build a web app version, so that if all else fails, I'll have that. (It was going to be a freebie anyway.)

As a user, I love the iPhone/iPod touch platform... but as a professional developer, I won't be doing any more work on this platform until the situation improves dramatically. For me, the aggravation simply isn't worth it. It's ironic that Apple excels at making life easy for end users... yet won't apply that expertise to developers.
I guess I write in a more amusing fashion than I feel. Fact is that the entire experience was extremely frustrating, and I have now given up on iPhone development altogether because of it. If Apple fixes their junk someday I may come back, but until then I have no plans to do any further work on the platform.
Stop whining. Seriously. Just cause Apple's not opening up their platform to all manner of buggy, beta and alpha releases any yahoo wants to release (like yours the first two times you sent it in, right?) doesn't mean their whole development platform and structure is terrible.
Yeah, it sure is nice having Apple sitting there preventing apps from getting on the store if they, say, crash on startup half the time when the phone is on EDGE. Oh wait, the official AIM client does that!

Yeah, real nice of them to keep crashy apps of the store, yep.

And if you think that my whole argument is built around the fact that Apple acts as a gatekeeper, you need some help with your reading comprehension.
Thanks for the story Mike, and all the follow ups - it certainly sounds like a nightmare!

You say: 'I don't think it will ever be possible to distribute apps without the app store'

I am a developer who was hired a while ago to build a (PC based) application for a client. That client now has provisioned their staff with iPhones, and have asked me if it's possible to port the app I built for them to that platform. I came across this blog researching developing for the iPhone, and your statement above worries me. I don't want to sell this app (intellectual property belongs to the client, not me) - but it doesn't sound like there is any way to get it onto their iPhones without going through the app store? Am I reading that right?

Sorry if this is a silly question, I'm very much a PC developer, and have never even seen an iPhone in real life yet!
The situation for getting apps onto a phone is a bit more complicated than this, so you have a few options.

For options officially supported by Apple, you have:
- The store. You know this.
- Development certificates. Each phone has to be registered with Apple, then a profile generated including the phone, then the application built with that profile and installed using Xcode.
- Ad hoc certificates. The same basic thing as development certificates, except that you actually get a profile/app pair that can be installed using iTunes.
- Enterprise development program. I don't know much about this one. According to Apple, it's "For companies with 500 or more employees who are creating proprietary in-house applications for iPhone and iPod touch."

That's it. If this company is smaller then your options pretty well suck. Everything requires a foolishly large amount of manual labor per phone unless you actually go through the store, which is stupid if it's supposed to be an internal application.

I should also note that development certificates (and probably ad hoc certificates) expire, typically after a few months, requiring rebuilding the app after that time. Yeah, it's insane.

And of course there's still one option not officially supported:
- Jailbreaking.

Once you jailbreak a phone you can put any software on it that you like.
Mike, this was a GREAT post.
A terrific read.

I know you posted this last year, but its still very valid. I've just gone through the exact same thing myself (and am currently waiting to be accepted ... the first time.)

I see that this particular app is free ... but I would like to know if, after a year of your app being listed in the app store, if it was all worth it?

Have you made any money from advertisements or - perhaps word-of-mouth-visitors-to-your-site... or even programming jobs because of it?

Also, curious to know how many downloads you've had in a year.

Thanks again for the initial post Mike. Great read.

Marc
You'll probably be interested in my followup story that I posted recently:

http://www.mikeash.com/?page=pyblog/the-iphone-development-story-one-year-later.html

The short version: not worth it, the process stinks, I've given up.
I have applied for the iphone Developer Program before 25- 30 days didn't get any reply from apple .. Now what next we can do
Amazing story, wow, I mean with the sheer amount of money spent on PR, at apple and the reputation that apple stuff just works, wow, I am really surprised, But I know I should not be,

  It looks like red tape, I once told a friend to dump Microsoft and buy apple, of course they never listen,

   Back then I think like 1998, apple was low Microsoft was high, now it appears that they have reversed and then some,
so my advice to buy apple in 1998 turned out to be a great bit of advise. Which I liberally told all my friends, at least all who would listen that apple would someday eclipse Microsoft in dependability and stock price,

Needless to say I was laughed at, with serious derision and scorn,

I would just like to say, who's your daddy now, #$%$

Anyway, I really would love to see a better process and thank you for taking time to share your experience.

It really helps to hear the inside scoop.
I'm glad a read this posting, I just tried to download the 2.8GB iphone SDK with XCode yesterday. It took 14 hours and crashed around 2.4GB when I eventually had to go to sleep.

I'm doing this for fun so I think I'll just develop for Android instead.
I can relate to this story a little too well :) We are iPhone developers, but luckily this year the approval times seem a lot better, more like 3-4 day initial reviews and 1-2 day re-reviews.

Good luck everyone
@Tom Bodet at 2010-03-18 17:03:36

Did you follow your own advice and buy a boat load of apple shares back when they were low? You'd DEFINITELY be laughing all the way to the bank if you were to cash in today...
well that was very informative, i want to develop applicaition for iPhone, can you forward me to a good step by step tutorial.
thanks
mudz@ymail.com
hey man. you mentioned you and your partner in one of your steps. i am in the process of setting my account up and am wondering if my partner and i (yes that is two of us) could go with an individual or company account. can you please help us with making this decision? thx
I recommend going for a company account. We started out with an individual account, but it's less flexible than a company account and costs the same, so there's no reason not to go for company. We converted our individual account, but it was a big pain. The one downside for a company account is that you have to prove that your company actually exists. However, Apple will accept a partnership agreement as proof, so this just requires that you find a boilerplate partnership agreement on the net and that you both sign it, no registration or payment with local government required (at least if you're in the US).

Even with a company account, only the primary account can do things like submit apps, so it's not the best, but I think it's still better.
What bugs me is that I'd have to pay $99/year if I wanted to run apps I develop on MY DEVICE!!!!
Thanks for sharing your experience.
Wish your app selling well in app store.
My story consists of only step 1, because $99/year is way off my league. I'm a high school student anyway, am I supposed to run to my mom and ask "Mom, I want to develop for the iPhone, can we sacrifice more than one week's worth of food and drink to do that?" (No, I'm not kidding.)

Even more brutal, I just found out that another friend of mine (in high school) got his parents to sign him up for the program so that he can play with the betas of iOS 4. He knows nothing about C, let alone Objective-C.

I love my life :|
If you're low on cash and high on time, I suggest looking into jailbreak development. If you end up with something you can sell, you can always switch to the official program then.

Or do Mac development....
This is a wonderful post! Only wonder how long all these scary steps would take to get a small app into the store.

It would be really nice if someone can point to the steps for submitting the app through Cydia.

Thanks in advance.
As far as I'm concerned to submit the app through Cydia you don't need to make any steps. You just upload on their site. Cydia can be installed on the iPhone or iPod which is JailBroken.
we are small developer team. we want to develop an application for apple store. but we are in enrollment step. I want to know what is different between individual and company enrollment? how apple verify a company or persons? which one of license can help us to develop better?

thank you!
Hi,

I work on iPhone development. But I feel, besides all the technicalities that you have mentioned in your post is true and good, but the major thing, i feel, required to survive the tough market challenges in iPhone development requires innovation and creativity. And that alone can get you a trusted band of followers. Would like to know your views on this.

Hey Author,

I work on different Application such as (iPhone ,iPad and android) but now i get chance to work on Window Mobile Application so that phone is similar to iphone or little bit different.
free and open source software rocks!!!
Great Post, thanks for sharing your experience :)
That's exactly why I recommend Nov8rix to create apps for both iPhone and Android!! Simply supply them with content, discuss what you want the background designs to look like and bam, it's done at low rates, competitive to others and you get more for your moola with them. You can do a self setup or get the full-service and both have unlimited changes. I found them through a TUAW review: http://www.tuaw.com/2011/06/13/click-and-drag-iphone-app-creation/

The only thing someone needs to do is supply the content they want in the app and complete the iOS developer account setup in a matter of a few seconds. Nov8rix takes care of the submissions.

In general either the iPod touch or the iPhone is fine to test on, unless you need to make use of some of the features that the iPhone has and that the iPod Touch hasn't, such as GPS, cellular data, microphone, camera, and in the latest iPhone 3GS, a compass. Otherwise you can use either....
The one downside for a company account is that you have to prove that your company actually exists. However, Apple will accept a partnership agreement as proof, so this just requires that you find a boilerplate partnership agreement on the net and that you both sign it, no registration or payment with local government required (at least if you're in the US).
You forgot to mention that Apple pulls all your stuff out of the store once you don't renew your developer's contract.

I wrote an app and learned that iAd worked properly on my own network and not on Apples. So for the first week or so after release, at a time when apps are making the most income that they're going to make, my app was totally free.

I'm convinced that writing iphone apps for monetary reasons is a sucker's bet. I doubt that 95% of developers even earn back the money they pay for hardware, software, and fees. The only entity that benefits from your hard work is Apple. I don't know why Apple gets so many free passes... they're worse than Microsoft ever was.
Do you wanna develop your iPhone Apps? come check out our website, http://www.taoteapps.com, we have a lot information to help making your mobile deployment a success.
I'm interested in reading this article once more later on. It is a lot for me personally to absorb, nevertheless it's very interesting and I want to understand.

Regards,
tim @ http://www.vinitysoft.com/
Far more better than Android ISO, there is continues improvement in developing apps for IOS. Compared to the simplicity of developing and distributing a Mac app, Apple's iPhone program is extremely convoluted and strange.

Borlat @ http://www.ppm-factory.com
I am cosmically frustrated with Apple. For a company that made fame based on user experience, they have turned into a monster. I am sick of Apple - not only because of their arrogant hoop-jumping, but they have come up with some of the most stupid, broken, dysfunctional web interfaces I have seen.

I am currently locked out of development, because of credit card issues. I cannot log in. This is no longer worth it.

Anyone considering starting a company to make apps or developing your own app - I strongly recommend you consider some other option. Unfortunately there are not many. Google Android is the best alternative, but then again, they are another mega-monopoly, intent on gathering our personal data, so theres that.

Whatever the solution, I am about to say goodby to Apple for good.

-Jeffrey Ventrella
www.ventrella.com

Comments RSS feed for this page

Add your thoughts, post a comment:

Spam and off-topic posts will be deleted without notice. Culprits may be publicly humiliated at my sole discretion.

Name:
The Answer to the Ultimate Question of Life, the Universe, and Everything?
Comment:
Formatting: <i> <b> <blockquote> <code>.
NOTE: Due to an increase in spam, URLs are forbidden! Please provide search terms or fragment your URLs so they don't look like URLs.
Hosted at DigitalOcean.