Using Apple Enterprise Program with external developers - ios

We are currently using in our company the "Apple Enterprise Program", but my company is planning to outsource the developer department. So we won't do in-house development anymore. So my question: Is it possible to add external companies to our developer team? If not, is there any other way, to work together with external companies for developing in-house software, without publishing it in the App Store.

I think you won't be able to add 'external companies' to your existing Apple enterprise program because this type of account/program has not been designed for that.
But for sure, you'll be able to add external developers (ie : developers working for another company than yours) to your Apple Enterprise Program account.
As an independent iOS developper, I've been added several times to my clients development teams (which had an Enterprise program).
From their point of view, I was an 'external developper'. They could manage the access rights of my dev account in their Team (as a developper my scope was limited on Apple dev portals/tools, eg: I could not see some 'non developer related pages' on AppStoreConnect portal), or revoke my dev access to their team at any time.
If you plan to stop in-House development in your company, I think you have 2 options :
Keep your Apple Enterprise program, and add 'external developpers' to your dev Team each time you need it (good if your company owns the applications that are developed by the external developers)
Quit your Apple Enterprise Program, and let the other (out-sourced) company handle the "development team" management (they will need/use their own Apple developper program to add your/their developers into their dev team) (good if the other company has to own the developed applications)
Beware : any app developed (even not published on the AppStore) is owned by the company that owns the developper account (Enterprise or Individual) which has created the app in Apple portals (AppStoreConnect + developer.apple.com)
It may not be very clear, but hope that helps ^^

In principle, Apple doesn't know who does the work. Where you have to be very, very careful is with signing certificates. Anyone with signing certificates for your enterprise account could start publishing apps under that account outside your company, and if Apple finds out, your account will be blocked. That happened to Google and I think to Facebook, so don't think "they won't do that to a big company like ours".
I'd suggest creating another plain developer account and using that, letting people do all the work with that plain developer account, and then publishing it with your enterprise account. Or you need developers that are 100% trustworthy.

Related

Difference between apple developer and enterprise account

We use apple developer account for submit IOS application in appStore. we got this email from apple after 10 days :
We are unable to include your app, MY APPLICATION, on the App Store. Under the U.S. sanctions regulations, the App Store cannot host, distribute, or do business with apps or developers connected to certain U.S. embargoed countries.
This area of law is complex and constantly changing. If the existing restrictions shift, we encourage you to resubmit your app for inclusion on the App Store.
our company in Iran and apple reject our request for Political reason.
now we want to publish application with enterprise account, my question is with enterprise account we should have get appStore review? that means We will rejected.
Enterprise account mean it should be used within your company, the app signed by that will be able to install to any devices, as long as the user trust the account in device management, it cannot be use to publish on AppStore.
You can anyway, host it in your website and ask people to download from there and trust the company without needing approval from Apple
AppStore :
With AppStore account you need to distribute application through iTunes and it will go through iOS review guidelines and It should satisfy those guidelines.
Enterprise :
With Enterprise account you will still be able to work exactly like how you process for app development. But, Under enterprise account you will not be asked for application review.
Using Enterprise account you will be generating InHouse certificates and provisioning profiles and using it you can distribute your app within your organization and you will not get portal to download app like AppStore.
You need to create or expose link from there user can download app.
Your app .plist should be included with link or path where the .ipa is stored.
You can deploy your app at any time without apple review process.
A good advise for you (your company), establish a small branch outside Iran (where, there is no any kind of restriction) and register for developer account from new location.
OR
Your company can create Individual account by using trustable resource of organization living outside Iran (with citizenship of other county).
Enterprise account is for enterprise (in house) applications only. Enterprise account is useful, If you want to distribute your application to specific segment of users, to whom you can share IPA build directly using downloable source (server).
You can find official information about apple enterprise account from this link:
Apple Developer Enterprise Program
But if want to distribute your app for general public usage, which is not limited to specific segment of users, you should use/choose Individuals or Organisation (Non-Enterprise) Apple Developer Program
Here you can see difference between enterprise & developer account:
Choosing a Membership

Developing for my client's Apple enterprise developer

i have some doubt to how distributing for clients that have an Enterprise Developer account works.
Here is the situation:
-My company have its own developer account (normal one not enterprise).
-My client wants to distribute an app using their own account.
-My company have to develop this app.
Now, how do i setup my xcode for this? Which solution is the best? Should i use directly the clients account or there is a way in which they add my account as developer in their team?
I'm concerned about this because i'm going to use my company account to test this app on devices during the development and xcode , to me, is pretty hard to understand when it comes to change certificates and accounts.
Thanks a lot.
As Alessia already wrote the easiest way is to build the app with the enterprise certificate of your customer. For that your customer has to provide you the private/public key pair or give you access to their enterprise program so you can create and download it.
If your customer do not want to provide it to you (maybe for security reasons) there is another way. It's more complicated especially if your customer has no experience with iOS development. In that case you have to develop and test your app with your own developer program. If your release version successfully passes your quality tests you deliver it to your customer and they need to resign your app. see: example for resign
i think the easiest thing is to make the build with the certificates in enterprise.
So you should ask identity and mobile provisioning created from enterprise account of your client, and then build your app with this certificates.
Your client can also enable (in developer mode) your apple account so you can create yourself certificates (in enterprise).
You can also create multiple target for this management.

Managing IOS Developer AND IOS Enterprise Developer accounts

There has been a lot of questions on this already that answer some of my questions. I am looking for someone who has direct experience with setting up and managing both accounts.
I have a situation where I need to send a private Beta test to more than 100 people (the ad-hoc device limit for iOS), but I still want to be able to publish publicly to the app store.
My solution is to obtain both an enterprise account and a regular developer account. The enterprise account allows me to distribute to anyone within my company, privately with no limit. The regular account gives me the ability to publish to the app store. Unfortunately this means I have two create two different apple developer accounts.
I am worried about the hidden caveats that are involved with this process.
Is there any caveats with managing two separate apple developer accounts for the same application?
Any problem with packaging names for applications? I'm assuming the identifier needs to be different.
I hear that you cannot test the storekit with the enterprise program. Any other problems similiar to that?
I have experience with managing both Developer and Enterprise a/c. We have multiple applications in appstore. We mainly use the enterprise a/c for testing and developer's a/c for publishing the application to app store. This has worked fine for us for more than a year now.
That being said, managing two accounts is cumbersome. I have no idea why Apple won't allow us to create App Store distribution profile using the Enterprise a/c! Here are few recommendations:
Choose the names of the accounts so that you could easily distinguish them e.g. "xxx developer" and "xxx enterprise".
It is possible to create the developer and ad-hoc distribution profiles in both the accounts. Overtime it can become messy especially if you have multiple developers and applications. So I would recommend forming some guidelines for the accounts usage beforehand.
You can use the Wildcard App Id when creating the distribution profile. So you can avoid changing the Apple Id for the same application in these accounts. However, if you use Push Notifications and/or In App Purchase then you will have to use explicit App Id, and App Id needs to be different in each account.

What limitations does over the air distribution of enterprise apps have?

I just try to understand the process of deploying enterprise apps.
My app is on a webserver which is accessable from the outside as well, which gives me the possibility to install the app at home. This seems like a security breach for Apple, I mean anyone could make a website which offers enterprise apps to any device. What is the limitation here ?
I couldn't find any information about this in the apple documentation, an official link would be great.
It is against the terms of use to distribute enterprise applications outside of your registered organization. If Apple finds out, your account will surely be terminated.
From THE FAQ
The iOS Developer Enterprise Program only allows you to distribute your apps to employees or members of your organization through Ad Hoc distribution.
There is no limitation
You shouldn't distribute the app to people who doesn't work in your enterprise, but apple can't control it. (to be clear, they can know if you are using the certificate, but they can't know if the people who installs the app work for you)
The only "limitation" is the fear to be discovered by apple because they will delete your account.
BTW, the security breach isn't for apple, it's for you, you should use a password in your webserver
From the Distributing Enterprise Apps Guide:
Requirements:
A secure web server that authenticated users can access

How do I distribute in-development iOS apps to a customer for in-process evaluation without releasing to appstore

We are developing an app specifically to a single customer's requirements and want to put it in the hands of their evaluation team (3 people) as we go along. Before we release the product, we'll be going with enterprise distro but we need to figure out this interim step.
Get an iOS developer account for $99 and register the devices of those three people to your account.
I use a company called testflight, they are at testflightapp.com They make it pretty easy to distribute an application to testers when you have an ios developer account.
At my company, we have the customer sign up for the $99 developer program and manage their own devices, then have them add our developers as developers (surprise), and make special builds for their devices.*
We also recently had a (larger) client sign up for an enterprise account so they could distribute our builds to their employees for testing w/o having to manage UDIDs.
Takes the ball out of your court, but it does seem to adhere to the Apple standards.
*: We frequently end up releasing these custom builds to the app store via the customer's developer account, which (IIRC) is also in line with Apple standards. If the app is branded by/exclusively for a given company, it makes sense.

Resources