Supposing the following scenario:
Company A asks company B to produce an IPad App for them. Company A only wants to use it for themselves on a very limited amount of IPads (less than 100). Company A is not necessarily interested in offering it on the app store.
How can company B distribute the app (sell it) to company A? It could install the App on the iPads via ad hoc provisioning profile, but this is only meant for testing and the app can't be used once the profile expires.
How can B legally install this app on the iPads without the app expiring after one year?
When using the app store, is there an option to sell the app only to this company, or to specific users via the app store, when the companies are not located in the U.S. (I heard about B2B distribution which can only be used in the U.S.)
Would the enterprise distribution be the option to choose? But then company A must have an IOS developer enterprise program ticket, so that it can install the app on its iPads, and not company B, right? Yet company B is the developer here... Or would it be legal, if company B had the IOS developer enterprise program ticket, installed the app on some iPads and sold the iPads to company A?
Enterprise distribution is exactly what you want in this situation.
Company A can participate in the enterprise developer program and install proprietary apps on any of their devices freely:
https://developer.apple.com/programs/ios/enterprise/
Note: I've worked on several proprietary apps that we simply released through the app store at a price that would prevent others from purchasing it. It's the easiest way for the client's employees to get the app on their device and it has resulted in new business for us when others have seen what we've done.
Related
Can a business with an Apple developer account distribute an app that is only purchasable by a VPP account with the same DUNS number?
I'm looking to develop an app for a particular client, and it needs to be able to be manageable for a few years. I don't want to do an AdHoc build as we will not be able to re-distribute the app every year when the provisioning profile expires. So my question is: can I buy a few licenses for my app and distribute the codes to the client to determine what devices they install the app on? I've heard mention that you cannot buy an app with the same company you distributed it from, but I can't find ANYTHING specific in Apple's specifications for it. I also don't want to make the client sign up for VPP, as they don't have a firm company or DUNS number (it is a prototype).
Spent an hour on the phone with Apple Developer support and the answer is NO- you cannot have a VPP with company X buy a B2B app from a developer for company X.
I'm developping an App in my company. We want to distribute this App to our customers but without using the AppStore from Apple, is it possible?
I heard about MDM (mobile device manager) but I'm not really sure if it will cover this need?
I heard also about Enterprise developer license for in house deployment but if I'm understanding correctly it means the App can be deployed only inside my company and not to our customers, is it correct?
Thanks for your clarifications.
Seb
If you are trying to get apps to customers without the App Store, you have options, but none of them are awesome.
There are many choices for over the air distribution of the binary, that really isn't the complicated part. You've got MDM solutions, HockeyKit, TestFlight, Manual server manipulation - all are fairly easy and well documented.
Where things get nasty is in the signing. If you definitely do not want to participate in the App Store environment (no app store, no Volume Purchase Program), you only have two real options:
Ad Hoc - Limited to 100 Devices. Devices must be explicitly added to a provision.
Enterprise - No device limit, devices do not need to explicitly added to provisions. In effect, these builds will run on any device; the caveat, you are not legally allowed to distribute these builds to anyone outside your company.
If you intend on developing an application for some other company and their employees, then your only viable option is to sign the final build with a signing certificate attached to said company's development account. The enterprise signing route is a really great approach, if you can get the company to sign all the paperwork to get their own developer account, owned by them.
For stock iOS devices, you really have only 4 choices:
1) Ad Hoc distribution to up to 100 total max devices per iOS Developer enrollment (including wireless Ad Hoc via manifest file & SSL.)
2) Enterprise distribution for distribution to employees of corporations with a D&B rating.
3) Apple's iTunes App store if your app is approved by Apple. (This includes the B2B program and account/password protected apps.) (This now also includes up to 1000 people using Apple's new Testflight service.)
4) Unlimited distribution to other people who have their own individual, company or enterprise iOS/Apple Developer enrollments. The distribution can be either as an Xcode project with source code or a pre-compiled library, or as an ipa or archive file that the customer can (re)codesign with their own Developer certificates. For applications priced at well over $99 per customer, the cost of this annual developer program enrollment might only be a slight additional cost to the customer (and given appropriate legal authorizations, might even be handled as an annual paid service.)
4 b.) ADDED UPDATE: As of Apple's release of Xcode 7 (in late 2015), anyone with just a free Apple ID can use Xcode 7 on their Mac to install apps from build-able Xcode projects directly to their own tethered iOS devices this way, with no need to pay $99 to Apple to enroll. See this answer.
This essentially allows unlimited distribution to anyone with physical access to a current Mac and who knows how to run Xcode.
Options (1), (2) and (4) do not require going through App store approval. There are no other options for distributing apps to stock OS iOS devices.
You could take a look at https://testflightapp.com/.
We use that a lot for customers that only need a app for testing doing the development phase and for apps that are used for conventions (limited time, limited number of units).
Testflight is very easy to use for both developers and end-users, but it is not very well suited for apps that are going to be used on a large numbers of devices, since all devices that are installed to needs to be in your provisioning profile which has a limited number of slots.
EDIT
The testfligt approch is no longer valid. You can now use the TestFlight integrated into itunesconnect. Alternatively you could integrate crashlytics.com, at use their distribution system. It works pretty weill
We have created a messaging app and regularly post updates to the appstore. This way, appstore contains always the latest & greatest, with a small risk of bugs.
We want to build a stable version for our business customers (who do in-house messaging), which updates very seldom or never. Our customers want to control the rate of updates themselves.
Telling their employees not to upgrade does not work, since new installs always get the latest version from the appstore.
Question:
Can I use the enterprise distribution certificate of my own company and deliver the app binaries to my customers (e.g. a different binary per customer)?
Or should I create a different version in the appstore for each customer?
Or should I force my customers to request their own enterprise distribution certificate, which is a hassle I would like to avoid?
I guess that the answer to my first question is NO, as indicated in Can the iOS enterprise app development program be used to distribute apps to other companies but not via the app store?
2 is annoying, since everybody in the world can see & install the app
3 is annoying, since it requires time of my customer plus a legal contract such that I can request a certificate for my customer, use their private key, ...
By your contract you are not allowed to do that.
But Everybody does it. And i had phone contact with a apple employe which told me that they won't go behind that case.
And imaging: should apple check all installations of all enterprise deployment programs? Impossible,... even for Apple.
I would just try to get not more installations than 1000.
The iOS developer program allows you to distribute Custom B2B Apps directly to your customers if they have Volume Purchase Program account.
Custom B2B Apps
You can also offer custom B2B apps directly to your business customers who have a Volume Purchase Program account. A custom B2B app provides a unique, tailored solution to address a specific business need or requirement.
If you have customers who are not located in the US, I recommend the third option: making our customers have their own iOS Enterprise Developer account.
I work in a company, a client ordered an internal iOS app for his company.
What am I supposed to do to give him the application only for his devices without appstore? Do I need a special developer account? Thanks.
To distribute iOS applications internally or to a limited number of clients, you will need to be member of the Apple iOS Developer Enterprise Program, currently the price is $299 / year. For more information, take a look at this article at developer.apple.com.
If the number of devices is less than 100 per year (including all replacement and upgrade devices), the client can get their own iOS Developer enrollment and use Ad Hoc deployment.
If you use your own developer account, you may run out of allowed devices, and end up out of business till next year. So that's not recommended. Have the client enroll, and then have them let you use their account for deploying apps for their devices.
Ad Hoc app deployment requires renewing certificates and provisions every year to keep the apps running.
If the number of the client's iOS devices is much greater than 100, then for deployment to stock OS iOS devices, you may have no choice but to submit the app to Apple's app store.
I contacted Apple Support regarding to this question, and got this answer:
Thank you for contacting Apple Developer Support regarding our programs.
Companies who wish to work with consultants or contractors should themselves enroll their company in the iOS Developer Program Standard or Enterprise program. The developer should keep in mind that the employee submitting the enrollment must have authority by their company to bind the company to legal agreements on behalf of the company. At this time, each client must have their own Apple Developer Account if located outside of the US.
Once accepted in to the program, the company may then add their consultant or contractor to their Team Member list as a user or admin. The company Team Agent would then later submit their application to the App Store under their own company account/name.
Googling this topic I get a sense there are three ways apple allows to distribute the app to end user. However it's still quite vague how exactly each one of these methods actually work and differ.
Ad Hoc Distribution - how does this really work. does this method not require the app to be submitted on app store ? If Yes , then where will the user download the app from and how the installation procedure works.
In-House Distribution - how does this work ? some text i came across suggests we can host the app on a private enterprise server and allow users install from there. If this is true apple would have no way to regulate the app.. not so clear.
App Store deployment - this one i understand how it works as a consumer of some apps i have purchased from app store. In this case the app will have to be submitted to app store first and then available for any number of users to install.
The other question I had on the same context is to be able to deploy the app via one of the ways what type of dev license is required to be procured from apple ?
Ad Hoc Distribution - This is most commonly used for sending the applications to beta testers, you register their UDID in your Developer Portal and then send them the app bundle and a provisioning profile. They drag these into iTunes and can install the application.
In-House Distribution - If I recall correctly this is only available if you have Enterprise license, you can deploy this app to all devices associated with that account (so all of your companies phone for example)
App Store Distribution - This is when your app ends up in the App Store, you submit it to Apple after code signing it, then they review and it gets accepted.
Hopefully that clears things up a bit for you.
For distribution methods 1 & 3 you must have paid the $99 developer fee, number 2 you must have paid $299 (I think that's the right price) for the enterprise developer license.
For the Ad-Hoc thing: You can add up to 100 devices per year to your dev portal. Those 100 devices are then able to install specially signed Apps from you.
To add a device to your portal you need it's UDID. To distribute an App via Ad-Hoc you need to create a special Ad-Hoc distribution profile for the App, sign it with this profile and then send the compiled .app file bundled with the profile to your users. They will then be able to install the app via iTunes, just like they've downloaded it from the App Store.
Note: Removing a previously added device from the list does not increase the device count by.
That's pretty much it, am not familiar with in-house distribution.
Apple's definition of "in-house" distribution basically means: buy an enterprise developer account.
http://www.apple.com/iphone/business/apps/in-house/resources.html