I have a question about the licenses of iOS and my application.
I am developing a application to run on a lot of iPad's for a consulters company. This company will download the (IPA) file from our web interface, and sync the devices on iTunes. Is this possible with the simple iOS Developer Program licence? I think that this is the famous ad-hoc, and not the in-house distribution from Enterprise Program. I am really confused about this licence and the Enterprise Program.
Thanks.
Since iOS 4 was released, you don't have to manually download the IPA and sync through iTunes, you can install by tapping on a link on a web page. You just need to create a plist file and point the link to it with a special pseudo-protocol. The details are in the developer library.
The individual / company developer account can handle that with ad hoc builds, but it sounds like the enterprise program is a better match for your needs. Ad hoc builds expire after a few months, it's limited to a hundred users and getting the UDIDs from the client can be a real pain. I've gone down that path before, and it's not unusual to receive UDIDs as screenshots of iTunes embedded in a Word document or incomplete/wrong, even after you give them step-by-step instructions on how to do it properly.
The enterprise program has its own drawbacks. It can take a while to get set up, and the company needs a DUNS number. However once it's set up, you'll find it easier to work with.
The standard developer program will let you distribute to 100 devices per year. That's the ad-hoc mechanism, and it isn't intended for what you're doing, although it certainly will work assuming you have fewer than 100 users.
The Enterprise program is designed for what you're doing, but costs more and has different details.
With the individual and company plans you have a limitation of 100 devices that you authorize with ad hoc distribution. Besides you have App Store access. If the number of devices is > 100 then applying to this program is not useful and then you must revert to the enterprise program.
The enterprise program gives you unlimited number of devices that can be authorized but no access to the App Store. In such case the consulter company must be enrolled to this program and can distribute the apps only to its employers or members. Finally this program provides other than ad-hoc distribution even in-house distribution, that is a form of automatic app distribution (like a simplified app store but for the company only). Finally note that in order to apply to this program the company must own a DUNS number.
Clearly if you want to have both options, that is in-house distribution and App Store access the company can enroll to the two programs.
Related
I know questions like this one have been asked over and over again but I couldn't find an answer that goes straight to the point.
I have seen guides that seems to allow you to distribute your app OTA without having to be part of the Enterprise program.
I also have seen some tricks where, if you don't have a SSL certificate in your hosting, you still can use dropbox to configure your "links". (Enterprise app deployment doesn't work on iOS 7.1)
In summary I have used dropbox as it was indicated in one of the answers I found before and it totally worked. The problem is that I tried to test it in a different device and it didn't work (typical message
Unable to Download App. xxxx could not be installed at this time.
I'm signing the app using a distribution certificate and I'm using a provisioning profile for distribution:
I know it can sound pretty obvious that all that is meant to work only for the AppStore or ad-hoc distribution (this last one requires to collect all devices UDID and it's not what i'm looking for).
I would like to know if it is definitely possible or not to distribute my apps "in-house" without having to be part of the Enterprise program. If true... what I'm doing wrong?
Note: the guide you link to is not for in-house app distribution. That blog post is about ad-hoc distribution without using iTunes. It's not about not having to provision your devices or getting around paying for the Enterprise program.
It is possible, but it still requires the business to spend some money.
If the business is enrolled in the Volume Purchase Program then you can identify them as the authorized purchaser of your Business 2 Business app when you submit it to the App Store. Regular customers won't see it.
Unfortunately, Apple does not say up front how much it costs a business to enroll in the Volume Purchase Program (I'm guessing that it varies) so I don't know if it's cheaper than the Enterprise Program.
I have my first client who doesn't whant the App I am developing in the App Store, he wants his clients to have access to the app using like a Ad Hoc distributions (without the 100 devices limitation by Apple)
IS there a way to do it, or I have to stick with App Store and wait for the countless 15 days approval for any new release?
I read about the enterprise but the users are not employees but customers, I believe it doesn't apply
You have a few options. Firstly you will need to decide what is the likely, minimum and maximum number of people that will be using the application and how they will need access to it.
Low maximum < 100 users. You can use ad-hoc distribution with 100 devices using a normal apple developer account.
High maximum (Clients don't need to be able to download the app themselves). You can use an enterprise account (As you mention could be lightly risky as it may be breaking their terms not 100% sure, would merit some further reading. If you can go through the approval process shouldn't be to hard).
For both these methods you can then distribute the application using a distribution solution such as Silverback or for cheaper options that will require more effort TestFlight or HockeyApp (Not their original purpose but will function for what you need)
High maximum (Clients need to be able to download the app themselves). You can use Apples B2B solution or if you have an internal sign up process something like Silverback.
Another thing you should look into is showing your customer that a) approvals don't always take 15 days for updates (They initial process of putting it on the app store is longer) and b) you shouldn't be having countless versions being uploaded all the time.
You should also explain that you instantly gain access to new customers that can stumble upon your application generating more business and potential customers are more likely to trust an application from the appstore.
I should also mention although silverback is the only MDM/alternate distribution I have used it is very pricey and I'm sure there are cheaper alternatives.
Just to elaborate on the enterprise license use. Are the customers part of a large organisation? One of the projects I worked on was with a large company that needed to distribute applications to 1000s of employees. We asked them to apply for an enterprise license and make us users on the account allowing us to use ad-hoc distribution with and enterprise license. There was a major draw back from this as their IT support manager whom created the account left after 6 months and didn't hand off his email account which lead to all the profiles on the enterprise account expiring which meant a day of downtime for the application.
The best way for you would be to enroll with Volume Purchase Program for Business.
Once your customer has a volume purchasing account with Apple, they can get custom B2B apps you’ve built for them. Customers can select the app and enter the quantity they want to purchase from the Volume Purchase Program website.
Alternatively you can just use a standard membership with a limit of 100 devices and distribute your app using services like HockeyApp or TestFlight.
Another rarely mentioned method of iOS app distribution which may be suitable, is if the app's price or it's support cost is high enough that an extra $99/annum isn't a deal breaker. If so, then each customer or customer business can enroll in the iOS Developer program themselves, and (if necessary) be given a User account on a Mac so that they can generate their own device registrations and Ad Hoc app Distribution certificates.
Then the app can be distributed as source code, as a project containing a pre-build static library containing the app without source, or (as an offered consulting or support service) as an app pre-built and signed by the Developer but using the customer's own Ad Hoc Distribution certificates.
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
I am developing an iOS app of which my clients would like roughly 50 people to beta test. However, I don't want to have to keep adding UDIDs to my developer portal account and to generate a new provisioning profile each time. Is there a way in which I can distribute the beta without having to go through the aforementioned painful process of adding a new user? I'm thinking something automatic!
Look forward to hearing your responses!
Using a standard individual Developer enrollment, testing any app on stock OS iOS devices requires generating profiles with each device's UDID. No exceptions.
So you have to keep adding UDIDs to your developer portal (or let testflight gather them for you), or tell the client no more. (I would consider charging the client a sufficiently large additional amount for each extra device to be added after the initial batch, that you will become happy to do so, instead of it being a "painful" task.)
The Enterprise program can only be used for employees of the enrolled developer, not clients or customers. If your client has a D&B rating, then they might be able to enroll themselves in this program to allow distribution to their employees without gathering UDIDs.
The developer portal has an option in which you upload a list of your user's UDIDs (look in the device tab and click "Upload file"). Just prepare your beta user's UDIDs and upload once, then you can just generate an ad hoc profile once and wirelessly distribute this.
Note the file format should be (tab delimited):
device_id_hex_40_chars description_text
... ...
The first line of the file is ignored, so you can add a header.
If you're willing to pay the $299, then you can join the iOS Enterprise Developer program and distribute applications using iOS Enterprise distribution. This lets you distribute to an unlimited number of users.
https://developer.apple.com/programs/ios/enterprise/
Otherwise I'd suggest Testflight.
I am currently developing iPhone app, and I use a "Apple standard program".
At the moment, I am deploying this app to users with OTA with distribution certificat and OTA (over the air) installation.
It's working but i'm limited up to 100 devices.
I read that the "Apple Enterprise Program" don't have this limit (of 100 devices).
Is it right ?
If I enroll to Enterprise program, will I need to get UUID devices in order to generate provisioning profiles to deploy my app (like I do now with standard program and my 100 devices users) ?
Thanks for feedbacks.
No you don't need to know the UDIDs for Enterprise distributed apps.
It's very important to note however that you're not allowed to distribute Enterprise Apps to People other than your employees or other members of the organization which enrolled in the Enterprise Dev Program.
You should be aware that Enterprise distributed apps are signed with a special distribution certificate and provisioning profile which only allow the app to run after the device had an opportunity to check with apples servers if your certificate is still valid. This means that Apple, should they happen to learn about illicitly distributed Enterprise apps, is perfectly able to shut these apps down by revoking the distribution certificate. Furthermore, those certificates expire each year anyway just like the regular distribution certificates do.
Unfortunately, there's no real solution to your problem - I happen to know, because the 100 device limit put a halt to a research project of one of my clients, too. In their current form, the available development programs as offered by Apple offer only a minimum of flexibility. You might want to contact them about it, if enough people do, maybe they'll change something one day.
The Apple Enterprise Program will only allow distributing within the organization. Further Apple restricts the Enterprise Program to large organizations and there are other restrictions as to membership.
If you are looking for general distribution the Apple Enterprise Program is not an option.