Distribute Enterprise app in house
You can distribute your Enterprise app without MDM. The way it works is basically you upload the .ipa file and a manifest .plist file to a website somewhere. Then you just put a hyperlink that connects to the .plist file. The end user uses a browser on their device, taps the link, and it installs the app on their device automatically. An easy-to-follow tutorial can be found here. The only problem is that the tutorial uses an older version of xcode that generates the .plist file for you. Xcode 6 will not generate the .plist file, but you can find a sample file here. Just replace the URL of the .ipa file, the bundle identifier, bundle version, and title with your own values.
Enterprise In-House App distribution
I'm not sure you need the UDID of each device in the enterprise program. This answer seems to imply you don't need to.
You definitely can push a new provisioning profile without re-compiling.
You'll also have to plan on updating the certificates each year, see:
An app will not run if the distribution certificate has expired.
Currently, distribution certificates are valid for one year. A few
weeks before your certificate expires, request a new distribution
certificate from the iOS Dev Center, use it to create new distribution
provisioning profiles, and then recompile and distribute the updated
apps to your users.
Source: http://developer.apple.com/library/ios/#featuredarticles/FA_Wireless_Enterprise_App_Distribution/Introduction/Introduction.html
Using TestFlight to distribute Enterprise in-house application
If you are a registered developer with an enterprise account and are making apps for in-house distribution, TestFlight works with those too. TestFlight fully supports enterprise apps and it works much like ad hoc apps for distribution. Just upload an application signed with an enterprise provisioning profile and distribute to your team and only approved members of your team will have access to the application for installation. There is no need to collect device UDIDs for enterprise.
This is response from TestFlight support, so NO, there is no need for collecting device UDIDs and it should work just like I wrote (just invite people to team via email / register link and approve them and they can download the enterprise app) :-)
How do I distribute an in-house app in iOS
So after some more deeper research I have found that the Custom Apps are the best solution.
To clarify for those as confused as me, there are two methods: in House and Custom Apps.
In House is described by Apple as "no longer the standard" but still working. It apparently needs an MDM to work, also an Apple Enterprise developer Program membership. The apps expire every year so you have to keep an eye on it.
Custom App (the new way of doing it). It doesn't need an MDM to work (but can be used with it), the other option is to provide redemption codes that an user can use to download the app in the App Store (or with a direct link also provided by Apple). You won't need an Apple Enterprise developer Program membership but a normal Apple Developer Program membership (an the organization will have to be registered in the Apple Business Manager).
Here you have a step by step guide to do the complete process.
Distribute App in House
If we deploy an app in house does it still need submitting to Apple or does this method overcome this problem?
No it does not require submitting to Apple.
Are there any additional requirements?
Yes, you need an Enterprise developer account. Require your own server to host the apps and need to implement method of distribution. You can also opt for 3rd party MDM services who manage the entire server part for you. But there is a cost involved.
What limitations are there if any over publishing to the app store?
In house signed apps install on any devices without having to add the UDID. Downside to this is illegal distribution of your app, hence the need for secured server or authenticated downloading. Also the enterprise account expires after one year, the apps need to be distributed again with the renewed in-house provisioning.
You can go through Distributing Enterprise Apps for iOS Devices for In-house distribution.
Hope that helps!
iOS In-House App Distribution
If you distribute your app as an Enterprise app you can't tie it to a UDID like ad-hoc deployment (granted as an Enterprise developer you still have 100 devices you can distribute as ad-hoc to).
You can use TestFlight for distribution of Enterprise apps, it allows you to maintain lists of authorized users/devices and you can manage who gets builds etc such that Testflight's installation process will only install your app onto devices you've authorized. Even if the email is opened on a unauthorized device it won't install. Users could still endeavor to get your app off their device and try to install it elsewhere but...
If the devices are all < iOS6 you could references the devices' uniqueIdentifier
and check that against a maintained list of UDID's such that the app can obviously still be installed but it couldn't be run.
Another alternative is requiring them to sign into the app on launch or it won't run.
iOS Enterprise in house app distribution error
You have the wrong type of provisionning profile. It needs to appears as iOS UniversalDistribution
in the provisionning profile list . When creating your provisionning profile, choose Distribution > In House
Related Topics
Uitableview Inside Uiscrollview Not Receiving First Tap After Scrollling
How to Call Presentviewcontroller from Within a Uicollectionviewcell
Once Jailbroken, Will iOS Apps Run with Root Privilege
Pod Install Is Staying on "Setting Up Cocoapods Master Repo"
How to Convert Nsdate into Unix Timestamp iPhone Sdk
Warning: the Copy Bundle Resources Build Phase Contains This Target's Info.Plist File
Why Does My Programmatically Created Screenshot Look So Bad on iOS 7
Black Screen After Adding Scenedelegate and Updating Info.Plist
Waiting for Multiple Asynchronous Download Tasks
How to Install Older iOS Simulators in Xcode 4.2.1 (Sdk5.0)
iOS 7 Uitextview Vertical Alignment
How to Get a Nsurl from an Xcassets Bundle
In Firebase, How to Query the Most Recent 10 Child Nodes
What's the Uiscrollview Contentinset Property For
Check If Uicolor Is Dark or Bright
Uitapgesturerecognizer Tap on Self.View But Ignore Subviews
How to Get an Iphone's Device Name
Correct Implementation of Parent/Child Nsmanagedobjectcontext