IPhone Distribution - Multiple Devices - Not App Store - iphone

I am an individual developer who has written an ipad app for a company. They have bout 30 devices they want to put it on, so my current plan is to create a provisioning profile that contains all the UDIDS for all those device. So here are my questions:
I surely will miss at least one device and have to either:
a. Create a new distribution provisioning profile for that device
or
b. Add it to the existing provisioning profile, in that case does it void the others
Could I submit something to the appstore that is obviously for internal use and password protect it? The company probably isn't willing to do an enterprise account, and I don't want to maintain it by getting them a new provisioning profile every year when they expire. Any ideas here?

Did you consider Ad Hoc distribution? That would allow you to add the app to a new device without having to make a new provisioning profile.
I haven't done it myself, but this looks useful:
http://www.iphonedevsdk.com/forum/iphone-sdk-development/35818-unofficial-ad-hoc-distribution-guide.html

I love TestFlight for small distributions. Also, see the Apple enterprise distribution documentation. It goes over signing and wireless distribution.

Rather if this is going to be used by the company for a longer period of time then I would advice you to go for iOS Developer Enterprise Program.
The main highlighting lines about Enterprise Program is
"Gain access to resources that will help you develop proprietary, in-house iOS apps that you can distribute to employees or members of your organization."
So you can distribute the app among your company employees directly without need to submit it on app store. That would surely be a better option.
For more details on iOS Developer Enterprise Program, you can check out this link..
iOS Developer Enterprise Program

Related

Distributing a third-party developed application via App Store

I am newbie in iOS development and distribution, so may be my question is too basic.
Consider the following, I suppose, very common situation.
Our company (A) asked a software company (B) to develop an iPhone application for us. Naturally we want to distribute this application via App Store under our company brand (A).
However they say a strange thing like the application can be distributed only under the developer name (company B), and that is unacceptable for us.
What is a possible solution here?
It seems that your software developer is confused.
You just need to pay Apple the $99 and register your company with the iOS Developer Program. From there you have a few options:
You can give your username and password to your iOS developer. Then they can create a Distribution Provisioning Profile through your account, reconfigure the project to use that profile, and submit the app to Apple on your behalf.
If you've registered with Apple as a company, not an individual, you can invite your developer to join your team via the People tab under Member Center. That way they can help you administer your app through their own account.
Your developer can hand over all the source code to you, and you can handle all the building and app submission yourself. Be aware that process can be a bit confusing if you're new to the platform.
I have uploaded an app on App Store so I know this.
Company A does not need to use Company B's name to put an app on the App Store.
I think the Company B said that because they already have an ID saved to their company's name.
But if you give them $99 then they'll be able to make a new ID saved to company A's name.
If the company(B) is willing to give you the product, you can submit to the store by using your iTunes developer account (A) and using your own distribution profile, etc.
You can even re code sign the given by B by following this way:
If anyone has the SDK installed on their Mac, plus a developer enrollment, they can re-sign anyone's developer or Ad Hoc apps using the codesign utility from the Terminal command line. (Thus, a developer should be careful about to whom they distribute their Ad Hoc apps for beta testing.)".
Though I didn't check it; I heard about it.
You can try, I believe.

How do I distribute an iPhone App for inhouse use

I have to write an application for a friend to use in his business - so it won't be on the App store. How do I go about deploying it and distributing this app?
Would he require a enterprize licence? And where/how would he download it to his device for testing purposes?
I've already asked this question, some interesting answers - see here:
Alternative solutions for in-house iPhone enterprise app distribution
EDIT: I realise there is more to your question than what is answered in mine.
Yes, the client will need to get an enterprise license (Apple recently removed the 500 employee limit). Once he has the license, he will need to add you as a developer under his license. This will allow you to develop and digitially sign the app on your machine.
As for testing, when you enroll in an iOS development program, you can then generate + download the appropriate certificiates to sign an app for hardware testing. You'll need to install what's called a "Provising Profile" onto the testing device, then when you're in xcode, change the deployment type from "iPhoneSimulator" to "Device" - this will then compile + deploy the app in it's current state to the device. You can also install this Provising Profile onto other devices then send them the compiled app (which is installed via iTunes).
There is more to be found out about this by going to the Apple Developer Portal but I thought I'd give a brief overview of what you were asking.
An enterprise license you need something like 9000 employees.
The only other way to do it would be to add all their devices to your provisioning portal and supply them with ad-hoc releases which they can drag and drop into itunes to add to their devices.
If your friend's business requires deploying to less than 50 to 100 total devices (the 50 includes 100% replacements/upgrades, the 100 includes zero), then they can apply for a regular iOS Developer Company enrollment (not Enterprise), and use Ad Hoc deployment, which does not require an store (just email/website plus iTunes).
Enterprise requires a D&B rating, usually something that only larger companies have.
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

Does an iPhone Enterprise provisioning profile need to specify phone UUIDs like an ad-hoc provisioning profile does?

