How to distribute IOS apps to end users without knowing their UDID? - ios

I am unable to upload my app to app store. The app is meant for a particular client and it manages a particular occasion of theirs. There are quite a few features. It gets rejected with the message- 'Minimum functionality. This app is meant for a small set of users'. Apple asks me to use the ad hoc method of distribution. However that is not a feasible option as I can't have access to all the UDIDs of the users. How can I distribute the app to the end users? Please help me out.

That’s what the Enterprise Developer Program is for. With that you can sign In-House apps so that they can be installed on any device. You’re just not allowed to distribute such apps to the general public. According to the rules your client will have to subscribe to that program.

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?

How should one distribute b2b app, which uses VOIP flag to stay always connected

I have a b2b app, which uses VOIP flag to stay always connected.
The best way might be to implement APNS support in app. But I dont want to change server side, so im looking for alternates.
Possible alternates are
1. B2b Apps
I can publish my app as b2b
While submitting I dont see b2b app option (probably because tax info is missing)
My App is free, but for my customer to download my app has to purchase Volume purchase program. my custom will have to pay?
2. Enterprise Account
How to distribute app through enterprise account ?
Do I need to have my customer's UDID?
Please suggest the best possible way to distribute my app.
You yourself cannot get an Enterprise account (or rather, SHOULD not, if it's not your organization running the app). Your client/the company needs to register for it.
With an Enterprise account, you can distribute apps without the UDID. An Enterprise Distribution Provisioning Profile allows the app to be installed on an arbitrary number of devices, just like an App Store Distribution Provisioning Profile. However, Apps signed with an Enterprise Distribution Provisioning Profile cannot be distributed on the App Store, and vice versa.
Note that registering for an Enterprise account is a bit more of a PITA than the regular developer account. For specific requirements, see: https://developer.apple.com/programs/ios/enterprise/
Edit:
It doesn't have to be paid, it can be free, but your customer will have to be part of the Volume Purchase Program. Apple's site: "You can offer custom apps for free or at any price tier you select. Once you identify your customers and release date, you’re all set." - source: https://developer.apple.com/programs/volume/b2b/
If the app is only for your customer, the best thing you can do is tell them they have to buy an enterprise account.
Then you build the app with their account and host the .ipa on a web server only they can access.

iPad App - Deployment without needing the UDID

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.

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.

Review your enterprise app to apple. is it required?

I have developed an enterprise app and its ready to use for my client.
My company bought an account and provides me with the credentials. So i created the ad-hoc distribution profile to distribute the app to my client's testing team during development using testflight.
But as i read somewhere, the account type iOS developer program can not distribute the app to any one,
If you want to distribute your app, you need to enroll for iOS developer [enterprise] program account. But that was not in my case, I was able to distribute my app to the client using the iOS developer program account.
I know, if you want to submit your app to the app store, you need to have an iOS developer program and,
iOS Developer Enterprise Program only allows you to distribute your applications to employees or members of your organization through Ad Hoc distribution.
Now my doubt is,
Is it really mandatory to submit our app to the apple for review to
ensure that our app is free of explicit OR else we can use it without
review? Why do we need an approval from apple when we are not
submitting to app store.
The client is telling they just want to get approval then they can sell it within In-House or B2B use.
Because my client asked me to submit our app to apple for just review, but do not want to put on app store. Once they approved, then they will distribute by using ad-hoc distribution profile.
Thanks.
You dont need to submit an enterprise app to the app store for review.
Your client's request is weird. It doesn't make sense. You can tell your client that Apple does not review enterprise apps.
Update:
your doubt:
Is it really mandatory to submit our app to the apple for review to
ensure that our app is free of explicit OR else we can use it without
review?
Answer: NO. Its not mandatory
Why do we need an approval from apple when we are not
submitting to app store.
Answer: You dont need an approval.
Now, there is a case where your client's request will fail for sure:
Assuming (for the sake of explanation) this app is a porn video viewer app, it'd never be approved by the Apple App Store reviewer. And if the enterprise build deploy is contingent upon AppStore approval, even that wouldn't happen (since the client is adamant)
Note: Enterprise accounts are not meant to circumvent Apple's pay wall. i.e., you should not distribute the app outside your organization.
Hope this answers your question. (if it didn't feel free to add a more specific question to the original post.)
3rd Update:
FYI Enterprise Developer account are not easy to obtain. If Apple Developer Center thinks your client is shady, they may have to manage with the regular developer account. The question you are asking has no credible sources for answers because no one would insist on doing something like this.
Is it really mandatory to submit our app to the apple for review to ensure that our app is free of explicit OR else we can use it without review? Why do we need an approval from apple when we are not submitting to app store. The client is telling they just want to get approval then they can sell it within In-House or B2B use.
You do not need approval, once you are enrolled on the enterprise scheme you will not need to get approval from apple for any applications created as an enterprise application.
However if you then want to sell it on the normal app market it will need to be done from a totally separate account and will need approving.
The enterprise license is a way of making sure that rogue apps do not start making the rounds as they do not need to be installed via itunes, they can just be hosted on a website and downloaded directly from there to the device.
I assume your client may be worried that you aren't going to provide a stable, malware free application and would like apple to authorise & test it first, even though it is not going on to the app store so they have peace of mind that if it's good enough for apple its good enough for them. Or that the MD once heard that Apple HAS to authorise it and they are just jumping through hoops for them.
Companies that are enrolled in the iOS Developer Enterprise Program (currently $299 / year) do not need to submit apps to Apple for approval or distribution. These companies can host and wirelessly distribute their in-house apps without Apple acting as gatekeeper.
If you are an external contractor who has been hired to code an app, you may need to hand the app over for them to sign with their Enterprise key so that they can then distribute in-house.
It would be (very) unusual for an Enterprise Program member to submit their app to Apple for review because it is unnecessary. And so far as I know there is no option to do this without setting up all the app details in iTunes Connect and pretending you were going to sell the app.
Update 1:
#Praveen-K: What doubt is there? If you want to have Apple "test & approve" your Enterprise app (a really bad idea) then you will need to:
Create a fake Apple store app
Fill in fake info in iTunes Connect
Provide an on-sell date a long way onto the future
Provide all the login info and access to your servers that the real app requires
Assist the Apple app approvers in accessing your own data to get approval
Then, after approval, delete the app from iTunes Connect and the App Store
If this does not answer your question then perhaps you need to make sure your question is very clear.

Resources