Can you develop an internal business application for the iPhone? [duplicate] - iphone

This question already has answers here:
Closed 12 years ago.
Possible Duplicate:
iPhone app without AppStore
My boss had an idea to develop an application that would be used for a few hundred contractors/employees and deploy it on an iPhone. So basically an internal business application that is an extension of the home-office application for mobile workers.
I was under the impression that it is only possible to distribute applications (except in a testing mode that expires frequently) to an iPhone via the Apple Store, and that Apple will only accept applications that are for general use. Not something that only a few hundred people world wide could use (say the data would be restricted to credentials that would only be given to such people).
Is my impression correct, or does Apple allow that kind of development?
EDIT: OK, my impression is wrong, at least partially. But here the company does not have 500 employees. Is it then not possible?

Yes, you can purchase an Enterprise Development License for $299 USD.
This allows company distribution for organizations large than a certain size. I believe 500 employees, but check the site.

I have developed an app for a client's internal use and have had it distributed it on the App Store, using a standard developer account (the $99 one). You can find it here: http://itunes.apple.com/us/app/evolve-2010/id348772647?mt=8
I was pretty surprised it was approved (I had the client prepping for a massive ad-hoc distribution). If you're developing something requiring credentials, I'd provide a test user/pass to Apple when you submit.
So, good luck, and have a back up plan.

I've heard rumors and anecdotes about companies with less than 500 employees being able to negotiate plans with Apple. Apple does have reps that work behind the scenes with enterprise users. Probably takes longer to get it running. Your mileage may vary.

If your company has greater than 500 employees and a Dun & Bradstreet number, you can register for the Enterprise Developer Program # developer.apple.com/iphone - this will permit you to do what you desire.

Related

How can I make an app available without adding it to the Apple app store? [closed]

Closed. This question needs details or clarity. It is not currently accepting answers.
Want to improve this question? Add details and clarify the problem by editing this post.
Closed 9 years ago.
Improve this question
I want to create an iPhone/iPad application for a restaurant menu. The application works only for this restaurant. I want to install the application without uploading it in the app store.
I don't want to install the application into the devices as developer device.
What options do I have for this kind of distribution scenario?
Look at docu for Enterprise Apps. But then the restaurant needs an Apple Enterprise license, and everybody installing the app must be an employee of the restaurant.
Developper and ad-hoc apps work only for a limited time (3 months if i remember correctly).
Apple offers two ways you can do this. (The third is jailbreaking.)
The older way, an Enterprise membership. This is more designed for large organizations with an IT department:
$300 annually
you deploy directly to the device
terms of the contract say: may only deploy onto devices owned by the business (and yes, they can tell if you abuse this)
apps last 1 year, must be re-signed and re-deployed
kinda labor-intensive and fiddly, especially if the developer and device manager are different people, or use different signing keys; really needs an MDM system to work well
since Apple doesn't review your code, you can use private API if you want. woo hoo.
There's a newer way, which I highly recommend: the B2B App Store.
works with your $100 developer membership
deployment uses Apple for hosting, doesn't expire
needs no special software; works well with Apple Configurator
app is private to whoever you specify
the business gets access by signing up for the free "volume purchase program".
In fact, the whole process is almost exactly like a normal app store app, except that the app is not public. Apple reviews it, puts it in the "secret" store. Developer specifies some Apple IDs; only those Apple IDs can see the app in the store (through the volume purchase interface.) They can install it, AND/OR generate redemption codes for it (which work for anyone.) It's very slick. There's a good 2012 WWDC video about it for dev program members.
https://developer.apple.com/programs/volume/b2b/
Both programs require the business to have a DUNS number. This is generally not a problem.

App Store Submission for Multi-User Application

