Limit downloads from App Store by Apple ID - ios

Is there a way how to publish an app to App Store but say that only few apple IDs can download this app? Or is there some other distribution option? The app is only for small amount of people and should not be distributed publicly...

You have a couple of different options:
1) "Public/Official" App Store
Your app will be visible (!) on the official App Store and technically anyone can download your app, but you limit the "access" to the functionality of your app with a login. Then you can distribute logins to the people you want to have access to the app. There's a slight chance that Apple might reject your app, but I've seen tones of apps doing this and get approved
2) "Customer B2B" App Store
As already mentioned, the recommended way by Apple is the VPP https://developer.apple.com/programs/volume/b2b/ There are also a couple of providers of "custom enterprise" stores like https://www.mobileiron.com/ etc.
3) Beta Testing
You can also distribute your apps with best testing services like Hockey or TestFlight. Unfortunately TestFlight builds expire after 60 days. Hockey builds expire once your provisioning profile expires, which makes both options not ideal depending on your needs.()
I'd go rather with option 1 or 2. The first one might be the simplest and fastest solution. The second one the "official" one.

No there isn't.
If you want to publish an app to a small amount of people you have other solutions:
TestFlight
Fabric
For this solutions you will need people email and the app will not be on the App Store.
The last solution is to provide a password/login system in your app (or lock code or something like that). But maybe apple will reject your app

Related

Ad-Hoc distribution for iOS app

I am trying to release an invite-only iOS App. I don't particularly want this app on the App Store, and using TestFlight causes a lot of problems (having to constantly update binaries, limited users... Apple IDs).
At the same time I'd rather not have to resort to a third party distribution to get this kind of an alert.
Is it possible to release a secret invite-only App on the App Store?
Consider enrolling for an Apple Developer Enterprise Program
This will cost more but then you can distribute using your server . You can use MDM also no need to upload or use test flight.
I am not sure the last time you used Test Flight, but it has changed a lot in the last year. There can still be headaches with it, but since it was bought by Apple you now distribute your App through iTunes Connect which is the same way you would do it for releasing in the App store. You have a number of beta testers (up to 1000) that all you need is their email address. You can also have internal testers (up to 25 I think) which will get every build you upload automatically (however they do have some access to the information about your app through their iTunes accounts).
So in summary it takes the same amount of work and the same process to have beta testers that it does to release it through the App Store except that you don't have to wait the 5+ days for the App review. Do note that the beta version will expire after 30 days at which point you just need to upload a new one.
You cannot release a secret App on the App Store, as it violated Apple's App Store Review Guidelines
2.22 Apps that arbitrarily restrict which users may use the App, such as by location or carrier, may be rejected

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.

Distributing iOS App to non-employees

I am developing an app that I would like some people to download it. Specifically, the people who attend my event. I've looked into the different ways of doing that, and I couldn't find how to do it. Is there a way to do it other than the App Store? Like a download link or an email attachment?
Scenario: I have an event taking place at some venue. People who attend must download an app before entering the place.
You can use TestFlight or the iOS Enterprise Program
TestFlight
With TestFlight, you can let people 'test' your app. You can setup up to 25 internal testers and 1000 external testers to test your app.
Maybe it isn't exactly, what you are looking for, but it's the cheapest way.
They then can download the TestFlight-app and will see the apps which they are invited as beta-testers. It's a very easy and nice possibility, because you also can update your app and the testers will receive updates.
Check this tutorial how to make a proper setup to do that.
iOS Enterprise Program
With this special program which costs 300$/year you can install your apps within your enterprise. But your company must be a company with a D-U-N-S number to apply. Check the details on the apple website.
You can also use Diawi.com for that matter.
PROS:
1. Easy to use. Just drag the IPA file and the Provisioning Profile to the upload box. Wait for it to get uploaded. Generate Link. Send the link to your intended downloaders. They can download it super easy and fast.
2. No need to pass the app review in Apple.
CONS:
Few Users can download. Only the registered devices in your Apple Developer account can download the app which is limited to 100 and is renewable only for once a year.
If you intend this app for people not more than 100, use this. Otherwise use TestFlight that is already integrated in itunesconnect. The cons only is that the app needs to pass the review. Pros, up to 1000 people can download it.
Hope it helps.

Release an iOS app but not through itunes

