web-dev-qa-db-fra.com

Téléchargez et installez un ipa à partir d'une URL hébergée sur iOS

J'ai besoin de télécharger et d'installer un ipa directement à partir d'une URL.

J'ai essayé ceci:

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

L'application lance Safari mais le message suivant apparaît:

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

C'est possible?

42
Andoxko

Pour distribuer votre application par liaison radio (OTA, cela signifie sans à l'aide de TestFlight ou de l'App Store officiel), vous devrez peut-être créer 3 fichiers différents, à savoir:

  • Le fichier .ipa (utilisant un profil d'approvisionnement ad-hoc)
  • index.html
  • manifeste.pliste

Vous pouvez utiliser Beta Builder pour générer ces fichiers:

  1. Archivez votre build.
  2. Enregistrez le fichier .ipa sur le bureau.
  3. Téléchargez un petit utilitaire Beta Builder à partir de ici . Cela fait la majeure partie de la tâche requise.
  4. Ouvrez l'outil et sélectionnez votre fichier .ipa, puis indiquez le chemin d'accès sur lequel vous allez placer la construction https://myWeb.com/MY_TEST_APP dans le constructeur bêta.
  5. Générez tous les fichiers.
  6. Maintenant, téléchargez index.html, your_App.ipa, & manifest.plist vers votre chemin de serveur https://myWeb.com/MY_TEST_APP
  7. Maintenant, partagez le lien de index.html. Une fois que vous avez ouvert ce fichier, il vous sera demandé de cliquer sur installer.
  8. Il va installer your_App.ipa sur votre appareil.

Vous pouvez également le faire plus manuellement.

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>

Si l'application refuse l'installation ou l'exécution, vous devrez peut-être vérifier les éléments suivants:

  • Le profil d'approvisionnement que vous avez utilisé lors de la compilation/archivage de votre application
  • Les URL dans les deux index.html et manifest.plist
  • Le fichier plist devra peut-être être hébergé sur un serveur HTTPS. Vous pouvez utiliser Dropbox pour cela si nécessaire.
  • Il se peut que vous deviez enregistrer les UUID de votre appareil dans Apple Developer Center), à moins que vous ne possédiez une licence Enterprise.
  • Vous devrez peut-être activer manuellement l'accès à l'application dans Paramètres> Profils.
116
Balram Tiwari

Plus simplement, vous pouvez utiliser DropBox pour cela. Les étapes restent fondamentalement les mêmes. Vous pouvez faire ce qui suit:

1) envoyez votre fichier .ipa vers dropBox, partagez le lien correspondant à ce fichier .ipa

2) Collez le lien partagé pour .ipa dans votre fichier manifest.plist, puis téléchargez le fichier manifeste dans DropBox et partagez à nouveau le lien pour ce fichier .plist.

3) collez le lien de cette Plist dans votre fichier index.html avec une balise appropriée.

Partagez ce fichier index.html avec toute personne pouvant appuyer sur l’URL et la télécharger. ou vous pouvez directement taper l'URL à la place.

12
Vkharb

Oui, safari détectera le fichier * .ipa et essaiera de l'installer, mais l'iPa doit être correctement signé et seuls les périphériques autorisés pourront l'installer.

http://www.diawi.com est un service qui vous aidera avec ce processus.

Tout cela concerne la distribution ad hoc, pas les applications de production.

Plus d'informations sur le lien ci-dessous: Y a-t-il un moyen d'installer l'application iPhone via un navigateur?

5
IamAnil

Il existe des outils en ligne qui simplifient ce processus de partage, par exemple https://abbashare.com ou https://diawi.com Créez un fichier ipa à partir de xcode avec adhoc ou un profil interne et téléchargez ce fichier sur ce site. Je préfère abbashare parce que sauvegarder le fichier sur votre dropbox et vous pouvez le supprimer quand vous le voulez

3
Mario Buonomo

Réponse pour compte d'entreprise avec Xcode8

  1. Exportez le fichier .ipa en cochant la case "avec manifeste" et fournissez les liens demandés.

  2. Téléchargez les fichiers .ipa et .plist au même emplacement que le serveur (indiqué lors de l’exportation de .ipa/mentionné dans le fichier .plist).

  3. Créez le lien de téléchargement comme indiqué ci-dessous. L’URL doit renvoyer à l’emplacement de votre fichier .plist.

    itms-services: //? action = manifest-download & url = https://votrenomdedomaine.com/app.plist

  4. Copiez ce lien et collez-le dans le navigateur Safari dans votre iphone. Il vous demandera d'installer: D

Créer un bouton html en utilisant cette URL complète

2
Lahiru Pinto

Cela ne sera pas possible si vous souhaitez télécharger et installer directement l'application depuis votre site Web. Il existe une manière différente pour les entreprises de déployer et d'installer des applications par liaison radio. Votre URL doit pointer vers un service Web hébergeant un fichier manifeste de pliste au format prédéfini requis par Apple. Ce service doit renvoyer l'URL du fichier manifeste, qui peut ensuite être utilisé comme suit:

NSString *urlString = // url string where your manifest.plist is deployed on your server.
NSURL *installationURL = [NSURL URLWithString:[NSString stringWithFormat:@"itms-services://?action=download-manifest&url=%@",[urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]];
[[UIApplication sharedApplication] openURL];

J'espère que ça répond à ta question.

1
mithlesh jha