The app that I am trying to submit is for a field sales system that is already running on Android devices, and which we are now trying to make available to Apple users. It is a cloud based application, and users synchronize data stored on their devices with data stored on a web server. The application is sold to companies rather than individuals. Each company has many users, all of whom synchronize with the same database on the server.
We maintain our own web server and provide a hosting service, and companies can also host their own servers:
For the hosting service, companies pay a monthly or annual fee, which depends on the number of users they have.
For companies that prefer to host their own servers, the app is licensed by device. Companies pay registration and upgrade fees for each device, and each user has to enter a registration key.
I understand that we are not allowed to mention the Android platform anywhere in our app. I also understand that we have to allow all subscriptions, registrations and upgrades to be paid through in-app purchases. But I have a number of questions:
I am happy for us to offer only a limited service to Apple customers, if it makes it easier for the app to be accepted. Would Apple be happy with this arrangement?
Most companies prefer to have just one administrator for their whole system, and to have him make all the purchasing arrangements. Is Apple OK with this?
Is it possible to make multiple in-app purchases of a single product (e.g. purchase 50 licenses)?
Is the use of registration keys an issue?
1) I think that as long as your clients are aware that the iOS flavour of your app/service was limited in some manner (tell them the rest is work in progress) then I cannot foresee any issue with this. You may still consider ringing Apple Developer Support and run it past them, but your chances of getting a non-vague answer from them directly are still high - they'll probably say it depends on the reviewer when you go to submit the app.
2) Sounds fine, and not uncommon in the enterprise app world. See 3) for more details.
3) You can utilise the VPP (Volume Purchase Program) to achieve this, but it's only available in the US at time of writing. See the link below for further information:
http://www.apple.com/business/vpp/
I think that another way you could consider app distribution and which would let you bypass Apple (to a degree) is to sign up for an enterprise developers' account. This will let you build the usual development & distribution builds of your app, but a distribution build can take two forms: limited to devices by their UDID (100 limit still in effect) or not at all. If the latter, you could self-host the generated .ipa app file, which is perfectly viable.
4) Registration keys for the app? (to unlock "premium" content or as the method of app activation?)
Hope this was of some help, best of luck!

