I've just started using Air Watch to distribute in-house ios applications. Unless I build the Ad-Hoc profile with the UDID explicitly listed in the profile, my app will not install on any enrolled devices. Anyone know if there is another way to get these applications installed over AW without managing a list of thousands of UDIDs? Indeed there are ways of using a plist file and distributing from a webserver, but we need a way to remotely wipe the installed applications when a device, or employee, goes MIA.
Unless the device is jailbroken, maintenance of the UDID list is required by Apple for anything outside of the App Store. This is enforced by iOS itself. It's obnoxious, but it's the way it is.
If you need more than 100 devices for in-house deployment, be sure to look at Apple's Enterprise Developer Program. The program supports many more features than the regular developer program's ad-hoc system. To enroll, visit https://developer.apple.com/programs/start/enterprise/
Related
I have an Enterprise Program account in the Apple developer program. Currently I'm using TestFlight to distribute an app, which still seems to require that the distribution profile contain each tester's UDID (even for Enterprise apps).
Are there any alternatives to TestFlight (aside from basic DIY placing of the files on a webserver somewhere) that will let me
a) distribute my Enterprise app without the UDID hassle,
b) still allow some control over who installs the app,
c) offer some features similar to TestFlight?
I've googled for this but it's tricky to formulate a search for these criteria.
Update
The Enterprise program forbids distribution of the app to anyone outside your own organisation. I'm curious if this would apply to a service such as TestFlight; this might exaplin the lack of such 3rd party services that can distribute your enterprise apps in the true enterprise fashion (as opposed to treating them as Ad Hoc where UDIDs are required still).
TestFlight now supports uploading of Enterprise builds (without any UDIDs associated). Maybe it always did! I was convinced for a long time it wasn't permitted, but I can't find anything to substantiate that now.
The "hassle" is caused not by TestFlight, but by Apple - the device will reject the application if it's not signed for it, so there is no service working without UDIDs.
ps. You could always jailbreak your devices and disable signature checking, but I'm not aware of any service which take advantage of this.
I have a doubt. Please guide me. I am planning to create an iPad app, but I want to install this app on the iPad without using the UDID in my profile. I have checked the "Enterpraise Account", but without this approach (like sideloading apps on android) is there any possible way to do this? Are there any problem that may arise?
Kindly guide me.
No, Your options are either AppStore or Enterprise account. With the enterprise account way having meny restrictions.
The enterprise account will allow you to distributie the app to the register company only, if you do distribute the app to non employees of the company Apple will close down you account.
You could look at jailbreaking, but you won't reach as many user as you will when distributing your app via the AppStore.
Because of the closed nature of the distribution of apps within iOS, you don't have a choice.
The only way to load an application onto a device, without caring what the device ID is, is via the Enterprise programme or App Store. The Enterprise programme is like a controlled, secure, sideloading process (if we want to to have an analogy with Android), but is limited to distribution within an Enterprise only. The App Store means you have to publish the app to Apple, and follow their rules.
To get the app on the device, without using those two methods, you need to create an Ad-Hoc build, but this requires the device ID, as it'll cross-reference it with the provisioning profile provided. If the device ID is not linked with a provisioning profile for the application, the device will not let it run.
The unofficial way to load an app on a device without needing it's device ID is via a jailbroken device, but that's unreliable and requires the user to be tech savvy.
NO, there is no way to distribute app via ad-hoc for any device(not having UDID) without Enterprise license.
I programmed an app for a company and would like to install the app on their iPads without having to submit the app to the App Store since its a commercial app for just this company. Is this possible without connecting each iPad to my MacBook and putting a developer certificate on it.
Is there another way? What about using an URL-link or QR-Code (linking to this url)?
Thanks in advance
Your question is about installing apps without iTunes and the Apple App Store. This is entirely possible and supported by Apple but you are still bound by your developer account's ability to only build signed binaries for 100 devices for testing purposes only.
You can distribute your apps over the air via services like hockeyapp.net and testflightapp.com (free) but these services are just hooking into the iOS system's ability to install signed binaries over the air which has been possible since iOS4. There are several open source projects that provide the bare bones HTML and Javascript/meta tags to install signed binaries over the net - one such one is iOS Beta Builder
If you are creating Enterprise apps for clients (that will exist in production, not just a development environment) then your only legitimate way to provide your clients with apps that won't expire is to use Enterprise Developer Account. The enterprise account has no device limits but the apps you sign with enterprise certs phone home to Apple each time they're launched and are strictly only allowed to be used for a single company and their current employees.
It is because of Apple takes 30% of all the payments, isn't it?
The only way I see is to create usual web-site which runs via browser without installing
I have created an application for a company that I need to deploy. The application is for internal use only so it will not be available on the App Store. Do I need a UDID for each individual on whose device the app will be installed? That would be impossible since there are 500 employees. Does anyone have a good documentation or experience on deploying the iOS iPhone application using the Enterprise Developer Program only.
With the Apple ENTERPRISE Developer Program you can NOT distribute an App in the Apple AppStore.
Its purpose is to collaborate an In-House App in your own company.
The Enterprise account does not necessarily need the UDID of your target devices. You can for instance also use a link which remotely installs the app directly on the device.
You can find more details here: https://developer.apple.com/programs/enterprise/
If you are trying to deploy applications to customers/users on a production/long term basis, you can deploy an applications outside the apple store in three ways:
manually via iTunes
directly via iTunes Configuration utility
via weblink (sent via mms, email, webbrowser etc.)
In order to distribute an application this way, the application must have a special corporate signature, and each device must have a matching corporate signature installed manually.
The best overall explanation for the process is available at this link.
If you're just testing on a handful of test devices, then you I would suggest two approaches:
a dev release to a test device follow step by step instructions here.
Or you can use a helper application to deploy a beta release: testflightapp.
You can do distribute your iOS app to only a particular set of people (in your case, your company employee), by following these procedure
Get a apple enterprise developer account
Create a distribution certificate and provisioning profile
(In-House) using your enterprise developer account
Archive the ipa file using the created certificate and
provisioning profile
While saving the ipa, click on the check mark. So, the plist file
is also created.
Host the plist and ipa file in your server
Include a download html file with a href tag with src
"itms-services://?action=download-manifest&url=https://mydomain.com/apps/MyInHouseApp.plist"
Now when you click on the link from your device the app will get downloaded.
I don't agree with the previous answer. Check this document page 26.
MDM servers can deploy both App Store apps and in-house enterprise
apps to devices over the air. Both paid and free App Store apps can
be managed by an MDM server using Volume Purchase Program (VPP)
managed distribution.
Once you have VPP and Enterprise Developer account you could be able to install apps in the app store or company owned apps into the managed devices.
Further for just deploying the in-house app you could follow this 9 step process.
If you need to deploy to many devices i suggest AirWatch. I've used it many times, it can be a bit frustrating to set up but once you have it working its very nice to have.
Testflight still requires udid and the limit is 100 for 1 year before you can reset. Enterprise deployment is best method for in house apps.
TestFlight offers over-the-air beta distribution of iOS apps (on non-jailbroken devices). How can this be done? Is this an iOS feature, or a vulnerability exploit?
This article showed how Apples OTA implementation works and can be used outside enterprises as well: ios wireless app distribution
The complete process is documented by Apple.
Apple also published documentation and sample code for registering devices and get the UDID by using profiles, so your website can detect which device is calling.
Some additional solutions with different strenghts:
iOS Beta Builder, a Mac Application to create the website by using a build. Simply upload the resulting files to your webserver.
Diawi: Simple Web service. Upload your IPA file, optionally set a password and send a link to your testers.
AppSendr: Web service for beta build hosting, similar to Testflight, but does not include the device registration process. But provides deployment utilities to automatically upload new versions.
HockeyKit: Open source project for hosting beta versions on your own PHP5 server with additional functionalities like an client for In-App-Updates, automatic device specific web sites and handling multiple applications. Completely file and directory based.
HockeyApp: Web Service for beta build hosting, In-App-Updates, Statistics, and including device registration, invite and recruitment. Also provides server side crash report collection, symbolication (for all threads) and crash grouping for beta and app store apps (iOS + Mac). SDKs are open source, using HockeyKit, QuincyKit and PLCrashReporter (which is the only safe solution on how to do crash report collection on iOS, see this article.
Note: I am the main developer of HockeyKit and QuincyKit, and one of the developers of HockeyApp.
This was possible before TestFlight rolled out a service. The technique stemmed out of the enterprise distribution mechanism. Since 4.0 devices have supported install from web.
Remember - you still need to sign the beta distribution for a select set of UDIDs you can't just willy nilly install it on any device. All they are doing is taking the email the IPA step out of things.
See:
http://www.alexcurylo.com/blog/2010/08/27/wireless-ad-hoc-distribution/
Update: I want to say that Test Flight is one of the most helpful tools I've used when developing though. Just taking the IPA emailing out of the picture was an understatement- I was just trying to call out the technical mechanism. They do a fantastic job managing the whole beta process. Getting new devices enrolled. Notifying users etc.
Testflight basically uses the normal Ad Hoc as already stated.
For this to work, you need the UDID for every device in order to add it to the Ad Hoc profile, re-compile the app with the new profile an redistribute the new build.
You can get the UDID with the help of the OTA Authentication Request. This is actually a step that is done in MDM before the actual profile is rolled out to the device. It basically asks the device for further information about itself and send it back to a self specified server.
The first step is documented here: Apple OTA Configuration
I guess Testflight uses this right after the registration process to collect the UDID, phone name, ...
Yes this is a core feature of iOS for Enterprise Customers who wish to distribute OTA.
Presumably you would pass your UDID over to TestFlight along with the app and they use their Enterprise Licence to send the app to you. I'm sure I'm missing a lot of the technical details but if you want to know more, Apple has a video on this from WWDC 2010.
Login to developer.apple.com, go to WWDC 2010 Videos and use the link to get to the vidoes. The video you want is "Session 108 - Managing Mobile Devices". It is very informative about what is possible with OTA and the steps you have to take to do OTA provisioning.
Stock iOS devices are "vulnerable" to running the user loading Ad Hoc apps from any developer who has that device's UDID, and registers that UDID among their 100 allowed devices on Apple's developer portal.
OTA distribution is just another way to install an Ad Hoc beta test distribution from an enrolled developer.