Companies often ask us for advice in what the current possibilities are for developing an app for their own use inside the company. Sometimes they are confused about which Apple Developer Program they have to choose, or how to distribute the app to their employees, or if they have to publish that App on the App Store or not. They have heard of MDM, VPP, Custom B2B, Enterprise Program and other acronyms and want to put the pieces of the puzzle in the right place. I will try to do that in this post.
Apple Developer Enterprise Program
Companies can develop proprietary in-house apps using the Apple Developer Enterprise Program. This program has a cost of 299 USD per year and allows the company to distribute the apps to their employees.
There is no limit now to the minimum number of employees to be able to enroll in this program (it was 500 before), so any company can do it, as long as it is a legal entity. To check this, Apple requires a D-U-N-S® number (a unique nine digit number widely used as a standard business identifier that is assigned by Dun & Bradstreet) in the enrollment process, to verify the identity and legal status of the company.
Once your company is enrolled in the Enterprise Program, you can add as many developers (team members) as you need to your team. Team members can be internal employees if you have your own team of developers, and also external contractors, in case you need to contract development services to an specialized external team (like us ;-).
One of the advantages of Enterprise Program in respect to the rest of developer programs is that the apps are not submitted to the App Store and are not reviewed and approved by Apple. That means that you have full control of your apps, and you decide what and when to distribute. This is great when you need to update an app as soon as possible due to critical bug. The minor disadvantage is that the apps are not hosted by Apple, and your company has to provide a way to host and distribute them (more on that later).
Although you can distribute the apps to any of your employees without passing through the App Store, there are a couple of things to keep in mind to prevent an app from suddenly not working on a device. Enterprise apps need both a valid Code Signing Certificate and a valid Distribution Provisioning Profile to be able to run. First, the Code Signing Certificate is valid for three years and you will need to distribute an updated version of the app signed with the new certificate before that period finishes or the app will stop working (you can have up to two valid Code Signing Certificates at a time, in order to do this). Second, the Distribution Provisioning Profile is valid for one year. You can renew it at any time, and the good news is that you do not need to update the app binary to update its provisioning profile (you can even update it silently over MDM).
Custom B2B Apps for Business and Volume Purchasing Program
If your company, instead of doing in-house development, wants to contract the entire development process to a specialized external team (us again ;-), then it can use Custom B2B Apps for Business and Volume Purchasing Program (VPP).
In this case, the company enrolls in the VPP, and the developer creates an app that is specific for that company and submits it to the App Store. The difference here is that in the process of creating the app in iTunes Connect, it is marked as a Custom B2B app, and associated with the Apple ID of the company allowed to buy the app. This Apple ID is the one the company has used to enroll in the VPP. When the company uses the VPP store to buy apps for the devices it manages, it can buy apps that are on sale on the App Store, and also the tailored custom B2B apps that are available only to the company.
Custom B2B apps are not visible on the App Store, they only appear on the VPP store. They can be associated to multiple Apple IDs. That means that a custom app can be distributed to a specific set of clients.
This apps are hosted and distributed by Apple, and that means that they go through the normal process of review and approval as normal apps do.
Although the apps are sold, the pricing scheme can be very flexible. Apps can be free or have a price (with different price tiers). As the developer has to associate the app to a client (or clients) that will buy licenses in quantity, they both can arrange different types of deals. The developer can directly charge the client a price for the development of the app, and then sell the app for free, or just sell the app with a price per unit, or a mixed approach.
Compatibility of solutions
These solutions are not mutually exclusive. A company can opt for both. On one side it can enroll in the Apple Developer Enterprise Program and develop in-house apps. Simultaneously, it can also enroll in the Volume Purchase Program, and buy custom B2B apps developed specifically for them.
As I mentioned before, a custom B2B app can be associated with multiple client Apple IDs. This opens the door to a third scenario, also compatible with the other two. The company itself could sell custom B2B apps to other companies (using another Apple Developer Program). For example, a company that is a manufacturer, and wants to give an app with its product catalogs to (and only to) its distributors, which are different companies (different legal entities), could do that.
App Distribution and Mobile Device Management
Once your company has an enterprise app ready, you have to host and distribute it to the devices of your employees (remember that these apps are not hosted by Apple). You can do this by hosting the app in an intranet, or by using a Mobile Device Management (MDM) solution.
In the case of custom B2B apps purchased through VPP, the app is hosted by Apple, and MDM solutions can integrate with VPP to distribute the App to devices and users. Apps can be assigned to a user or to a device, and reassigned to another user or device when necessary.
Using an MDM solution to manage the apps allows you to configure apps remotely, manage versions, set policies for network access such as per-app VPN and control which apps can export documents. To all of these, you have to add all the benefits that a MDM solution also provides related to managing the devices of your organization. There are several MDM third-party solutions and Apple also provides its own solution called Profile Manager that is available as a feature of OS X Server.
Apple also provides Apple Configurator, a free OS X application that is available on the Mac App Store, that you can use to do basic setup and configuration of devices, and to install apps and content (with some limitations). Apple Configurator requires that the device has to be physically connected to the Mac, and can be used to configure devices to be used in a shared environment like schools. It can also configure a device to run in Single-App Mode, enabling scenarios such as showroom and kiosk apps.
Companies now have a greater variety of solutions to develop and deploy their own apps, be it for their own use or for a limited set of its clients or partners. Almost every scenario can be covered with great flexibility and it is a great time to jump on the wagon of being mobile first.