Comment puis-je déployer une application iPhone de Xcode sur un vrai iPhone sans avoir un certificat Apple de 99 $ US?
Comment puis-je déployer une application iPhone de Xcode sur un vrai iPhone sans avoir un certificat Apple de 99 $ US?
Réponses:
Il semble que l'application ne soit pas signée. Téléchargez ldid depuis Cydia et utilisez-le comme ceci:ldid -S /Applications/AccelerometerGraph.app/AccelerometerGraph
Assurez-vous également que le binaire est marqué comme exécutable: chmod +x /Applications/AccelerometerGraph.app/AccelerometerGraph
J'ai utilisé un mélange de deux howtos: Jason et Alex . Avec le second, nous avons l'avantage de pouvoir déboguer. Je vais principalement copier les deux ci-dessous (et simplifier ceux d'Alex):
Mise à jour de janvier 2012: cela fonctionne toujours sur SDK 4.2.1 et iOS 5.0.1 - Je viens de tout tester sur un nouvel ordinateur et appareil!
Corrigez votre iPhone SDK pour permettre l'utilisation de ce certificat:
Lancez Keychain Access.app. En l'absence d'éléments sélectionnés, dans le menu Trousseau, sélectionnez Assistant de certificat, puis Créer un certificat.
Cliquez sur Continuer
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.
Et si vous êtes sur iOS 5, c'est tout! Essayez-le maintenant! Cela ne permet peut-être pas le débogage, mais l'application sera là!
J'ai été très surpris par cela car, comme vous devriez le savoir , je n'ai aucune idée de ce que sont tous ces hackings! Tout ce que j'ai fait, c'est améliorer un peu ce que j'ai trouvé ailleurs, comme je l'ai souligné.
Alors oui, toute la méthode ne fonctionne plus de la même manière et je ne pouvais plus me donner la peine d'en trouver une nouvelle ... Sauf cela, qui utilise un outil appelé Theos mais je n'ai pas pu passer par tout le processus.
Enfin, si vous devez le désinstaller pour une raison quelconque, consultez la fin de cet article. Dans mon cas, je devais le faire parce que je ne pouvais pas comprendre pourquoi tout le bleu de cette méthode avait cessé de fonctionner, et je m'en fichais plus puisque nous avons déjà la licence attendue depuis longtemps. (Le nombre Freaking DUNS prend tellement de temps ...)
.
.
.
.
.
Sur votre iPhone jailbreaké, installez l'application AppSync en ajoutant la source ** http://repo.hackyouriphone.org **
Supprimez les exigences du SDK pour le signe du code et les droits (j'adore sed !):
sudo /usr/bin/sed -i .bak '/_REQUIRED/N;s/YES/NO/' /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk/SDKSettings.plist
Faites attention à laiPhoneOS5.0.sdk
pièce. Si vous utilisez, par exemple, le SDK iOS 4.2, remplacez-le simplement en conséquence:
sudo /usr/bin/sed -i .bak '/_REQUIRED/N;s/YES/NO/' /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.2.sdk/SDKSettings.plist
Terminez la suppression des exigences en appliquant un correctif à Xcode. Cela signifie une édition binaire:
cd /Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Plug-ins/iPhoneOS\ Build\ System\ Support.xcplugin/Contents/MacOS/
dd if=iPhoneOS\ Build\ System\ Support of=working bs=500 count=255
printf "\xc3\x26\x00\x00" >> working
/bin/mv -n iPhoneOS\ Build\ System\ Support iPhoneOS\ Build\ System\ Support.original
/bin/mv working iPhoneOS\ Build\ System\ Support
chmod a+x iPhoneOS\ Build\ System\ Support
Si Xcode est ouvert, redémarrez-le pour que cette modification (et la dernière) prenne effet.
Ouvrez "Projet> Modifier les paramètres du projet" (dans le menu). Cliquez sur l' onglet "Construire" . Recherchez «Identité de signature de code» et son enfant «Tout appareil iPhoneOS» dans la liste, et réglez les deux sur l'entrée «Ne pas signer de code» :
Après cela, n'hésitez pas à annuler l'étape 3. Au moins dans mon cas, cela s'est très bien passé.
Configurer Xcode sur code sign avec notre certificat auto-signé personnalisé (le premier guide pratique). Cette étape peut probablement être ignorée si vous ne voulez pas pouvoir déboguer:
mkdir /Developer/iphoneentitlements401
cd /Developer/iphoneentitlements401
curl -O http://www.alexwhittemore.com/iphone/gen_entitlements.txt
mv gen_entitlements.txt gen_entitlements.py
chmod 777 gen_entitlements.py
Branchez votre iPhone et ouvrez Xcode. Ouvrez Fenêtre> Organiseur. Sélectionnez l'appareil dans la liste sur le côté gauche, puis cliquez sur «Utiliser pour le développement». Vous serez invité à vous connecter au site Web d'approvisionnement, cliquez sur Annuler. Il est là pour faciliter le provisionnement légitime, mais ne rend pas le non-provisionnement illégitime plus difficile.
Vous devez maintenant faire cette dernière partie pour chaque nouveau projet que vous faites . Allez dans le menu Projet> Nouvelle phase de construction> Nouvelle phase de création de script d'exécution. Dans la fenêtre, copiez / collez ceci:
export CODESIGN_ALLOCATE=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/codesign_allocate
if [ "${PLATFORM_NAME}" == "iphoneos" ]; then
/Developer/iphoneentitlements401/gen_entitlements.py "my.company.${PROJECT_NAME}" "${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/${PROJECT_NAME}.xcent";
codesign -f -s "iPhone Developer" --entitlements "${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/${PROJECT_NAME}.xcent" "${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/"
fi
.
.
.
.
Pour la 1ère partie:
sudo mv -f /Developer/Platforms/iPhoneOS.platform/Info.plist.bak /Developer/Platforms/iPhoneOS.platform/Info.plist
Pour la 2ème partie:
sudo mv -f /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk/SDKSettings.plist.bak /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk/SDKSettings.plist
sudo mv -f iPhoneOS\ Build\ System\ Support.original iPhoneOS\ Build\ System\ Support
Si vous avez fait l'étape 3 au lieu de 2, modifiez-la simplement en conséquence:
sudo mv -f /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.2.sdk/SDKSettings.plist.bak /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.2.sdk/SDKSettings.plist
pour le reste, c'est simplement revenir sur ce que vous avez fait sur XCode et supprimer /Developer/iphoneentitlements401/gen_entitlements.py
si vous le souhaitez:
sudo rm -f /Developer/iphoneentitlements401/gen_entitlements.py
The identity used to sign the executable is no longer valid. ... (0xE8008018)
même lorsque j'ai mis 3650 jours à expirer. Il semble que le téléphone lui-même effectue une vérification.
Afin de tester votre application sur un appareil réel plutôt que de payer les frais de développeur Apple (ou de jailbreaker votre appareil), vous pouvez utiliser le nouveau provisionnement gratuit pris en charge par Xcode 7 et iOS 9.
Voici les étapes plus ou moins suivies de la documentation (ce qui est plutôt bien, alors lisez-la):
1. Ajoutez votre identifiant Apple dans Xcode
Allez dans XCode> Préférences> onglet Comptes> bouton Ajouter (+)> Ajouter un identifiant Apple. Consultez la documentation pour obtenir de l'aide.
2. Cliquez sur l'onglet Général dans le navigateur de projet
3. Choisissez votre identifiant Apple dans le menu contextuel Team.
4. Connectez votre appareil et choisissez-le dans le menu Schéma.
5. Cliquez sur le bouton Résoudre les problèmes
Si vous obtenez une erreur indiquant que le nom du groupe n'est pas valide, remplacez-le par quelque chose d'unique.
6. Exécutez votre application
Dans Xcode, cliquez sur le bouton Créer et exécuter.
7. Faites confiance au développeur de l'application dans les paramètres de l'appareil
Après avoir exécuté votre application, vous obtiendrez une erreur de sécurité car l'application que vous souhaitez exécuter ne provient pas de l'App Store.
Sur votre appareil , accédez à Paramètres> Général> Profil> votre-nom-identifiant-Apple > Faites confiance à votre-nom-identifiant-Apple > Confiance.
8. Exécutez à nouveau votre application sur votre appareil.
C'est tout. Vous pouvez maintenant exécuter la vôtre (ou toute autre application pour laquelle vous avez le code source) sans avoir à débourser 99 dollars. Merci, Apple, d'avoir enfin permis cela.
Vous devrez jailbreaker votre appareil.
Il existe un moyen de déployer des applications iPhone sans payer à Apple. Vous devrez jailbreaker votre appareil et suivre les instructions sur http://www.alexwhittemore.com/?p=398
Rien de ce que j'ai vu nulle part n'indique que vous pouvez déployer ad-hoc sur un vrai iPhone sans certificat (payant).
J'étais en train de passer par le développeur Apple hier soir et là, dans le certificat d'approvisionnement, j'ai trouvé quelque chose comme - "Signing Team Members". Je pense qu'il existe un moyen d'ajouter des membres de l'équipe au profil payant. Vous pouvez simplement demander au propriétaire de l'identifiant d'application (payant) de vous ajouter en tant que membre de l'équipe. Je ne suis pas sûr. Toujours à la recherche de ça.
Non, c'est facile à faire. Dans Xcode, définissez la configuration active sur Release. Changez l'appareil de Simulator en Device - quel que soit le SDK. Si vous souhaitez exporter directement vers votre iPhone, connectez-le à votre ordinateur. Appuyez sur Build and Go. Si votre iPhone n'est pas connecté à votre ordinateur, un message apparaîtra indiquant que votre iPhone n'est pas connecté.
Si cela s'applique à vous: (l'iPhone n'était pas connecté)
Accédez au dossier de vos projets, puis au dossier de construction à l'intérieur. Accédez au dossier Release-iphoneos et emportez l'application à l'intérieur, glissez-déposez sur l'icône iTunes. Lorsque vous synchronisez votre appareil iTouch, il le copie sur votre appareil. Il apparaîtra également dans iTunes en tant qu'application pour l'iPhone.
J'espère que cela t'aides!
PS: Si cela dit quelque chose sur un certificat non valide, cliquez simplement sur le projet dans Xcode, la petite icône de projet dans la pile de fichiers à gauche, et appuyez sur Apple + I, ou faites Obtenir des informations dans la barre de menu. Cliquez sur Construire en haut. Sous Signature du code, modifiez Identité de signature de code - Tout appareil iPhone OS en Ne pas signer.
Tout dépend vraiment de la version de Xcode que vous utilisez, car différentes versions utilisent différentes méthodes pour se déployer sur votre iPhone sans profil d'approvisionnement.
Xcode 3.2.1 est une bonne version et est facile à trier, mais nous devons savoir quelle version vous utilisez.
La solution publiée par Cawas fonctionne également parfaitement avec XCode4. Cependant, il y a quelques changements dans l'interface utilisateur de l'IDE, vous devez donc faire quelques recherches pour trouver Run Script :)
Dans la vue Navigateur de projet, cliquez sur l'élément racine du projet, puis dans la fenêtre du milieu, sélectionnez Cible, puis cliquez sur l'onglet Phases de construction et en bas, vous verrez le bouton Ajouter une phase de construction, cliquez et sélectionnez Ajouter un script d'exécution, puis collez "codesign "scénario posté par Cawas.
Il n'y a pas de solution de contournement. Vous ne pouvez déployer des applications ad hoc que si elles sont enregistrées sur votre appareil. Cela vous empêche de créer votre propre boutique d'applications.