We are an iPhone Developer Program member. We've got a DUNS number but not the 500 employees necessary to join the iPhone Developer Enterprise Program. Therefore I can can't see how things exactly operate for the Enterprise level. But we have customers that are big enough to be Enterprise developers and we could distribute our applications to them, and let them build and distribute them on their own. Ideally they could build our app, and distribute it and the associated enterprise distribution provisioning profile via their web site, and users could install both via iTunes.
But... do they need to put every potential user's iPhone UUID in the enterprise distribution provisioning profile as we have to do as individual developers when we do ad-hoc distribution? I am thinking that they don't (have to include all UUIDs) but can't really find anything that specifically says this. Does anyone have experience with this and could shed some light on it, even better with pointers to where this is detailed or explained?
Using an iOS Enterprise Program distribution deployment method does NOT require you to enter every device id.
All you need is a distribution certificate for signing and a provisioning profile built for it. Note that ANYONE that has the profile can run the app on their device, although you can revoke the profile if necessary.
You are also given the standard test and Ad Hoc deployment mechanisms as with the standard Development Program. The Ad Hoc is limited to 100 devices, which I don't understand, but anyway, there it is.
In September 2010, the program was modified by Apple to allow any organization with a DUNS number to apply. Prior to this date, only organizations of 500 or more employees were allowed to join the program. This change should provide much wider access to development of "enterprise apps". See http://www.apperian.com/technotes/Apple_iOS_Enterprise_Developer_Program.html for more information.

What's the point of the provisioning process Apple makes you complete in order to test your apps on an iOS device?

Today I walked to through the process of getting my iOS device connected to my computer and running my app. To do that, I had to...
Obtain a developer certificate
Assign the device to my team
Obtain my app ID
and create a provisioning profile
While I understand the process and was able to successfully get my device connected, I don't at all understand the point of all this. Can anyone explain the point of each step in that process and why Apple has us do this?
Thanks so much in advance for your help! It's important to me to understand this stuff at least at a high level.
Apple just wants to torture the developers :)
Joking aside, I don't know why. There's no official explanation why you need those steps, here's my speculation.
Apple wants to make sure that
only the developer registered to Apple can freely install
onto his or her i-Devices
applications of his or her own applications .
This is presumably to forbid the distribution of apps outside of Apple's own App Store. If any of these three steps is not required,
it's easy to imagine how you can "abuse" the developer status to install lots of apps without going through App Store.
This explains why you need to do 1, 2 and 3. In order for XCode and the i-Device itself to check it, you need a provisioning profile. This explains the point 4.
As a rough explanation.. the device only runs signed apps. Your developer certificate (along with your private key) signs your app so it can run on your device. (or other development devices of your nomination)
If you beta test, your Ad Hoc certificate + provisioning profile will allow all devices with their UDID in the profile to run that app. The beta testers don't need your developer certificate, just their device UDID embedded in the profile.
When you distribute to the app store, you use a Distribution profile (along with the team agent key), and that needs additional signing (co-signing?) from Apple before that code can run on the device. Because Apple signed it, the device doesn't care what UDIDs are allowed.
Apple has made a business decision to maintain tight control over developers and apps both during and after their app development. This means that at any given point in time, they have a tight connection between a developer, app, devices, and the app's users, be it through the adhoc distribution mechanism, or through purchases that users make in iTunes Store. We may only speculate what they internally thought that the goals and benefits here are, but as the market has shown, the outcome is beneficial to all parties, as they have shot from oblivion to one of the most popular smartphone platforms in a few years.
One quite straightforward goal is that they intend to maintain control of the distribution channel and make sure the app cannot be officially distributed through any side channels and they have control over all the money that moves, hence the 100-deviceIDs-per-developeraccount limit (so you couldn't distribute your app outside Apple's channel, yet the 100 devices should be sufficient for closed testing).

Distributing iPhone App to developers in your team through iTunes

Was wondering if you can distribute your App to other developers in your team through iTunes. I guess you would upload the App as a beta version through iTunes Connect and anyone with a provisioned iPhone would receive the update. I didn't think it was possible but someone told me they were sure you could.
If this is not possible are there any other benefits of a company standard enrollment besides being able to add other people so they can get the same resources?
If your other team members don't have access to Xcode then you can do this through ad-hoc distribution.
First you need to get the device ID's (GUID) for all the involved members and generate a provisioning profile containing the ID's.
Then once you have built your executable application just zip this together with the provisioning profile.
The team members can install the application (including the provisioning profile) by dropping the application into iTunes and syncing with the iPhone.
If the developers are in your team, meaning the team as defined on the developer portal, far better for them to sync to the source (i.e. latest or specific label) you want to test and to build and install it themselves since they cal all have their own provisioning profiles. It would be possible for one developer to have all devices on one provisioning profile and to do all the build and install tasks for everyone, or it would be possible to use the ad-hoc distribution, but you need to sign up and pay for that method of course. I do not think there are any other ways to do this.