Difference between an iOS Enterprise app and iOS retail app - ios

I used to work on an Enterprise iOS product which our company used to sell to big enterprise companies for their employee to use.
The app was made available via the AppStore and the enterprise users were provided company specific profiles (containing app config files) to enable the respective feature that they were entitled to and use the iOS software. This app is only meant for enterprise customers and their employees only.
I would want to know/understand what is the difference between Enterprise iOS app and a normal retail app (an individual publishing an iOS app in store for retail consumers to buy and use) as I was asked this question in one of the interviews.
One thing I know is the for Enterprise apps, you will have tons of paper work, T&C and NDA's to be signed between the Enterprise customer's IT and the app providing organization.
Apart from this is are there any differences? I mean any differences with respect to the way app is submitted to the store? Or any additional security requirements for an app as it is an enterprise app? Is there something that differentiates and enterprise app from an normal app?
Thanks & Regards

Your app cannot have been developed using an Apple enterprise account and Enterprise distribution profiles because Enterprise apps cannot be placed in the app store.
There is no difference in terms of development of an Enterprise app versus a non enterprise app, there's nothing additional to do (there's a little extra to do to distribute it, see last paragraph).
The only differences are you have to have an Apple Enterprise developer account and its gets signed with a different set of certificates and profiles.
As an Enterprise app does not go onto the App store is is not subject to Apple app store review and therefore you can implement more functionality that you could with a regular app (for example, you could use background modes, use private apis etc.).
There is additional work required to distribute the app, you typically might host it on a web site and make it available for download by the Enterprise users, you have to set up a few bits and pieces and create a manifest file to enable all that.

Related

Distributing iOS app as a B2B custom app and also making it available in the general app store

I have a requirement from a client who would like to distribute my app available in the App Store via. Apple Business Program to their employees. Of course, there will be some client-specific customizations added to the app but those will not take effect in a non-MDM environment. So it should be safe enough to distribute the app in the general app store. However, I would like to understand the possibilities of distributing an app (without having to maintain 2 different code base] through general App Store AND as a custom B2B app.
I have been going through some documentation from Apple about signing the paid app agreement.
Paid App Agreement Info
Custom Apps
It says:
Once this contract is requested, you can’t undo this action or revert to the Developer Program License Agreement for free apps
Does this mean that once I sign the agreement, I can't update my free app in the general store?
Other Questions:
Can there be free apps and custom apps submitted under the same iTunes Connect account?
Is code signing requirement different for a custom B2B app than app store app. Ex: different kind of distribution certificate?
If code-signing requirement is not different, can the same binary (same bundle id/version number) be uploaded under different iTunes Connect account – one as a free app and the other as a custom app?
The section you have quoted refers to the legal agreement you have signed. Once you have signed the Paid App agreement, you can't "unsign" it and revert to the Free App agreement.
It does not refer to the types of apps you can distribute. You can distribute both free and paid apps under the Paid App agreement.
In answer to your other questions:
Yes
No, custom apps are signed for App Store distribution, are still uploaded to App Store Connect and are still reviewed by Apple
No. In App Store Connect you will have two apps (one custom, one free) so they will have different Bundle IDs at least, even if all other code is identical. You will need to upload different builds.
If your custom app is absolutely identical to the one you are proposing to offer as a custom app, then you may not even need a custom app; the company can use Apple Business Manager and their MDM to obtain your free app and push it to their users. You do, however, need to consider what would happen if some other organisation distributed your app via an MDM; would your customisation "activate" and would that cause a problem?

iOS - Can iOS app be deployed for internal company user only

Is it possible to deploy an APP to apple app store, but only allow internal company user to download the APP by their own? Thanks.
Yes it is possible with Apple Enterprise Developer Program.
The Apple Developer Enterprise Program allows large organizations to develop and deploy proprietary, internal-use apps to their employees. This program is for specific use cases that require private distribution directly to employees using secure internal systems or through a Mobile Device Management solution.
Just to augment what others have said there. The Enterprise program is what you want. It allows you to distribute your app to as many devices as you like. But as it's not going through the Apple app store, you will have to work out how you want to do it. There are third party servers out there for doing this sort of thing.
You can also simply "roll your own" by simply creating a web page on your LAN with a like to the downloadable app. The Apple documentation has the details on doing that.
Also note one difference between an Enterprise app and a app store app, is that the Enterprise app certificates will need to be renewed every year. Which means that you will need to update the app every year or it will stop working.

best way to deploy iPhone app to the end user without submitting to the app store

I have made an app for doctors only for education purpose only. because of copyright issues I don't want the app to be on the app store. So I am planning to host the app on the my website with authentication. I have distributed app this way to the clients before and I know the difference between apple enterprise program vs developer account. I came across the issue that you can not deploy app to your end user via this method because it is violating app store terms and condition. After reading many forums I came to know that b2b program can be the solution. I know that b2b app store you still have to go with app store standard procedure So my questions are,
1) If your app is free, will it still violate app store terms and condition.?
2) What is the flow for b2b program once you submit your app to apple.?
3) Is b2b also violating the terms and condition for my scenario.?
Note - I know already how to get enterprise account or apply for b2b program. I have an organization to deal with this. I also know that the enterprise program only allows you to distribute the application file among employees with registered devices in your company, not to anybody else. :)
Thanks.
1) Free apps are still held to the same approval standards of paid apps.
The best way is an iOS enterprise account. Once you have an enterprise account, you can host signed Apps on your own website and your clients can download them directly to devices using OTA distribution. There is no Apple review for distributing apps this way.
Note that enterprise accounts are meant for distributing apps in an organization and not publicly. I think as long as you limit distribution to a specific group (not publicly) then you will not violate license agreements. Read the actual agreement to make sure it fits your needs.
Check out this question for details of how to setup OTA distribution:
IOS Enterprise Distribution Through OTA

iOS App deployment without AppStore

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

How to distribute ios app to my European enterprise customers NOT through appstore

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.

Resources