Chapter 6. Enterprises and the iTunes App Store

I’ve spent quite a bit of time talking about technical details of iOS development in the enterprise, but now I need to return to reality for a bit, and talk about some of the logistical headaches involved in large corporations that want to interact with Apple. In specific, it’s time to talk go over all the cultural impedance mismatches you’re likely to encounter as you shepherd your first app into the store. This chapter is structured in the form of a countdown to launch, with a list of all the things I know of that could be preparing to bite you in the butt at any given time. However, I’m sure that there are new and unique disasters that people are going to discover, so don’t take this as an exhaustive list. Your mileage in (Cupertino) California may vary.

Things to Start Worrying About Immediately

So, it’s day one of your new project, the first iOS project your company has ever shipped. You may not know it, but it’s also going to be a chance to meet all sorts of new people inside your company that you may never have had contact with before. And that adventure starts today, because you’re going to have to seek out your company’s legal department.

Legal Considerations

Almost the very first thing that you’re going to have to do when you sign up for a corporate iOS developer account is to accept the terms and conditions (T&Cs) of the App Store. Ask yourself, do you personally have authorization to enter into contracts on behalf of your company? I’m guessing the answer to that is no. So, before you really get started at all, you’re going to need to have the T&Cs reviewed by corporate counsel, and be given approval to accept the terms on the website.

This is also a dandy time to have a conversation about what will need to happen the next time the T&Cs change, which happens with distressing regularity. Pretty much whenever any new feature is added to the store (iBooks, in-app purchases, etc.) the T&Cs change. While it may be seductively tempting to just check the “I agree” button and go on with your life, it will not amuse the lawyers in the slightest.

This is not a trivial concern. Usually, you only get a window of a few weeks to agree to new T&Cs before your account gets suspended. Imagine if you get a new set three weeks before a product launch, and your legal department decided to be slow to get approval back. These are the situations that keep the American pharmaceutical industry in business.

If you’re really lucky, your legal team may come back and want to make amendments to the T&Cs before agreeing to them. I’ve never personally tried to get Apple to agree to a change in the stock T&Cs, so if this happens to you, let me know how it goes. I suspect with hundreds of thousands of developers to manage, your company isn’t going to appear as enough of a blip on Apple’s radar to get special attention.

While you’re talking to the people with Esquire after their names, it’s also a good time to discuss the EULA between you and your users. If you don’t provide one, you get Apple’s stock EULA. Almost certainly, this isn’t the EULA that you will want to ship with your product. The good news is, you have until the actual go-live of your app to get your EULA in order, but it’s best to get the ball rolling now. Also ask if the legal folks will want different EULAs in different countries, and if they want to have the EULA translated into different languages. You won’t need to actually do this work—your translation team will—but you will need to have it available to cut and paste into the app description at the appropriate time.

If you haven’t worn out your welcome by now, also find out what open source licenses are acceptable to the company, and discuss how any attribution requirements will be handled. Many applications choose to have the attributions for any open source packages they use displayed on a special tab on the Settings page for their app. There’s a great little script I found, written by a Stack Overflow user called JosephH, that will automatically generate these settings pages, I’ve included the script and the instructions on how to use it in the downloadable files for this chapter.

Marketing Considerations

Your next stop should be to the marketing group, probably with your product manager in tow. There’s not a lot of flexibility in how applications appear in the iTunes store. You can’t do much formatting of the text, you get a fixed number of screen shots, and so on.

You need to communicate these limitations very clearly to your creative team, so that they can start thinking about how to best present the new app. Do they want to have an independent website that has a more glossy, polished look, with a link to the app store? Do they want to translate the app store into multiple languages (something iTunes supports)?

You should also make sure that you all agree on what the application is going to be called, and make sure that name isn’t already in use. If it isn’t, it’s probably a good idea to get it trademarked, so that you can prevent someone’s flatulence app from appearing with a similar name.

There’s a bit of a delicate dance regarding reserving names in the App Store. Once you create a new app, you have 90 days to upload a binary into the store, or you lose the name forever. It’s important to note that you don’t need to place the app up for sale, just upload a binary. As will be discussed later in the chapter, it’s a good idea to upload early and often, so this is probably not as much of an issue as it might seem, but it’s important to remember that you may have a window of time where you’ve picked a name, but haven’t reserved it yet. That’s why trademarks can be your friend.