I was asked to do a recruitment app that will recruit people for the company, so of course it will be free. When I released it, it got rejected for being very basic.
Now the client want to just release it through their site if apple don't want to accept it.
I know how to create the .ipa file through adhoc disribution which is what I use to give them copy and test it by putting it on a test site so that they can download it on their iphones.
But this is only for testing purposes, only the phones registered as devices on the dev account can download the file successfully.
So is it possible to release an app that will be used by users successfully without submitting it to apple?
With an Enterprise account you can more or less host your own private app store for an unlimited amount of devices and distribute in-house without Apple.
With a Developer account you can run ad-hoc installs via TestFlight or comparable services for up to 100 devices.
The new iTunes TestFlight integration announed at WWDC14 allows for 1000 devices.
The only solution that will look truly professional is the Enterprise App Store and it requires you to have a DUNS and an approval from Apple, but generally with a DUNS you're set. It's $299 instead of $99, but that's not so much money for most companies that have a DUNS. Also you can't use that account for publishing apps to the public App Store.
In general, yes it is possible: you can release an enterprise app outside the app store, provided that your company has the requisite enterprise agreement.
However, this is intended for internal use, and while I haven't read the agreement myself, I believe that distribution to the public at large would likely be in breach. (EDIT: As Zaph points out, this is in fact explicitly disallowed.)
The situation you're describing would fall outside this.
Moreover, from a user experience standpoint, it's unreasonable to expect prospective employees to download an application from outside the app store.
This is not only technically difficult for a lot of people, but it would look incredibly unprofessional, which is the opposite of what you're after in a recruitment app.
No. Apple restricts the apps available to users only to those on App Store.
(Actually, not 100% true - you could release the app on Cydia and target only jailbroken phones, but I suspect this is not what you mean to do.)
Alternately, make a web application, using JavaScript/HTML/CSS. Anyone can use a web application, it can be installed on the launcher screen, and it does not require App Store, just a web server somewhere. If you need persistence, you might also want to look into manifest files and offline apps. Especially if your app is basic, you can make it look and feel almost as a native app using one of the very nice web frameworks such as jQuery Touch.
However, you might just leave it as a webpage - why would you restrict your recruitment pool only to people willing to install your app?
tl;dr: You can't release an ObjC app except on AppStore.
There are already multiple answers to this question, probably because it is not specific enough.
Let's gather all the information that's necessary here:
If you want an app for a company (given that you recruited people through the app, i.e. people who used the app would join the company), you should use the Enterprise Program.
If the app is meant for the general public (in this case, possibly, you would like the app as a branding, promoting app for the company), you cannot use the Enterprise account, since it violates Apple's terms. As an example, see this funny case: http://www.imore.com/how-gameboy-emulator-finding-its-way-non-jailbroken-devices
AdHoc and TestFlight should not be used for a release app. AdHoc only is meant to be used for testing purposes. Introducing non-developer related devices into your AdHoc profile would mean termination of your dev account (e.g. this aggressive and also funny case: http://www.intomobile.com/2012/07/09/apple-goes-after-sites-selling-activations-ios-6-beta/).
Finally, two interesting notes:
There is no limit to the number of devices in an Enterprise Program app. It's not 1K, at least the information out there says the opposite (e.g. the case with the link in 1). The 1k device limit will be for beta testers with TestFlight (according to http://www.neglectedpotential.com/2014/06/testflight/).
An Enterprise account cannot publish apps to the public on the AppStore (see this FAQ: https://developer.apple.com/support/ios/enterprise.html -if it doesn't work, you can load the cached version from Google, etc.). Thanks to Departamento B for this information I didn't know about.

Will Apple accept an app that requires a code or PIN to use?

I'm working on an iOS app and would like to make it easy for a selected group of non-technical users to quickly download and try it. I won't have their UDIDs ahead of time, nor is TestFlight a viable option because it takes too long to set up. My company isn't large enough to qualify for the Enterprise option, either.
What I'm wondering is: can I submit an app to Apple that requires the user to enter a code at launch? Then I can simply give that code to my demo users (and to Apple for review) and submit it to the store. Or will Apple reject something like that?
Thanks.
The entering of a PIN is not a problem (lots of apps use PIN numbers to protect a user's own data, such as a password vault), but it seems that if the intent is to limit the audience of the app, then that that might run afoul of section 2.22 of the app store guidelines.
If the purpose is testing for a limited number of users, can you just do ad hoc distribution?
For demonstrating our apps to clients, my company uses our iOS Enterprise account. With that account (which costs $299/year instead of $99/year), we can make builds that we can distribute through our own restricted channels, instead of the App Store. Those builds are signed with an Enterprise Distribution provisioning profile, which does not require specifying which devices will be used.
After that, we simply restrict who has access to download our app. We use Testflight for this. It enables us to upload our provisioned app, and allows us to invite specific users to download the app. The process of downloading the app is easy enough even for our non-technical clients.
But since you said you don't want to use Testflight, you can distribute your Enterprise apps however you find to be easiest.

Resources