I recently went through the process of distributing a free custom B2B app in the App Store. I hit a few snags, and I found very little information about the process, or help in online forums, and Apple Support assistance was very slow. So I'm documenting what I learned here. I hope it helps someone.
A custom B2B app is an iOS app that is distributed through the App Store, but which is only available for purchase by a specific set of customers. It lets you take advantage of the App Store infrastructure while still restricting distribution of the app. Thus, it can be an attractive alternative to using the iOS Enterprise Developer Program or ad-hoc deployment to distribute in-house apps.
There are some significant restrictions:
- The customers must be members of Apple's Volume Purchase Program (VPP). To enroll in the program, the customer must have a DUNS number. To purchase apps, the customer must use the VPP portal rather than going through the usual App Store mechanisms. When the customer purchases apps through the VPP, they receive redemption codes when they can then distribute to employees for installation on devices.
- The VPP is currently only available in the US. (It is "coming soon" to Australia, Canada, France, Germany, Italy, Japan, New Zealand, Spain, and United Kingdom.)
- Even though the apps are targeted at the needs of a specific set of customers, they still must go through Apple's review process, which takes time and could result in a rejection.
There used to be another restriction: B2B apps had to have a minimum price of $9.99, and Apple would take a 30% commission. This may not seem like a significant restriction, but many potential customers would balk at paying a per-download price for a custom app after paying up-front development costs. However, Apple recently changed the rules to allow custom B2B apps to be distributed for free.
The WWDC 2012 session video "Building and Distributing Custom B2B Apps for IOS" is worth watching if you are interested in distributing a B2B app. (Note that you'll need to be a registered iOs developer to access this video.)
To distribute a custom B2B app, one must be a member of the iOS Developer Program.
In addition, one must agree to the iOS Paid Applications agreement, and must provide banking and tax information to Apple. This is true even if your custom B2B apps will be free. (I don't know why this is true, but I suspect it has something to do with the original requirement that B2B apps have a minimum price.)
Submission and Distribution
In general, submitting a B2B app to the App Store works just like submitting a for-the-public app. You first create the new app in iTunes Connect, then you use Xcode to upload the binary, then you wait for Apple to approve it. Here is what is different:
- You will need the Apple ID associated with each customer's VPP account.
- When creating the app in iTunes Connect, on the page where you set the Availability Date and Price Tier, there is a Custom B2B App checkbox. Check it, and you will be able to enter the customers' Apple IDs.
- When the app is approved for sale, your customers purchase redemption codes from the VPP portal. It will not be available in the App Store app or iTunes.
Note that you cannot convert a regular app to a B2B app, or vice versa. Once it is created one way, you can't change it. For a B2B app, you can add Apple IDs for additional customers after creation.
What follows is my own personal history of trying to get this stuff set up, and the snags we hit ("we" meaning myself, my colleagues and customers).
The background is that we had initially deployed an app to a customer's employees using ad-hoc distribution to a set of about 20 devices. The customer decided to roll the app out to a few hundred more employees, so we looked at the options, and when Apple announced that VPP apps no longer had a minimum-price restriction, we decided to go down that path.
My initial attempt to add a new free custom B2B app in iTunes Connect failed. The B2B option was not available on the screen where it was supposed to be. We eventually guessed that we'd need to accept the iOS Paid Applications agreement (even though the app was free). After doing that, then the B2B option was available. I submitted the app, and waited.
After about a week, the status went from "Waiting for Review" to "in Review", but we immediately received a message stating that the app would require additional review time. I don't know whether all B2B apps require additional review, or if there was something about our app that raised questions, or if it was just because it went into review on the Fourth of July.
About five days later, the status changed to "Ready for Sale". Mission accomplished, right? No. The customer reported that they could not see the app in their VPP portal. We found information online stating that once an app was accepted, it might take 24 hours before it would be visible. So we waited 24 hours. Customer still couldn't see it.
After a few days of exchanging email with Apple Support, we finally heard that we needed to supply banking and tax information to Apple (even though the app is free). So we did that, and then the customer could see the app in their VPP portal. Woo-hoo! Now we're done, right?
No. When the customer attempted to "purchase" the free app, they got an error message saying "An unknown error occurred". So we send more email to Apple Support. Eventually somebody at Apple gives me a phone call, and tells me everything is set up correctly in iTunes Connect and the App Store, so there is nothing more we needed to do, and that the customer needed to contact VPP support to resolve their purchasing issue.
We told the customer they would need to contact VPP support. The customer reported dissatisfaction with VPP support (the word "sucks" was used). The customer was also annoyed to discover that their MDM solution, MaaS360, supports purchase of App Store apps, but does not support purchase of custom B2B apps through the VPP. Thus, when they download redemption codes from the VPP, they have to manually mail them out to employees, rather than relying on the MDM to automatically update the managed devices.
So, the end result is that the customer didn't love this solution, but they can live with it. If we consider the B2B route with any future customers, we will definitely have some discussions about the pros and cons.