Production Considerations

Ready for your last stop? Find out who controls product ordering and fulfillment, and set up a meeting. Almost certainly, they have never encountered the kind of sales channel that iOS apps pass through, and it will require some adjustment on their part.

To begin with, you’re going to have to explain to them that the concept of a Gold Master isn’t going to apply to the App Store. In point of fact, there is no physical artifact that represents the version of the product you upload for sale into the App Store, because the only way to do it is from inside XCode.

This can lead to some weird circumstances. For example, you may be contractually required to ship a physical copy of the app to some customers. So what exactly is going to go on that CD? An Ad Hoc IPA file? They can’t use it, since their devices won’t be on the provisioning profile. A copy of the IPA that got uploaded to the App Store? You can only install those by downloading them directly from the Store. A README.TXT file? Believe me, you’d rather get this conversation started early, rather than be negotiating at the last moment.

Another issue to discuss is how the final production build will be created and uploaded to the store. It needs (as has been previously mentioned) to be done from XCode, which means a Mac and someone who knows how to drive it. They almost certainly do not want you uploading it from your development machine. The accommodation we came up with was to fire up XCode on the build machine (that runs Hudson), point it at the directory with the sources for the last successful build, and do an archive and upload from that.

But wait, there’s more! How will the product be priced? Will it be given away, and revenue made on server licenses? Will there be volume license arrangements available? Apple has just recently added the ability to do custom volume deals with companies, so this may be something you need to discuss with your fulfillment team. What kind of sales reports will they want out of iTunes Connect? Where do the checks from Apple need to go? Make sure that you’re all on the same page regarding the logistics of selling via iTunes.

Bonus Considerations

If you haven’t run out of hours in the day yet, go talk to the User Experience and UI Design team that will be working with you. Make sure than have looked at Apple’s UX guidelines, so they are familiar with the look and feel Apple expects in their apps.

Also, you’re going to need to discuss graphic assets with them. Depending on which devices you plan to deploy on, you may need as many as four different resolutions of each image, and almost always need at least normal and 2X versions. Make sure that they know about the iOS naming conventions for the various resolutions of images, so they will name them correctly to begin with.

Things to Worry About a Month Before Launch

By now, your application should be pretty close to code freeze. That’s because you’re not a month before launch, you’re two weeks before launch. That other two weeks is the time you should budget for the final version of the app to get reviewed by Apple, potentially rejected once for something weird, and put through the sausage grinder a second time.

Obviously, if you’re not wedded to a specific shipping date, you can be a little more relaxed about things. But if you need to have the app ready to go on a specific date to, say, dovetail with press releases and a marketing campaign, it would be really good to have the app ready.

Apple will, under extraordinary circumstances, expedite reviews. We had to go to that well once, when the test server we had provisioned for Apple to test against went down right before they tried to test it, leading to a bounced review. But it’s not a well you want to draw from every time you do a release, so careful planning is highly recommended.

Get a Binary into Review

If you haven’t done so yet, upload a binary into iTunes Connect and start a review on it. You can have a binary reviewed without putting it up for sale, so this is a good first chance to make sure there are no problems waiting for you down the road. Of course, the app better work, not crash, etc., or it will get bounced. Frankly, if your app is still doing that stuff this close to release, it may be time to have that career-limiting conversation with your manager about slipping the ship date.

The other reason that it’s a good idea to get a build approved now is that, should something go wrong with the approval of the final build, you’ll have a backup (the build that was approved earlier) ready to go live in the app store that may not be perfect, but will do the job.

Double-Check App Store Readiness

Now is the time to make sure that all the legal stuff like EULAs are in place, that you have screen capture and marketing copy for the app store entry, and that any attribution notices are either in the app itself or in the App Store description.

Have a Chat With Your Support Group About Bug Reports

Depending on how you are selling the app (e.g., free with a backend license, directly sold through the App Store), you can expect to receive your bug reports from many different channels. They may show up as negative comments in the App Store. They may come in as calls to the support organization. You can get crash reports via iTunes Connect. Coordinating all this with the support organization will be complicated, and probably something they’re not used to. In some companies, bug fixing is handled by a different group than mainline engineering. If so, are there qualified engineers in the organization that can diagnose and fix bugs in iOS applications?

