URL used to deploy ipa with Enterprise Certificate - ios

I have an Apple Enterprise Certificate and want to deploy my app wirelessly to testers. Of course, I need to specify a URL of my ipa file. My question is, is any url OK?
Currently I put my ipa in the Amazon S3 server, and made a simple website with a link
<a href="itms-services://?action=download-manifest&url=itms-services://?action=download-manifest&url=https://s3.amazonaws.com/test/test.plist" id="text">
When you open my website on your iPhone, you can easily install my app by a tap.
However, my concern is, since the URL is public (you can download the plist file, open it with a text editor, and see the URL of the ipa file), and anyone who have the URL can download it, is there any potential danger?

From Apple's support center:
The iOS Developer Enterprise Program only allows you to distribute
your apps to employees or members of your organization through Ad Hoc
distribution
As far as I understand from enterprise license legal agreements, you must care about security by yourself. The link on ipa file is intended only for your employees and you mustn't make it public.

I think you should use a sort of redirection management of your url in relation to a session login parameters...
Anyhow I agree with #Alex Peda

Related

Make installation link for enterprise iOS app

I have an enterprise account and could successfully create .ipa file with this account. Now our partners can install it by putting the .ipa file to the iTunes and sync their devices.
I have seen that we can put the .ipa on a direct link and users can download the app from that direct link and install it on their devices.
I upload the .ipa to a server but it is not working. It would be much easier for our partners to use a direct link instead of iTunes and sync. I searched about it too but finding results was not clear. Does some one know what I should do? Should I create the .ipa in other solutions? Or maybe adding some files to the server?
You need to:
Decide the URL of the .ipa file on your server
Generate a manifest file. Xcode can now do this for you when you export the .ipa for enterprise deployment, or you can create it manually (see link below for details)
Place both the manifest and the .ipa on your server
Use an URL constructed like this:
itms-services://?action=download-manifest&url=<url of the manifest>
The URL should be URL-encoded if necessary.
More details here:
http://help.apple.com/deployment/ios/#/apda0e3426d7
However, please note that the Enterprise Developer program only allows you to distribute apps to employees of the company that holds the subscription. If you want to deliver the app to third parties, you should go through the App Store, possibly via the B2B/VPP program to only allow specific customers to get it, or they should be subscribers to the Entreprise Developer program and you should use bundle IDs/certificates/profiles registered on their account. This is valid whether your distribute "over the air" (via a website) or via iTunes.

is there any way to distribute ios applications outside app store?

Is there any way to distribute ios applications through my own website, not using app store?
I mean is there any way that enables end users to download the .ipa file from my website with their browser application and install it directly on their iOS devices?
I have looked around in the web and googled it, but it doesn't seem to be any option for it out there, I just want to make sure of it.
Thank You
There are several possibilities, which probably won't match your needs:
Since last month it's possible to test apps on a device without the need of a paid membership.
There's a possibility to deploy an app through a service like TestFlight, but this needs either a profile installed on the device (like HockeyApp) or always new build since the old ones expire after 30 days.
You could deploy an app with the Enterprise Program
The easy way you describe is not possible.
Apart from the options mentioned above there are 2 more methods.
Method 1:
You could ask the user to open a webpage in safari browser with the following link in it.
href="itms-services://?action=download-manifest&url=url of the manifest file"
The app is installed as soon as the user clicks the link.
Method 2:
You can also leverage iOS mdm solutions like Hexnode MDM though its bit of an overkill.
here is a link on how to distribute app without app store
UPDATE:
BuddyBuild service will stop on 1-3-2018, the other alternative I know is https://www.diawi.com
Old ANSWER:
Try BuddyBuild , after making a build you can take link to IPA file and distribute it as shown.
The options include:
App Store (free or paid)
Enterprise Distribution (must be within an organization)
Open source distribution
It does not sound like any of these will meet your requirements, so no.
Further explanation:
Just to be clear, the limitation is not in distributing your .ipa file, it is the ability for users to install it on their phone. iOS requires an app be signed by Apple (from the App Store), from an Enterprise certificate, or from a developer certificate when a valid provisioning profile includes the target device.
Basically there are three ways
App store
With this method anyone with an iPhone can have access to the application. You can distribute an unlimited number of applications like this. Apple gets a 30% cut. Of course, Apple must approve your application.
Ad hoc
You can distribute applications using ad hoc without going through the app store, but you are limited to a maximum of 100 devices. With this method you can distribute your application from a web site, email, etc.
Enterprise
The method is for internal distribution in companies with more than 500 employees. Apple does not provide any more public detail that I could find on this method.
It doesn't sound like any of these methods meet your criteria unless you have fewer than 100 customers and don't plan to exceed that number. It sounds like from the question your customers are not internal to your company.
I would advise contacting Apple. They might be able to arrange some kind of custom distribution deal.
You if don't want to upload your files to the already mentioned web services, you can host your IPA in your own computer and distribute over the internet using ngrok and the approach given by jithin.
I've created a server that does exactly that and also is protected by password. You can check it out here:
https://github.com/Edudjr/IPAServer
To send build to testers or client I am generally using installonair.com which allows to upload IPA file and generate short URL which we can provide to other users and they can download and install easily from that link.
There are other options as well like Apple Testflight, hockeyapp but I found installonair.com is the quick one.
If you have and Enterprise membership you can do this, but it really isn't what they want you to do on a large scale.
Take a look at this question: Deploying an iOS Application Using Apple Enterprise Developer Program
You can use enterprise distribution services like BuildCannon, but you still need an apple enterprise account. I use a custom solution, but it's a pain to maintain.

