Application iPhone sans App Store ?
Question
Si je crée une application sur mon Mac, existe-t-il un moyen de la faire fonctionner 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'aborderai pas, je ne peux pas faire passer ce programme via l'App Store.
La solution
Programme de développement 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 un maximum de 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 Assistant ad hoc disponible sur l'App Store.Pour plus de détails sur cette méthode, voir Craig Hockenberry Test bêta 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 le AccéléromètreGraphique exemple d'application sur iPhone OS 3.0.
Créer un certificat auto-signé
Vous devrez d'abord créer un certificat auto-signé et patcher votre SDK iPhone pour permettre l'utilisation de ce certificat :
Lancez le trousseau Access.app.Sans aucun élément sélectionné, dans le menu Trousseau, sélectionnez Assistant de certificat, puis Créer un certificat.
Nom:Développeur iPhone
Type de certificat:Signature de code
Permettez-moi de remplacer les valeurs par défaut :OuiCliquez sur Continuer
Validité:3650 jours
Cliquez sur Continuer
Videz le champ Adresse e-mail.
Cliquez sur Continuer jusqu'à la fin.
Vous devriez voir « Ce certificat racine n'est pas approuvé ».Ceci est attendu.
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 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 sur le mobile
et 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) :
Projet, définir le SDK actif, le périphérique et définir la configuration de construction active, version.
Compilez votre projet normalement (en utilisant Build, pas Build & Go).
Dans le
build/Release-iphoneos
répertoire, vous aurez un ensemble d'applications.Utilisez votre méthode préférée pour transférer cela vers /Applications sur l'appareil.scp -r AccelerometerGraph.app root@jasoniphone:/Applications/
Informez SpringBoard que la nouvelle application a été installée :
ssh mobile@jasoniphone.local uicache
Cela ne doit être fait 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 en tant qu'étape de construction 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 le SpringBoard :
ssh root@jasoniphone.local rm -r /Applications/AccelerometerGraph.app &&
ssh mobile@jasoniphone.local uicache
Autres conseils
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.
- Créez votre application
- Télécharger sur un site de crack
- (Si votre application est assez bonne), la version crackée sera publiée quelques minutes plus tard et prête à être téléchargée par tout le monde ;-)
Avec l'aide de ce post, j'ai réalisé un script qui va s'installer 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 référencé ci-dessus, ce sont les métadonnées iTunes.Sans cela, Installous n'installera pas les applications correctement.Voici un exemple de métadonnées iTunes :
<?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 s'installera sur n'importe quel appareil jailbreaké sur lequel Installous est 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, puis de le copier/déplacer vers ~/Documents/Installous/Downloads
.
Avec le prochain Xcode 7, il est désormais possible d'installer des applications sur vos appareils sans licence de développeur Apple. sauter l'App Store et vous n'avez pas besoin de jailbreaker votre appareil.
Désormais, tout le monde peut télécharger son application sur son appareil Apple.
Xcode 7 et Swift facilitent désormais la création d'applications et les exécutent directement sur leurs appareils Apple.Connectez-vous simplement avec votre ID Apple et transformez votre idée en une application que vous pouvez toucher sur votre iPad, iPhone ou Apple Watch.Téléchargez Xcode 7 Beta et essayez-le vous-même aujourd'hui.L’adhésion au programme n’est pas requise.
Cité de : https://developer.apple.com/xcode/
Mise à jour:
XCode 7 est maintenant disponible :
Développement gratuit sur appareil Maintenant, 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, iPhone, iPad, iPod Touch ou Apple Watch sans frais, et aucun programme à rejoindre.Tout ce que vous avez à faire est de saisir votre ID Apple gratuit dans Xcode.Vous pouvez même utiliser le même ID Apple que vous utilisez déjà pour l'App Store ou iTunes.Une fois que vous avez perfectionné votre application, le programme Apple Developer peut vous aider à l'obtenir sur l'App Store.
Voir Lancer votre application sur les appareils Pour des informations détaillées sur l'installation et l'exécution sur les appareils.
Il convient de noter que si vous optez pour le jailbreak, il est possible (probable ?) qu'une mise à jour du système d'exploitation de l'iPhone supprime votre capacité à exécuter ces applications.J'emprunterais la voie officielle et paierais 99 $ pour obtenir une autorisation.En plus de ne pas avoir à craindre que vos applications soient détruites, vous avez également la possibilité (si vous le souhaitez) de publier vos applications sur le magasin.
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.
*Modifications/Notes pour que cela fonctionne Xcode 3.2.1 et Kit de développement logiciel iPhone 3.1.2
Déploiement manuel via WiFi
2) Assurez-vous de redémarrer Xcode après avoir modifié l'Info.plist
3) La commande "uicache" est introuvable, l'utilisation de killall -HUP SpringBoard a bien fonctionné pour moi.
A part ça, je peux confirmer que cela fonctionne bien.
Les utilisateurs Mac utilisant PwnageTool 3.1.4 ont très bien fonctionné pour le jailbreak (DL via torrent).
Si vous corrigez /Developer/Platforms/iPhoneOS.platform/Info.plist
puis essayez de déboguer une application exécutée sur l'appareil à l'aide d'un véritable profil de développement d'Apple, cela ne fonctionnera probablement pas.Les symptômes sont des messages d'erreur étranges provenant de com.apple.debugserver
et que 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
.
Vous pouvez utiliser Boîte d'applications, Une application Mac qui utilise votre compte Dropbox pour distribuer vos applications ad hoc et d'entreprise, si vous souhaitez les installer à partir de n'importe quel autre navigateur.
https://github.com/vineetchoudhary/AppBox-iOSAppsWirelessInstallation/releases
Possibilités
Archiver et télécharger IPA
- Sélectionnez simplement Projet/Espace de travail pour archive -> faire de l'ipa -> télécharger l'IPA -> envoyer un mail -> et arrêter Mac
Télécharger IPA uniquement
- Sélectionnez simplement le fichier IPA pour télécharger l'IPA -> envoyer un mail -> et arrêter Mac
Fonctionnalité
- Conserver le même lien
- Cette fonctionnalité conservera la même URL courte pour tous les futurs ipa téléchargés 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.
- Courriel automatique Lien de distribution d'application
- Arrêt automatique du Mac après distribution
- Taille maximale de téléchargement => Égal au 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 prochaine version
AppBox et Diawi
Capture d'écran
Télécharger l'IPA
Archiver et télécharger IPA
Téléchargement de l'IPA