App iPhone moins App Store?

199

Si je crée une application sur mon Mac, est-il possible de l'exécuter sur un iPhone sans passer par l'App Store?

Peu importe si l'iPhone doit être jailbreaké, tant que je peux toujours exécuter une application créée à l'aide du SDK officiel. Pour des raisons que je n'entrerai pas, je ne peux pas faire passer ce programme sur l'App Store.

Dan Walker
la source
1
À partir de Xcode 7, il est désormais possible d'exécuter une application sur un appareil connecté sans ouvrir de compte de développeur ni jailbreaker l'appareil. Consultez ce guide pour plus de détails.
Suragch
Vous pouvez utiliser AppBox , une application mac qui utilise votre compte Dropbox pour vous distribuer des applications ad-hoc et d'entreprise. Essayez-le ici github.com/vineetchoudhary/AppBox-iOSAppsWirelessInstallation/…
Vineet Choudhary

Réponses:

187

Programme développeur officiel

Pour un iPhone standard, vous devrez payer 99 $ US / an pour être membre du programme développeur. Vous pouvez ensuite utiliser le système adhoc pour installer votre application sur jusqu'à 100 appareils. Le programme développeur contient les détails, mais il implique l'ajout d'UUID pour chacun des appareils à votre package d'application. Les UUID peuvent être récupérés plus facilement en utilisant Ad Hoc Helper disponible sur l'App Store. Pour plus de détails sur cette méthode, voir Craig Hockenberry de Beta test sur iPhone 2.0 article

IPhone jailbreaké

Pour les iPhones jailbreakés, vous pouvez utiliser la méthode suivante que j'ai personnellement testée en utilisant l' exemple d'application AccelerometerGraph sur iPhone OS 3.0.

Créer un certificat auto-signé

Vous devez d'abord créer un certificat auto-signé et patcher votre SDK iPhone pour permettre l'utilisation de ce certificat:

  1. Lancez Keychain Access.app. Sans aucun élément sélectionné, dans le menu Porte-clés, sélectionnez Assistant de certificat, puis Créer un certificat.

    Nom: iPhone Developer
    Certificate Type: Signature de code
    Permettez-moi de remplacer les valeurs par défaut: Oui

  2. Cliquez sur Continuer

    Validité: 3650 jours

  3. Cliquez sur Continuer

  4. Videz le champ Adresse e-mail.

  5. Cliquez sur Continuer jusqu'à la fin.

    Vous devriez voir "Ce certificat racine n'est pas approuvé". C'est attendu.

  6. Configurez le SDK iPhone pour autoriser l'utilisation du certificat auto-signé:

    sudo / usr / bin / sed -i .bak's / XCiPhoneOSCodeSignContext / XCCodeSignContext / '/Developer/Platforms/iPhoneOS.platform/Info.plist

    Si Xcode est ouvert, redémarrez-le pour que cette modification prenne effet.

Déploiement manuel via WiFi

Les étapes suivantes nécessitent opensshet uikittoolsdoivent être installées en premier. Remplacez jasoniphone.localpar le nom d'hôte du périphérique cible. Assurez-vous de définir votre propre mot de passe sur les utilisateurs mobileet rootaprès l'installation de SSH.

Pour compiler et installer manuellement votre application sur le téléphone en tant qu'application système (en contournant le système d'installation d'Apple):

  1. Projet, Set Active SDK, Device et Set Active Build Configuration, Release.

  2. Compilez votre projet normalement (en utilisant Build, pas Build & Go).

  3. Dans le build/Release-iphoneosrépertoire, vous aurez un bundle d'applications. Utilisez votre méthode préférée pour le transférer vers / Applications sur l'appareil.

    scp -r AccelerometerGraph.app root@jasoniphone:/Applications/

  4. Faites savoir à SpringBoard que la nouvelle application a été installée:

    ssh [email protected] uicache

    Cela ne doit être fait que lorsque vous ajoutez ou supprimez des applications. Les applications mises à jour doivent juste être relancées.