How was it possible to install iOS app directly from a browser?

I was wondering how was this website able to offer an iOS app for download directly from the browser bypassing the App Store?
(Please be advised that this is an adult-oriented app.)
http://app.941hd.com/ios_download.html
It seems they're using an enterprise certificate, which is intended for in-house corporate developers.
iOS Apps signed with those certificates can be downloaded and installed through a link by anyone, regardless of whether or not the developer has your UDID.
They would be violating their developer agreement with Apple and can expect to have their account suspended when Apple finds out.
I can't comment on exactly this implementation but a similar thing could be done using B2B distribution method. More info here.
You can distribute your app from a web page simply by creating a download link for the .ipa.
When opened in iOS, the application will be downloaded and installed on the device, if the device is registered on the provisioning profile used to sign the .ipa or if the provisioning profile is inHouse.
They have enrolled a Enterprise Account of Apple and they have made Enterprise App , which can be distributed via website and can be directly downloaded from browser .
There are online tools that simplify this process of sharing, for example https://abbashare.com or https://diawi.com
Create an ipa file from xcode with adhoc or inhouse profile, and upload this file on these site.
I prefer abbashare because save file on your dropbox and you can delete it whenever you want

How to distribute iPad App to Customer (B2B) with an iOS enterprise account

My company has an iOS Enterprise Account to distribute In-House Apps. Now we want to develop an app for a customer. The question is: How to deploy the app to the customer's employee's devices? I heard about a "B2B Program", but I wasn't able to find any further details how to deploy to a special Business Store.
I know that there are a lot of discussion about this topic on the net, but I missed the fine details how the process is working in detail.
So what possibilities we have to get the app installed on the customer's employee's iPads?
EDIT: I don't want to invite beta testers or anything similar. I need an official way to install the app on the devices of the customers employees.
Another faster solution then testflightapp is diawi.com.
The link doesn't hold forever but it takes a few seconds to generate a download link.
You either use an archived IPA or a zipped .app , drag it to the relevant part of the site and it generates a download link for you.
We have been using this with a lot of customers with great success.
Just remember - the link is temporary.
Alternatively you can build a simple web page around the IPA file on a server you own (look at the generated diawi page for reference of the tags and info used).
You can also try OTA Distribution process, for more details go through this link.
Here download link is permanent and you don't need to use any third party tool.
How about using a Mobile Distribution Platform like MobileIron?
http://www.mobileiron.com
A few clients at my work use them and their services are pretty good.
I'm doing this for a client now. B2B is, I think, not what you want. Enterprise distribution is intended, by Apple, for in-house distribution. 'In-house' extends as far as out-of-house reps, and even independent contractors who use your client's in-house business app.
Your client should purchase his own Enterprise Developer's certificate, or ask you to purchase one for him. Use that certificate and associated provisioning profile to publish the app (in the usual way using the 'Ad-Hoc' distribution type). Then deploy over-the-air.

IOS Enterprise Distribution Through OTA

We have build an enterprise iPad App and now we want to give it to our employees. Initially when testing, we used ad-hoc distribution collecting all the test device's UDID and then creating the profile.
Now going live we want this app to be deployed in a secured web server and send the link to our employees, so that they enter the username and password before accessing the link.
There are around 500+ devices we need to install this iPad App. Do i need to collect all the UDID and then deploy the .ipa file, because Apple documentation says:
Create an enterprise distribution provisioning profile that authorizes devices to use apps you’ve signed.
If not that way, do the user needs to install the profile.mobileprovision file and then install the .ipa file?
We are still unable to decide how to deploy our app because of this issue. We would like to avoid the app approval process because it App handles a lot of sensitive data.
Can some one help me on this, how to do a OTA deployment for enterprise Apps?
As of December 2011, these are the steps:
Create a provisioning profile in your Apple Enterprise account
Set this as the Code Signing Identity under the Build setting of your app.
Make sure the Bundle ID matches that of the provisioning profile.
Select Product > Archive to build IPA file.
Click Share (aka Distribute) button after selecting your Archive.
Set Contents radio button to iOS App Store Package (.ipa)
Make sure Identity in dropdown is the one used from Enterprise account.
Click Next
Select the check box "Save for Enterprise Distribution"
For Application URL put in the URL that points to where the ipa file will be placed (example: http://oursite.com/myApp.ipa)
Click Save. This will save a plist & an ipa file for you.
Place these files on your server with a link formated like this:
<a href="itms-services://?action=download-manifest&url=itms-services://?action=download-manifest&url=http:/oursite.com/myApp.plist" id="text">
Go to this page from your device and click the link to install the app
Probably the best way to distribute your enterprise mobile app and then securely manage users, groups, data and devices is using a Mobile Device Manager (MDM) tool suite.
iOS provides specific APIs that support enterprise deployment via MDM products with API level features like Per App VPN connections that allow you to firewall a DMZ application server to only connect to a specific signed client iOS app. The vendors also provided authentication SSO integration and encrypted storage on the devices to sandbox your enterprise apps from other untrusted personal apps on a BYOD device.
Here's the Gartner 2013 review of MDM products:
http://www.business.att.com/content/whitepaper/Gartner-MDM-MQ.pdf
The 3 major players are now: Air Watch, Mobile Iron and Citrix XenMobile.
NOTE: I don't work for or have a vested interest in any MDM vendor.
There are two solutions
Try testflightapp.com
It does everything for you. It even has a SDK which I found very useful in debugging scenarios with logs and crash reports.
If you are looking to have your own hosted solution for the enterprise then
http://hockeykit.net/ is the best bet.
It has a client application which makes the upgrade process painless. It also have a server side code which you can deploy on your server.
https://github.com/TheRealKerni/HockeyKit
Update 2013-11-23:
We have been using Diawi happily for quite some time.
You can also use my shell script that will help you a long way with generating the necessary files and links:
https://github.com/sveinungkb/ios-ota-buddy
You do not need to manage UDIDs if you are using an enterprise profile.
To install an enterprise app you need a provisioning profile built with your distribution certificate on each device. See Does an iPhone Enterprise provisioning profile need to specify phone UUIDs like an ad-hoc provisioning profile does?
I've created tool (it's beta, so please be patient with it:)) for generating manifests from ipa file online:
http://manifest-generator.knejzlik.cz/
It generates plist with index.html file. All you need is to put content of downloaded archive to your site.
You can use InstallFish.com for this.
It allows OTA distribution for both IOS and Android. It also has a feature to automatically get the UDID and create your own appstores.
You will still need to provision them via your enterprise account but it makes the whole process of OTA installs much easier, especially for enterprise distributions.
You can use hockey, diawi etc. but sometimes you just want something simple that allows you to host it on your server. I was searching for a simple, basic php script that can do this but did not found any that suited my needs so I wrote a simple single php file server by myself and you can find it here:
https://github.com/leszek-s/LSIPASERVER
It has a list of all uploaded ipa files, upload page with password protected upload and each uploaded ipa has it's own page so you can send a link to specific uploaded ipa to someone. Feel free to use it on your own server.

Resources