Next article: It's a Poor Carpenter Who Blames His Tools or: Xcode Sucks Again
Previous article: NetAwake
Tags: iphone rant
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....
This step is going to come up again. I believe that this time the answer came the next business day.
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.
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.
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.
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.
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.
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!
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!
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.
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.
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.
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.
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.)
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.
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.
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.
Oh well, luckily we have plenty of work to do on the Mac side of things...
Apple is far beyond this, but still has a long way to go. Thanks for the writeup
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.
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.
The App Store model sucks.
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.
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
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.
@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!
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.
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.
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.
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.
Try disconnecting and powering off the device; then power the device on and reconnect it."
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
a beta team is great. Find people to debug and check your app in the field before you submit. It really helps.
"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.)
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!
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.
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.)
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
Check it out if interested.
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.
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.
Did you get any email at step #22? I am at the step for more than three weeks.
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.
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.
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.
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.
They have to defend both themselves and their users.
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)
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.
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>.
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.
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.)
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).
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).
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.
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.
This is what I received:
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.
Has anybody else had this problem?
What is the solution?
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.
I think jailbreaking is the best solution for free app
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.
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.
Bundle identifier. It can be your friend, or enemy. ; )
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 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.
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.
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.
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 ?
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.
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.
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.
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.)
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).
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?
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 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. email@example.com
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!
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.
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?
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".
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.
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
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?
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.
I wish more developers had to go through this hoop before releasing a product to ANY market. :P
The other guy whose post I just deleted: My blog is not a job board, please take it to a more appropriate forum.
Show me the money!
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.
Best of luck with your future apps,
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?
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.
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!
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.
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.
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 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!
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.
"iPhone developer program
The fastest path from code to customer."
:) That made me smiling
God this is frustating...
quiet interesting unlike others I'm not given any sort of change in bank details form to fill.
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.
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?
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!
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.
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?
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.
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!).
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!!!!!
Further tech-support type questions (and answers) will be deleted without warning.
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?
it was quite enjoyable reading all your comments. thanks for pwning newbs, 4eva
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've 1 promo code left, your review will be much appreciated.
I wish a very good luck to everyone.
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.
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).
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.
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.
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.
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 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?
and all this for a 'free' app!
was it worth it?
We are professional iPhone App development company. We have produce quality app for all over the world.
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.
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...
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.
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.
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!
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:
Once you jailbreak a phone you can put any software on it that you like.
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.
The short version: not worth it, the process stinks, I've given up.
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 doing this for fun so I think I'll just develop for Android instead.
Good luck everyone
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...
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.
Wish your app selling well in app store.
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 :|
Or do Mac development....
It would be really nice if someone can point to the steps for submitting the app through Cydia.
Thanks in advance.
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.
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.
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.
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.
tim @ http://www.vinitysoft.com/
Borlat @ http://www.ppm-factory.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.