Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Ad-hoc Deployment

I would like to deploy an app to 20 iOS devices (iPhones and iPads) using Apple Ad-Hoc Deployment. I need to push out the application from a particular computer. Some of the devices that I will be using might have already been synced to computers.

I'm guessing that once I sync these devices to the computer I'll be using to deploy the app from, the content on each device that has previously been synced to a computer will be wiped. Is that correct? Is there a way around that?

like image 606
xited Avatar asked Sep 29 '13 17:09

xited


People also ask

What is Adhoc distribution?

Ad hoc distribution means great things for proprietary apps for teams, classrooms, and large organizations. Sure, a 100-client limit might be a little small, and it remains to be seen how clients will be certified (that is, if you have to connect to the Mothership).

What is adhoc build iOS?

Ad Hoc Distribution Authorizes a Limited Set of Devices to Run Your App. iOS developers enrolled in the Standard Program can also distribute an app outside of the App Store on up to 100 different devices for testing purposes only.

What is ad hoc provisioning profile?

An ad hoc provisioning profile is a distribution provisioning profile that allows your app to be installed on designated devices...


2 Answers

If you don't want to use testflight, here is another over-the-air solution:

  1. In your xcode project go to Product > Archive

  2. Click Distribute in the xcode organizer window that appears when the operation is complete

  3. Click Save for Enterprise or Ad Hoc Deployment and choose next

  4. Choose your ad hoc provisioning profile (created in the member center at developer.apple.com. Make sure it has all 20 device uuids included on the profile.

  5. Click Export

  6. Save it. Make sure to click on the Save for enterprise distribution checkbox and fill out the required info. Application URL will be the URL starting with http:// or https:// that will go to your files (see next step)

  7. This will save two files yourFilename.ipa and yourFileName.plist. Copy these files to your webserver.

  8. Now for the magic. You need to make a link somewhere with the URL itms-services://?action=download-manifest&url=http://yourwebserver.com/path/to/yourFileName.plist

  9. Assuming all your links work and your provisioning profiles are correct, the app should start installing on any registered device that clicks on that link.

If you don't want over the air downloads, you can distribute that .ipa file that was generated in step 6 to your 20 people (their devices must be registered on the provisioning profile still). They can open that file in iTunes and then sync your app with their devices.

Installation of an application over the air or by syncing with iTunes will not wipe the content of any devices.

like image 79
Andrew Avatar answered Sep 17 '22 13:09

Andrew


@Santa Claus answer is still valid in 2020. This is a good option to install app to selected devices when you don't want to use testflight for example bacause of 90 days limit.

Couple of things to point:

  • The process order is a little bit different
  • When you press Distribute App in xcode Archive/Organizer and select Ad Hoc (or Enterprise) and press next: You have to check the box include manifest for over-the-air installation (App Thinning can be None)
  • (6.) in Distribution manifest information: You have to give the urls where you place your file for download. I noticed that the url seems to be case-sensitive so if your app is Foo make sure to put the url like https://www.example.com/apps/Foo.ipa
  • Don't forget to use provisioning profile that have the UUIDs of the devices you want to install the app (can be done Certificates, Identifiers & Profiles in https://developer.apple.com)
  • (7.) You will get package of files. You will need yourFilename.ipa and manifest.plist
  • (8.) Use the manifest.plist in the url, I created a dummy web page where I placed this kind of button (Same place should have the *.ipa file) <a class="btn-download" href="itms-services://?action=download-manifest&url=https://www.example.com/path/manifest.plist">Download</a>

If you don't get error when clicking the download with safari browser in the selected device (UUID match) it will install the app. (Might not give any feedback of success but the icon is found on desktop and the app can be launched)

like image 35
SinunHenkka Avatar answered Sep 19 '22 13:09

SinunHenkka