Pour vous faciliter la vie pendant le développement, vous pouvez configurer l'authentification par clé SSH et ajouter ces étapes supplémentaires en tant qu'étape de génération personnalisée dans votre projet.

Notez que si vous souhaitez supprimer l'application ultérieurement, vous ne pouvez pas le faire via l'interface SpringBoard standard et vous devrez utiliser SSH et mettre à jour SpringBoard:

ssh root@jasoniphone.local rm -r /Applications/AccelerometerGraph.app &&
ssh mobile@jasoniphone.local uicache
Jason Weathered
la source
2
Le mien ne se construira pas - Xcode donne immédiatement une erreur de signature de code dès que j'essaie de construire ...
Dévoué
1
@ Rev316 uicachedevrait être présent si le uikittoolspackage est installé.
Jason a survécu le
Je vous suis mais j'ai rencontré cette erreur: stackoverflow.com/questions/2161877/…
hungbm06
En outre, vous souhaitez configurer une paire de clés privée / publique sur ssh pour rendre les choses sans mot de passe
conradev
2
Qu'en est-il du profil d'approvisionnement? Existe-t-il un moyen d'en obtenir un sans s'abonner au programme développeur?
Teodor Kostov
18

Oui, une fois que vous avez rejoint le programme pour développeurs iPhone et payé 99 $ à Apple, vous pouvez provisionner vos applications sur jusqu'à 100 appareils iOS.

Robert Höglund
la source
2
Pourquoi y a-t-il une limite d'installation de 100?
Marcus Leon
25
Les gens ne peuvent donc pas utiliser cela comme un moyen de contourner complètement l'App Store.
willc2
2
Et la limite de 100 est considérée comme le nombre d'appareils que vous avez enregistrés cette année-là sur le portail de provisionnement iOS, et non le nombre actuel que vous avez. Donc, si vous ajoutez 5 appareils puis supprimez les 5, vous pouvez ajouter 95 (et non 100) appareils supplémentaires.
Scott C Wilson
1
Mais le nombre d'appareils utilisés se réinitialise une fois que vous renouvelez votre programme de développement.
dgund
1
Et les profils de provisionnement ad-hoc expirent au bout de 3 mois, vous ne pouvez donc pas distribuer de façon permanente des applications, même à l'ensemble limité (100) d'appareils que vous avez enregistrés.
Bogatyr
14
  • Créez votre application
  • Télécharger sur un site de crack
  • (Si votre application est assez bonne) la version crack sera publiée quelques minutes plus tard et prête à être téléchargée par tous ;-)
ohho
la source
8

Avec l'aide de ce post , j'ai réalisé un script qui s'installera via l'application Installous pour un déploiement rapide:

# compress application.
/bin/mkdir -p $CONFIGURATION_BUILD_DIR/Payload
/bin/cp -R $CONFIGURATION_BUILD_DIR/MyApp.app $CONFIGURATION_BUILD_DIR/Payload
/bin/cp iTunesCrap/logo_itunes.png $CONFIGURATION_BUILD_DIR/iTunesArtwork
/bin/cp iTunesCrap/iTunesMetadata.plist $CONFIGURATION_BUILD_DIR/iTunesMetadata.plist

cd $CONFIGURATION_BUILD_DIR

# zip up the HelloWorld directory

/usr/bin/zip -r MyApp.ipa Payload iTunesArtwork iTunesMetadata.plist

Ce qui manque dans le post référencé ci-dessus, c'est iTunesMetadata. Sans cela, Installous n'installera pas les applications correctement. Voici un exemple de iTunesMetadata:

<?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>appleId</key>
    <string></string>
    <key>artistId</key>
    <integer>0</integer>
    <key>artistName</key>
    <string>MYCOMPANY</string>
    <key>buy-only</key>
    <true/>
    <key>buyParams</key>
    <string></string>
    <key>copyright</key>
    <string></string>
    <key>drmVersionNumber</key>
    <integer>0</integer>
    <key>fileExtension</key>
    <string>.app</string>
    <key>genre</key>
    <string></string>
    <key>genreId</key>
    <integer>0</integer>
    <key>itemId</key>
    <integer>0</integer>
    <key>itemName</key>
    <string>MYAPP</string>
    <key>kind</key>
    <string>software</string>
    <key>playlistArtistName</key>
    <string>MYCOMPANY</string>
    <key>playlistName</key>
    <string>MYAPP</string>
    <key>price</key>
    <integer>0</integer>
    <key>priceDisplay</key>
    <string>nil</string>
    <key>rating</key>
    <dict>
        <key>content</key>
        <string></string>
        <key>label</key>
        <string>4+</string>
        <key>rank</key>
        <integer>100</integer>
        <key>system</key>
        <string>itunes-games</string>
    </dict>
    <key>releaseDate</key>
    <string>Sunday, December 12, 2010</string>
    <key>s</key>
    <integer>143441</integer>
    <key>softwareIcon57x57URL</key>
    <string></string>
    <key>softwareIconNeedsShine</key>
    <false/>
    <key>softwareSupportedDeviceIds</key>
    <array>
        <integer>1</integer>
    </array>
    <key>softwareVersionBundleId</key>
    <string>com.mycompany.myapp</string>
    <key>softwareVersionExternalIdentifier</key>
    <integer>0</integer>
    <key>softwareVersionExternalIdentifiers</key>
    <array>
        <integer>1466803</integer>
        <integer>1529132</integer>
        <integer>1602608</integer>
        <integer>1651681</integer>
        <integer>1750461</integer>
        <integer>1930253</integer>
        <integer>1961532</integer>
        <integer>1973932</integer>
        <integer>2026202</integer>
        <integer>2526384</integer>
        <integer>2641622</integer>
        <integer>2703653</integer>
    </array>
    <key>vendorId</key>
    <integer>0</integer>
    <key>versionRestrictions</key>
    <integer>0</integer>
</dict>
</plist>

Évidemment, remplacez toutes les instances de MyApp par le nom de votre application et MyCompany par le nom de votre entreprise.

Fondamentalement, cela sera installé sur n'importe quel appareil jailbreaké avec Installous installé. Une fois configuré, cela se traduit par un déploiement très rapide, car il peut être installé de n'importe où, il suffit de le télécharger sur le site Web de votre entreprise, de télécharger le fichier directement sur l'appareil et de le copier / déplacer ~/Documents/Installous/Downloads.

Richard J. Ross III
la source
@ToolmakerSteve J'en doute, mais étant donné que vous pouvez désormais télécharger des applications iOS avec n'importe quel identifiant Apple gratuitement, je n'en vois pas la nécessité.
Richard J. Ross III
7

Avec le prochain Xcode 7, il est désormais possible d'installer des applications sur vos appareils sans licence de développeur Apple, il est donc désormais possible de sauter l'App Store et vous n'avez plus à jailbreaker votre appareil.

Désormais, tout le monde peut télécharger son application sur son appareil Apple.

Xcode 7 et Swift permettent désormais à tout le monde de créer plus facilement des applications et de les exécuter directement sur leurs appareils Apple. Connectez-vous simplement avec votre identifiant Apple et transformez votre idée en application que vous pouvez toucher sur votre iPad, iPhone ou Apple Watch. Téléchargez Xcode 7 beta et essayez-le vous-même dès aujourd'hui. L'adhésion au programme n'est pas obligatoire.

Cité de: https://developer.apple.com/xcode/

Mettre à jour:

XCode 7 est maintenant disponible:

Développement gratuit sur appareil Désormais, tout le monde peut exécuter et tester sa propre application sur un appareil, gratuitement. Vous pouvez exécuter et déboguer vos propres créations sur un Mac, un iPhone, un iPad, un iPod touch ou une Apple Watch sans aucun frais et sans aucun programme à rejoindre. Il vous suffit de saisir votre identifiant Apple gratuit dans Xcode. Vous pouvez même utiliser le même identifiant Apple que vous utilisez déjà pour l'App Store ou iTunes. Une fois que vous avez perfectionné votre application, le programme pour développeurs Apple peut vous aider à l'obtenir sur l'App Store.

