by Craik Pyke on 09/09/09 at 7:30 pm
Craik Pyke is telecommunications architect and software developer specializing in mobile applications and an editor for iPhoneCTO.
The proliferation of the iPhone has led to a general recognition by enterprises of the iPhone’s potential as a delivery vehicle for applications. The more publicized and therefore common approach for Enterprises is to obtain a standard developer’s license and produce an application that extends their brand, increases their value proposition or simply generates increased eyeballs for their website. SalesForce.com is a well known example of an enterprise providing mobile client access to their hosted capabilities via an iPhone application.
There is another facet to enterprise applications – the Enterprise Developer’s License. The enterprise license provides a key benefit to the IT department of a company; namely the ability to develop and deploy applications in-house, without the need to drive employees to the iTunes to gain access to the application. In-house application deployment permits an IT to develop and deploy exactly what they require, without wading through Apple’s approval processes or lead times to get into the App Store.
The process between the Enterprise Developer Program and standard Developer Program are effectively the same. Namely:
- Setup up the development team
- Obtain the iPhone development certificates
- Assign devices for the developments team (i.e the devices that are for development specifically)
- Install the target OS (3.1 by example)
- Create the Application ID
- Create and download development provisioning profiles
- Build and install your application
The above portion of the development process is the same for both programs. Therefore, if an Enterprise doesn’t want or
is unable to resource iPhone developers in house, they can, at a minimum, contract out the development (just be sure to have your assignment of IPR ownership worked out to avoid issues with the developer later).
Distribution is, of course, where the processes vary slightly. It is in this distribution process for enterpr
ises that I find that Apple does stumble slightly – more on that as we proceed.
When an enterprise is ready to deploy their application (not ad-hoc “Beta” test it), it’s necessary to generate an ‘Enterprise Distribution Provisioning Profile’ via the Developer Program portal. The profile is used both in building the final application version (in Xcode) and to actually install the application.
In my opinion, this is where Apple’s processes breaks down a bit. The mechanism for distributing the application (the .app bundle) and the provisioning profile (the .mobileprovision) is effectively out of scope for Apple. They don’t provide an Over-the-Air push mechanism, nor a push to iTunes mechanism. Instead, Apple defers the responsibility to the enterprise, stating in the User Guide that distribution is to occur “…using your company’s authorized software distribution mechanism.” My perspective though is that there are two problems with this approach:
- There’s no means to enforce/guarantee employees install the application. I’m not envisioning a big-brother monitoring and reporting application, but if you want ubiquity of the application to your mobile workforce, you’d like to make sure they have the tool actually installed. This may not be a significant issue, but it certainly is a consideration.
- There’s no control over where the application goes. Once the application and provisioning profile are out, they can be installed on any iPhone / iPod Touch. Apple warns in the same user guide “Please ensure to protect the distribution mechanism of this type of application as it can be installed on any Apple device if compromised.” I realize and fully support the notion of permitting employees to bring their own devices, but the inability to contain an application to a known set of devices can be a discouraging reality to enterprise IT.
Of course, I’m not discouraging Enterprise in-house distribution. I believe it is an excellent mechanism to distribute applications without the need to pass through Apple’s approval process or worry about the associated delay. I don think through that an Over-the-Air mechanism, building on the profile/policy pushes already available with the iPhone Configuration Utility.
Overall, Apple is definitely ensuring the iPhone can be successfully deployed into an enterprise environment. In this particular case, to truly compete with RIM’s BlackBerry success, Apple needs to support the same push of in-house applications that RIM has enabled to its enterprise users.