iOS development and client control-- What are my legal and best options? [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
This question does not appear to be about programming within the scope defined in the help center.
Closed 7 years ago.
Improve this question
I work for a company that would like to create an app that we can distribute to our customers. We manufacture industrial equipment and we would like to provide an iPhone/iPad app to our customers that can interact with their equipment.
The problem is that we would prefer that the app not be downloaded from the App Store. We would like for this application to be available for our customers free-of-charge and would also like for them to have the ability to download and install the application on as many devices as they desire. However, we do not want non-customers (ahem, competitors) to be able to download and use our application.
What options are available? We have considered allowing the app to be available through the app store but in that case the app would be locked until the user entered an application key. This would keep the app free to download and it would give us the ability to control who could use our software. I'm not sure, however, if that is allowable by the Apple TOS.
The Enterprise license sounds like a potential option. If it is, what are the specific steps necessary for installing an iOS app on an Apple device if not through the App Store? I'm also not sure if it would break the TOS to distribute our app for this purpose under the Enterprise license. Is that the case?
What options do I have? Please realize, I don't own a Mac and I've never even attempted to write or distribute an iOS application-- I'm 100% new to all of this. Thanks for you help.
EDIT
Thank you all for the wonderful responses that I have so far received. Half of the questions that I have stem from the fact that I can't find the actual TOS agreement that I would have to sign if I became a standard or enterprise developer. (Yes, I've googled it.) Does anyone have a link to such documents?
If you want to distribute your app outside the App Store, you need to get an iOS Developer Entreprise license ($299/year). You're going to need a Dun & Bradstreet (D-U-N-S) number to enroll and can only deploy to 500 (registered) devices.
Edit: Another option would be to demand the user some authentication (such as user/pass) to use the app (think Facebook or Twitter). You could provide your clients with the credentials to ensure only a certain users have access to the app.
I think #ibeitia's answer is the best one, but here's an additional option: put the app on the app store, but make it all-but-useless without a login to your server.
For example, the Google+ app is useless unless you have a Google account.
You'd have to give a login to Apple so they can vet it, and of course I can't guarantee they'll allow it, but it's an option I'd consider.
(If you do go down that route, send an email to Apple's approval team asking for clarification before you start development!)
I work for a company that would like to create an app that we can
distribute to our customers.
From http://developer.apple.com/support/ios/enterprise.html (bold is mine)
I am a developer who wants to create an in house app for my client.
Can I join the iOS Developer Enterprise Program to do that?
The iOS Developer Enterprise Program should be used to develop and
distribute proprietary in-house applications to your own employees
within your own company. As such, your company would not qualify for
direct Program enrollment in this situation. We would suggest that
your client apply for enrollment in the Program, and, once enrolled in
the Program, your client may add the appropriate developers from your
company to their iOS Development Team.
The Enterprise Developer program doesn't allow you to sell your app to your customers. It's the customer, not you, who should enroll in the program.
I think your best bet will be to use Apple's B 2 B program:
http://www.apple.com/business/vpp/
This will allow you to have apps in Apple's business app store (not the ordinary app store), and control who gets the apps. You'd provide the redemption codes to your customers.
btw, I can confirm that providing an app with a login to make it useful would be okay with Apple - I've done it before.
Well your options are really limited.
You could go with the enterprise license but this is still limited to 500 device which still need to be register with the some how. (never had to work with the enterprise license).
But could you not make your app available in the appstore foor free but only make it work with you equipment. Thus make the app search for the equipment (via bonjour of wifi) and only work when it finds the device. This will make getting the accepted a bit harder but will work. There are some IP camera manager that work that way.
If your competitors really want your app they will get it one way or an other.
Just be sure you release an app before the competitors, do that way your company has the advantage.

Develop iPhone application within a company? [duplicate]

This question already has answers here:
Closed 12 years ago.
Possible Duplicate:
iPhone apps for company-internal use - possible?
As a developer, I can sign up with Apple to develop and sell applications through Apple store. I think there may be ways for companies to setup company-wide applications so that those applications can only be deployed, downloaded, updated and used within a company. Is that true?
If so, does any one have experience to develop application within a company for iPhone? What's the procedure? Is it possible to set up a company Store for deploying and using applications? If there is any price related to this kind of service? and how much if it is possible?
That's correct, there's an iPhone developer program for enterprises.
this link should get you started: http://www.apple.com/iphone/business/
Actually there's a special enterprise development program, which costs $299 per year. It allows in-house development.
I have answered for a similar question here. Here's my post again, below:
"You have 2 types of subscription for the iPhone developer:
$99 a year - regular program with the ability to upload your applications to the app store.
$299 a year - enterprise program that is used for distributing apps inside the company...
The second program is exactly for you."

Alternative solutions for in-house iPhone enterprise app distribution

A client has asked us to develop a proprietary in-house app for managing their back-end systems. However, we are a small development company and I'm certain that their company does not have >500 employees.
Are there any alternative, yet similar, solutions to distributing this app to their company without going through the iPhone enterprise program?
(just to clarify: obviously, we would like to go through the official enterprise program but seeing how the company doesn't have >500 employees, this isn't possible).
UPDATE (27/09): It appears Apple have removed the 500 employee limit for the enterprise distribution See here. So this will probably be our route now (which is helpful because the app is approaching completion). I'll update this as we go through the process if anyone would like me to, so that others may get an idea of what the actual process is like.
You can submit the app as a completely free app on the AppStore but require that the user log in and authenticate to use it. That way anyone can download it but you control who can actually use it. Apple does all the distribution for you for and you don't have to worry about Ad-Hoc deployments or IT departments.
You then build a really simple configuration management system on a web host (or platform like Google AppEngine) that manages the authentication of apps.
When a user launches the free app they are asked for a username/password/whatever. That information is sent to the web-based configuration management system and confirmed. If the app receives an acceptable confirmation from the configuration management system it unlocks itself for use by that user.
The app can either re-authenticate every time it launches (useful if you want lots of control) or it can store a key file locally indicating that it has been authenticated. If it sees the local key file when the app launches it considers itself authenticated and never checks again.
Whether you use one user account per person or one for the whole company is up to you.
This style of distribution is very useful if you want to have control of who can use the app but want the ease of deployment that the AppStore provides.
Apple has accepted many apps onto the AppStore that use this method of authenticating against a remote server (Skype is a perfect example).
If you keep track of device UDID on the configuration server you can also pre-load it to allow a certain set of devices to work.
Further, nothing I have described is iPhone specific so you can use the same configuration management system and concepts on other platforms like Android (or even desktops) if you ever port the app or build other apps needing this in the future.
Also, since the action of authenticating devices is not processor or data intensive you will likely never incur a cost if you build this on Google AppEngine as you will never go over the free quotas and you will gain the stability and scalability of Google's backend architecture.
As this particular deployment is for managing an in-house back-end system deploying it through the AppStore can seem insecure because there is proprietary information embedded in the app, in particular the information that allows it to connect to and authenticate against the back-end systems.
The solution to that is to not include this information within the app and simply have that information be part of the response that the app receives from the configuration management server. Basically the app contains the logic necessary to perform its function but without the connection information it has no ability to manage any back-end system.
If you make the app authenticate every time it launches you can change the connection information on the configuration server and the app will update to the new information without any new deployment being necessary. The user just needs to restart the app. This gives your client the flexibility to change their internal network configuration without invalidating your application code. You could also make this information manually configurable within the application but then you incur an IT cost when setting up the application on each device and if you already are going to set up a configuration management system you might as well use it.
To further secure the above solution you may want to have the configuration management system be in-house and behind the company's firewall so that regardless of who gets a hold of the app they cannot connect to the config system unless they are within the company's network.
I was researching this yesterday and today, and it appears that Apple has just (within the past week) removed the >500 employee requirement for enterprise development. However, I believe you will need to develop/deploy for a particular client using a development toolkit registered by the client.
So if you do work for client A and client B, both client A and B will need to sign up with Apple as business developers, at which point you can develop apps for them (as a contractor) and use their tools to build and deploy within their enterprises. I would think it would be a good idea for your company to also be registered as a business developer.
Apple does still require you to have a Dun & Bradstreet DUNS number to sign up as a Business Developer.
About the only real choices you have are...
Up to 100 devices as ad-hoc distribution.
Enterprize distribution (requires > 500 employees)
Everyone has to march their device down to some IT-central and get built as a "developer" device. (yikes!)
Jail-broken.
Jail-broken may sound scary, but it's actually pretty advanced, now-a-days, and can be managed quite easily. Still, it voids your warrantee (unless you're willing to restore-to-factory and be not-honest about it ;)
Still, technically, it's an available option and can be made to work, if you're willing to plan it out.
Let us know what you decide, and the pros & cons of that method.
Another obvious although not neccesarily pleasant is to submit your app to the app store as an app but can only be accessed with a client password. Assuming you can get past the aapp store process this might work for you.
Olie said:
About the only real choices you have are...
Up to 100 devices as ad-hoc distribution.
Enterprize distribution (requires > 500 employees)
Everyone has to march their device down to some IT-central and get built as a "developer" device. (yikes!)
Jail-broken.
But to be clear (correct me if I'm wrong):
if you use the "Ad-hoc" distribution method, your costumers will see the app vanish after exactly 3 months.
only up to 100 devices can be used for testing (i.e. used in "developer mode") and moreover, the app will vanish after 3 months.
So, Apple doesn't give us any choice, are you really big (>500 employes)?? ok so you can do what you want etc otherwise... "byebye"
Moreover, forget about what "Bryce" said before, an app like the one he described would be rejected with the "limeted audience" motivation.
iOS is not for enterprise app....if you don't want to rely on some clever hackers (i.e. jailbreak)
Ad-hoc distribution is limited to 100 devices per app, that's true, but you can add the project n times to the apple developer center, so you can deploy it to n * 100 devices
How does apple ensure that your enterprise has greater than 500 people? I'd give it a go through the enterprise program anyway...
I would not jailbreak, I would not do ad-hoc because it is limited to 100, and I wouldn't make everyone put their phones in developer mode.
For future maintainability, enterprise mode is the way to go, so see if you can navigate your way through the process without mentioning that you might not be quite 500 users.
Also, I saw your comment about developing using MonoTouch. I would talk to Apple about this before you do anything else, because given their recent policy changes I am pretty sure this will get your app denied from the App Store and the Enterprise program.
Edit: I checked the Mono web page. It seems like Apple may still be letting mono apps in, and the Mono creators insist that it is kosher, but you might be running the risk of having your future app pulled from phones at any time.
A better edit: Straight from the mono website: Enterprise MonoTouch
It is important to point out that the new iPhone Developer Agreement terms are for AppStore deployment and not the Enterprise program that allows deployment of in-house application to users in the enterprise (using the Enterprise Deployment program).
So you might be good there as long as you can get into the enterprise program.
You can completely bypass the App-Store or Enterprise Developer Program approval process, if you develop your app as pure HTML5 solution.
This technology is called webapps. And they can be pretty advanced in functionality. You automatically have cross platform readiness and very easy deployment options (as webclip this can be distributed via .mobileconfig configuration files)
See http://www.apple.com/webapps/whatarewebapps.html
There is another solution: an own app store:
http://rhomobile.com/products/rhogallery/
unfortunately only in combination with RhoHub.
Or:
http://www.appcentral.com/
More info:
http://www.apple.com/iphone/business/integration/mdm/
http://www.cio.com/article/638175/Emerging_Tech_Alternatives_to_Apple_App_Store_For_Enterprises?page=2&taxonomyId=3002
In theory the proposed solution of publishing a free app meant for one company is not valid, since published apps in the app store should not be intended for a "limited audience" (whatever that means), according to:
http://appreview.tumblr.com/post/952395621/cannot-be-intended-for-a-limited-audience
Has anyone tried this with success? Any other ideas?