Voir Lancement de votre application sur les appareils pour des informations détaillées sur l'installation et l'exécution sur les appareils.

qqbenq
la source
4

Il convient de noter que si vous suivez la voie jailbreakée, il est possible (probablement?) Qu'une mise à jour de l'iPhone OS tue votre capacité à exécuter ces applications. J'irais sur la route officielle et paierais les 99 $ pour obtenir l'autorisation. En plus de ne pas avoir à vous soucier que vos applications soient encombrées, vous avez également la possibilité (si vous le souhaitez) de publier vos applications sur la boutique.

août
la source
2

Après avoir copié l'application sur l'iPhone de la manière décrite par @Jason Weathered, assurez-vous de "chmod + x" de l'application, sinon elle ne fonctionnera pas.

David Airapetyan
la source
1

* Modifications / notes pour que cela fonctionne pour Xcode 3.2.1 et iPhone SDK 3.1.2

Déploiement manuel via WiFi

2) Assurez-vous de redémarrer Xcode après avoir modifié Info.plist

3) La commande "uicache" est introuvable, en utilisant killall -HUP SpringBoard a bien fonctionné pour moi.

Autre que cela, je peux confirmer que cela fonctionne bien.

Les utilisateurs de Mac, utilisant PwnageTool 3.1.4, ont très bien fonctionné pour Jailbreaking (DL via torrent).

Rev316
la source
Ah. Merci Jason, appréciez le message bien documenté! Je voudrais mentionner l'installation du package UIKit Tools de Cydia pour les nœuds Jailbreak comme moi.
Rev316
1

Si vous corrigez /Developer/Platforms/iPhoneOS.platform/Info.plistpuis essayez de déboguer une application s'exécutant sur l'appareil à l'aide d'un véritable profil de provisionen de développement d'Apple, cela ne fonctionnera probablement pas. Les symptômes sont des messages d'erreur étranges com.apple.debugserveret vous pouvez utiliser n'importe quel identifiant de bundle sans obtenir d'erreur lors de la construction dans Xcode. La solution est de restaurer Info.plist.

Mattias Wadman
la source
0

Vous pouvez utiliser AppBox , une application mac qui utilise votre compte Dropbox pour vous distribuer des applications ad hoc et d'entreprise, si vous souhaitez installer un autre navigateur.

https://github.com/vineetchoudhary/AppBox-iOSAppsWirelessInstallation/releases


Les options

Archiver et télécharger IPA

  • Sélectionnez simplement le projet / espace de travail à archiver -> créer ipa -> télécharger ipa -> envoyer du courrier -> et arrêter mac

Télécharger IPA uniquement

  • Sélectionnez simplement le fichier IPA pour télécharger ipa -> envoyer du courrier -> et arrêter le mac

Fonctionnalité

  • Garder le même lien
    • Cette fonctionnalité conservera la même URL courte pour toutes les futures IPA téléchargées avec le même identifiant de bundle.
    • Si cette option est activée, vous pouvez également télécharger la version précédente avec la même URL.
  • Lien de distribution d'application de messagerie automatique
  • Arrêt automatique de Mac après la distribution
  • Taille de téléchargement maximale => Égal à l'espace de stockage de votre compte Dropbox
  • Expiration de l'application téléchargée => Jusqu'à ce que vous supprimiez de votre Dropbox
  • Installations par application => Illimité
  • Tableau de bord*

    * Sera disponible dans la future version


AppBox vs Diawi

Capture d'écran

Télécharger IPA

Archiver et télécharger IPA

Téléchargement IPA

Essayez-le ici https://github.com/vineetchoudhary/AppBox-iOSAppsWirelessInstallation/releases

Vineet Choudhary
la source