Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Download and install an ipa from self hosted url on iOS

Tags:

ios

ipa

I need to download and install an ipa directly from an URL.

I have tried this:

NSURL *url = [NSURL URLWithString:@"https://myWeb.com/test.ipa"]; [[UIApplication sharedApplication] openURL:url]; 

The app launches Safari but then this message appears:

Error Message "Download Failed, Safari cannot download this file."

Is it possible?

like image 688
Andoxko Avatar asked May 09 '14 09:05

Andoxko


People also ask

Can iOS install IPA?

An . ipa or iOS App Store Package file is an archive file of an iOS application file that stores an iOS app. And IPA files can only be installed on an iOS device such as iPhone or iPad.


1 Answers

To distribute your app over-the-air (OTA, this means without using TestFlight or the official App Store), you may need to create 3 different files, namely:

  • The .ipa file (using an ad-hoc provisioning profile)
  • index.html
  • manifest.plist

You can use Beta Builder to generate these files:

  1. Archive your build.
  2. Save the .ipa on the Desktop.
  3. Download a small utility Beta Builder from here. This does most of the required task.
  4. Open the tool and select your .ipa file, then provide the path you will be placing the build on https://myWeb.com/MY_TEST_APP in the beta builder.
  5. Generate all the files.
  6. Now upload index.html, your_App.ipa, & manifest.plist to your server path https://myWeb.com/MY_TEST_APP
  7. Now share the link of index.html. Once you open this file, you will be asked to Tap on install.
  8. It will install your_App.ipa on your device.

You can also do this more manually.

index.html

<a href="itms-services://?action=download-manifest&url=https://myWeb.com/MY_TEST_APP/manifest.plist">Install App</a>

manifest.plist

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict>     <key>items</key>     <array>         <dict>             <key>assets</key>             <array>                 <dict>                     <key>kind</key>                     <string>software-package</string>                     <key>url</key>                     <string>http://YOUR_SERVER_URL/YOUR-IPA-FILE.ipa</string>                 </dict>             </array>             <key>metadata</key>             <dict>                 <key>bundle-identifier</key>                 <string>com.yourCompany.productName</string>                 <key>bundle-version</key>                 <string>1.0.0</string>                 <key>kind</key>                 <string>software</string>                 <key>title</key>                 <string>YOUR APP NAME</string>             </dict>         </dict>     </array> </dict> </plist> 

If the app refuses to install or run, you may need to check the following items:

  • The provisioning profile you've used when compiling/archiving your app
  • The URLs in both index.html and manifest.plist
  • The plist file may possibly need to be hosted on an HTTPS server. You can use Dropbox for this if necessary.
  • Your device UUIDs may need to be registered inside Apple Developer Center unless you have an Enterprise licence
  • You may need to manually enable access to the app within Settings > Profiles
like image 164
Balram Tiwari Avatar answered Oct 06 '22 00:10

Balram Tiwari