There may also be some institutional inertia to unstick. Companies used to quarterly or half-yearly patch releases for their server products may be unaccustomed to the idea of near-instant releasability of fixes to the customers through app updates. More than once, we had conversations that started with “but what happens if they’re running the last version of the software?” The idea that you could keep all your customers at the latest release (or require them to update their apps to fix problems) is very foreign to most enterprise companies.

Be aware that there’s a corollary problem that instant updates can bring, which will be discussed in Chapter 8.

Things to Worry About Two Weeks Before Launch

Hopefully, you now have an approved binary in iTunes Connect, in pending status, and the code has been frozen for a couple of weeks with no significant bugs against it. Barring a catastrophic bug showing up in the next two weeks, any new bugs should be put on backlog for your 1.1 update.

Upload the Final Version to iTunes Connect

If you’ve been automatically inserting build numbers into your version numbers, you just need to create a new version in iTunes Connect that matches that build number, and use XCode to archive and upload the app. If you’re doing it by hand, remember that the version numbers have to always increase from one version to the next, and must match between the version in the plist file and the version you create in iTunes Connect.

Once it’s uploaded, it will head off for review. Make sure that if there are test servers the Apple engineers will have to use to test the app, that they are up and any necessary credentials are included in the testing notes in the version description. Believe it or not, Apple does in fact try to use your app—it’s not just some automated servers somewhere scanning your code for bad API calls. I know from personal experience.

Things to Worry About One Week Before Launch

Did your application pass review? No worries, then! If not, you’ll be scrambling to fix whatever caused it to bounce, pleading for an expedited review, and praying to the deity of your choice. As mentioned above, we had a bounce in the final week of our release due to a server glitch, and it was…interesting. The kind of interesting that you, many years from now, can laugh about. A quiet, hysterical kind of laugh.

When to Pull the Trigger

If you haven’t discussed the actual mechanisms of “pulling the trigger” with all the concerned parties, now is a good time. Once you release an application into the store, it can take time to propagate, especially to non-US versions of the store. If it’s critical to the timing of the launch that the app be available at a certain time, it may be worthwhile to “pull the trigger” the night before.

Also, now is the time to work out your launch-day plan of operations. Who is going to make sure that the app is in the store, and that it downloads correctly and works? Remember that until it goes live in the store, you can’t download it and check it. If it’s going up for sale in multiple versions of the store (i.e., different countries), do you have people with accounts in all those countries that can check that it went live?

Things to Worry About on Launch Day

If you’ve done everything right, you should be able to sit back and bask in the glory of a successfully launched product. If things have gone pear-shaped, you hopefully have contingency plans in place so at least you know what direction to panic in. If worst comes to worst, you can always pull the app out of the store.

I know that, in spite of the last week fire-drill, the day that my iOS app went live in the store was one of the proudest in my life. As I type this, I can look up and see a framed copy of the marketing poster for the app, which hangs in my office at home. I sincerely hope that your launch day is as happy and trouble-free as ours was.

Things to Worry About in the Month After Launch

Most likely, you’ll already be deep into your 1.1 or 2.0 project planning. But this will also be the time that your first bug reports will start trickling in. My project was a bit of an aberration, in that it required customers to install a new release of the backend server product, something we knew any of our customers were unlikely to do in the first few months of the release. So we knew that, literally, no one would actually be using our software until close to our 2.0 release.

It’s unlikely that you’ll be in the same boat. And, in fact, we found some problems that were introduced by a maintenance release of the backend, which broke the mobile clients. So, even though no one was using the clients, we had to do a 1.1 release (and a subsequent 1.1.1 release) in the months following launch.

As part of your initial (and ongoing) discussions with your support and production groups, you should have a plan in place for what should go out in follow-up releases, and when they should be released. The App Store gives you a great deal of latitude to get critical bug fixes out to the users quickly, but the existing groups are unlikely to want you to “cowboy” fixes into the Store without proper release controls.

The App Store is the primary way to distribute applications, but it may not fit every customer’s needs. In the next chapter, we’ll look at alternate (legal) means of distributing applications.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset