199 votes

Une application iPhone sans App Store ?

Si je crée une application sur mon Mac, y a-t-il un moyen de la faire fonctionner sur un iPhone sans passer par l'App Store ?

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

187voto

Jason Weathered Points 5346

Programme officiel des développeurs

Pour un iPhone standard, vous devrez payer 99 dollars par an pour être membre du programme de développement. Vous pourrez ensuite utiliser le système adhoc pour installer votre application sur un maximum de 100 appareils. Le programme de développement fournit les détails, mais il s'agit d'ajouter des UUID pour chacun des appareils à votre paquet d'applications. Les UUID peuvent être facilement récupérés à l'aide des outils suivants Aide ad hoc disponible sur l'App Store. Pour plus de détails sur cette méthode, consultez l'article de Craig Hockenberry intitulé Test bêta sur l'iPhone 2.0 article

iPhone déverrouillé

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

Créer un certificat auto-signé

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

  1. Lancez Keychain Access.app. Sans qu'aucun élément ne soit sélectionné, dans le menu Trousseau, sélectionnez Certificate Assistant, puis Create a Certificate.

    Nom : Développeur iPhone
    Type de certificat : 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 de l'adresse électronique.

  5. Cliquez sur Continuer jusqu'à ce que vous ayez terminé.

    Vous devriez voir "This Root certificate is not trusted". Ceci est attendu.

  6. Configurez le SDK de l'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 vous avez Xcode ouvert, redémarrez-le pour que ce changement prenne effet.

Déploiement manuel en WiFi

Les étapes suivantes nécessitent openssh et uikittools à installer en premier. Remplacer jasoniphone.local avec le nom d'hôte du périphérique cible. Assurez-vous de définir votre propre mot de passe à la fois sur le mobile y root utilisateurs après avoir installé 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. Project, Set Active SDK, Device et Set Active Build Configuration, Release.

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

  3. Dans le build/Release-iphoneos vous aurez un paquet 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. Indiquez à SpringBoard que la nouvelle application a été installée :

    ssh mobile@jasoniphone.local uicache

    Cette opération ne doit être effectuée que lorsque vous ajoutez ou supprimez des applications. Les applications mises à jour doivent simplement ê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 comme une étape de construction personnalisée dans votre projet.

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

ssh root@jasoniphone.local rm -r /Applications/AccelerometerGraph.app &&
ssh mobile@jasoniphone.local uicache

18voto

Robert Höglund Points 5572

Oui, une fois que vous avez rejoint l'iPhone Developer Program et payé 99 dollars à Apple, vous pouvez provisionner vos applications sur un maximum de 100 appareils iOS.

14voto

ohho Points 17243
  • Créez votre application
  • Télécharger sur un site de crack
  • (Si votre application est assez bonne) la version crack sera postée quelques minutes plus tard et prête à être téléchargée par tous ;-)

8voto

Richard J. Ross III Points 33152

Avec l'aide de ce poste J'ai créé un script qui s'installe 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 message mentionné ci-dessus, ce sont les iTunesMetadata. Sans ces données, Installous n'installera pas correctement les applications. Voici un exemple d'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.

En gros, il s'installera sur tout appareil jailbreaké sur lequel Installous est installé. Une fois qu'il est configuré, le déploiement est 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, puis de le copier ou de le déplacer à l'adresse suivante ~/Documents/Installous/Downloads .

4voto

August Points 9726

Il convient de noter que si vous optez pour la voie jailbreakée, il est possible (probable ?) qu'une mise à jour du système d'exploitation de l'iPhone vous empêche d'exécuter ces applications. Je choisirais la voie officielle et paierais les 99 dollars pour obtenir l'autorisation. Outre le fait que vous n'aurez pas à vous soucier de la destruction de vos applications, vous aurez également la possibilité (si vous le souhaitez) de publier vos applications sur la boutique.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X