I am developing a native iPad app that connects to our servers and returns specific information. This app is targeting external companies. The overall app has a client and a server. The client is the iPad app and the server component is what will be installed.
We do have licensing framework in place on the server component.
I understand that there are 3 different forms of app deployment. I am looking for ideas for implementing a strategy where an app can be distributed via appStore BUT will work ONLY for a certain specified users.
So for example , If Charlie from Company A has the server component installed on his server AND downloads the iPad app on his iPad, this should work. However, if Marie downloads an this app from appstore, it should not do anything. Any ideas / options / suggestions would be appreciated.
Sounds like you are interested in B2B distribution via the AppStore. Check out this page for more information.
Once you land on that page you can find the B2B section that states
Custom B2B apps are built just for you by third-party developers and business partners to address a specific business process, integrate with a unique back-office environment, or deliver a custom interface for your users. Using the Volume Purchase Program, you can securely and privately purchase custom B2B apps for iPhone and iPad that make your business even more effective.
If you are a developer who is enrolled in the iOS Developer program you can create custom B2B apps for sale to your customers enrolled in the Volume Purchase Program.
Learn more about developing custom B2B apps (requires developer login)
Depending on the route you take you may need to create individual build targets for each customer with that is setup to point to the URL of their installed server.
Otherwise you could have a generic app that hits a centralized login server, based on the user credentials it forwards the app to the appropriate server.
Have an account system for the servers.
Related
How does apple decide whether an app is in-house? Is there a setting that I need to look into? Apple has rejected my application saying it is an in-house app and I cannot publish that app under Apple Developer Program.
They want me to have Apple Developer Enterprise Program to publish that app. I'll be thankful for any help.
EDIT: Here is the message from Apple
We found that your app is an in-house app, intended for employees or members of your organization. As such, it is not appropriate for the App Store.
For information on distributing proprietary, in-house apps, please refer to the iOS Developer Enterprise Program.
If you cannot - or choose not to - revise your app to be in compliance with the App Store Review Guidelines, you may wish to build an HTML5 web app instead. You can distribute web apps directly on your web site; the App Store does not accept or distribute web apps.
HTML5 is the major new version of HTML and enables audio and video to play natively in the browser without requiring proprietary plug-ins. Using HTML5, web apps can look and behave like native iPhone and iPad apps, and using HTML5's Offline Application Cache, a web app can work even when the device is offline. With web apps, you have flexibility to deliver as much or as little functionality as you desire.
To get started with iPhone or iPad web apps, please review the Safari Client-Side Storage and Offline Applications Programming Guide.
For a description of the HTML elements and attributes you can use in Safari on iPhone, check out Safari HTML Reference: Introduction.
I guess there can be many ways by which Apple can think of in-house apps and one of these can be your App Description. Here is the response from Apple that I received.
Hello,
Thank you for your response. The Application Description confirms that
the app will be used by employees of your company to stay connected
and informed of daily tasks and company information. If the app will
have an open registration and not limited to the internal use of your
company, please take the time to modify the Application Description by
providing this clarity and also accurately describe the app's features
and functionality available to all users.
Otherwise, the app is not appropriate for the App Store, and it would
be best to be distributed via the iOS Developer Enterprise Program.
As #Paulw11 said, Apple can even decide that your app is in-house if it doesn't allow everyone to use and limited to a group of people.
As far as i can understand, you are trying to publish your app from your Apple Developer Account which has "Developer Program of 99$" activated.
But to publish in house application, you would require an iOS Developer Enterprise Program which costs 299 $ yearly.
You have to enrol yourself to that and then publish the app via, your Enterprise program
Please respond accordingly if your intend was NOT to release your app as in-house application, will edit the answer accordingly
I used to work on an Enterprise iOS product which our company used to sell to big enterprise companies for their employee to use.
The app was made available via the AppStore and the enterprise users were provided company specific profiles (containing app config files) to enable the respective feature that they were entitled to and use the iOS software. This app is only meant for enterprise customers and their employees only.
I would want to know/understand what is the difference between Enterprise iOS app and a normal retail app (an individual publishing an iOS app in store for retail consumers to buy and use) as I was asked this question in one of the interviews.
One thing I know is the for Enterprise apps, you will have tons of paper work, T&C and NDA's to be signed between the Enterprise customer's IT and the app providing organization.
Apart from this is are there any differences? I mean any differences with respect to the way app is submitted to the store? Or any additional security requirements for an app as it is an enterprise app? Is there something that differentiates and enterprise app from an normal app?
Thanks & Regards
Your app cannot have been developed using an Apple enterprise account and Enterprise distribution profiles because Enterprise apps cannot be placed in the app store.
There is no difference in terms of development of an Enterprise app versus a non enterprise app, there's nothing additional to do (there's a little extra to do to distribute it, see last paragraph).
The only differences are you have to have an Apple Enterprise developer account and its gets signed with a different set of certificates and profiles.
As an Enterprise app does not go onto the App store is is not subject to Apple app store review and therefore you can implement more functionality that you could with a regular app (for example, you could use background modes, use private apis etc.).
There is additional work required to distribute the app, you typically might host it on a web site and make it available for download by the Enterprise users, you have to set up a few bits and pieces and create a manifest file to enable all that.
Our company is planning to make a ios app by using Enterprise development program.
I guess we can not implement in app purchase on enterprise app, so we want purchase need to be done by our website and after that link will be generated and sent to the user's email, then by using email user can install the app. So my question is that can we implement this.
We have already development program but we want to integrate some other functionality in the app which will not be approved by apple, so we are planning to have Enterprise development program.
I have seen many links but none i found which fulfill my requirement. Any suggestion regarding this is appreciated.
No, this is not allowed. Enterprise program is for distributing applications within your organization. If you give out the application to third parties, your developer program membership will be canceled and the applications will stop working.
Is it possible to deploy an APP to apple app store, but only allow internal company user to download the APP by their own? Thanks.
Yes it is possible with Apple Enterprise Developer Program.
The Apple Developer Enterprise Program allows large organizations to develop and deploy proprietary, internal-use apps to their employees. This program is for specific use cases that require private distribution directly to employees using secure internal systems or through a Mobile Device Management solution.
Just to augment what others have said there. The Enterprise program is what you want. It allows you to distribute your app to as many devices as you like. But as it's not going through the Apple app store, you will have to work out how you want to do it. There are third party servers out there for doing this sort of thing.
You can also simply "roll your own" by simply creating a web page on your LAN with a like to the downloadable app. The Apple documentation has the details on doing that.
Also note one difference between an Enterprise app and a app store app, is that the Enterprise app certificates will need to be renewed every year. Which means that you will need to update the app every year or it will stop working.
I have an iOS app which i want to distribute to my clients. I have almost 30 companies as my clients. Every company has their own webservice from where i get their data. Functionality and graphics will be same for every company. I think i need iOS Developer Enterprise Program to distribute my app to my clients. There are couple of things i am wondering:
1- My clients are companies, not my co-workers. Is there any legal issue if i use iOS Developer Enterprise Program to distribute app to my clients?
2- Do they need to register for any iOS Developer Program to use my app?
3- I went through apple's site and i didn't see any fixed number of devices for iOS Developer Enterprise Program. Is there any?
4- I don't want that any of my client company knows about other so i am not giving them any option to select their webservice when app is installed. It means that i will make seperate binary for every app. Do i need 30 different app ids and provisioning profiles for that or can i use only one? What is the best way to distribute app in this situation?
Thanks in advance.
You can't use the Enterprise program to distribute apps outside of your own company, instead you should look at developing custom b2b apps, these can be distributed through the app store, but aren't visible to normal users.
https://developer.apple.com/programs/volume/b2b/