Comment puis-je déployer une application iPhone de Xcode sur iPhone real périphérique sans avoir un certificat de 99 $ US Apple ?
Réponses
Trop de publicités?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 la plupart du temps simplement copier les deux ci-dessous (et de simplifier alex):
Mise à jour janvier 2012: cela fonctionne encore sur SDK 4.2.1 et iOS 5.0.1 - je viens de le tester sur un nouvel ordinateur et de l'appareil!
1. Créer Un Certificat Auto-Signé
Patch votre iPhone SDK pour permettre l'utilisation de ce certificat:
-
Lancement De Trousseau D'Accès.app. Avec pas d'éléments sélectionnés, à partir du menu Trousseau sélectionnez Assistant de certification, puis Créer un Certificat.
- Nom: Développeur iPhone
- Type De Certificat: Signature De Code
- Permettez-moi de remplacer les valeurs par défaut: Oui
-
Cliquez Sur Continuer
- Validité: 3650 jours
Cliquez Sur Continuer
Vide le la e-Mail de l'adresse de domaine.
-
Cliquez sur Continuer jusqu'à complète.
Vous devriez voir "Ce certificat racine n'est pas digne de confiance". Ce qui est attendu.
-
Définir le SDK de l'iPhone pour permettre le certificat auto-signé pour être utilisé:
sudo /usr/bin/sed -i .bak 's/XCiPhoneOSCodeSignContext/XCCodeSignContext/' /Developer/Platforms/iPhoneOS.platform/Info.plist
Si vous avez Xcode ouvrir, de le redémarrer pour que les modifications prennent effet.
Et si vous êtes sur iOS 5, c'est elle! Essayez-le maintenant! Il peut ne pas permettre le débogage, mais l'application sera là!
J'ai été très surpris par ce parce que, comme vous devez le savoir, je n'ai aucune idée sur ce que tous ces piratages! J'ai tout d'améliorer un peu ce que j'ai trouvé d'ailleurs, comme je l'ai indiqué.
Donc oui, l' ensemble de la méthode ne fonctionne pas de la même manière, et je ne pouvais pas la peine d'en trouver un nouveau... Sauf pour ce, qui utilise un outil appelé " Theos , mais je ne pouvais pas aller à travers l'ensemble du processus.
Enfin, si vous avez besoin de le désinstaller pour quelque raison que ce soit, vérifiez à la fin de ce post. Dans mon cas, j'ai dû parce que je ne pouvais pas comprendre pourquoi tout le bleu de l'ensemble de cette méthode cessé de travailler, et je n'en ai plus depuis que nous avons déjà eu le tant attendu de la licence. (Flipper numéro DUNS prend tellement de temps...)
.
.
.
.
.
2. Activer Xcode est de Construire sur un Appareil Jailbreaké
Sur votre iPhone jailbreaké, installer l'application AppSync par l'ajout de la source http://cydia.hackulo.us
-
Supprimer SDK exigences en matière de code de signer et de droits (je suis amoureuse de sed!):
sudo /usr/bin/sed -i .bak '/_REQUIRED/N;s/YES/NO/' /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk/SDKSettings.plist
-
Attention à l'
iPhoneOS5.0.sdk
partie. Si vous êtes, par exemple, à l'aide de l'iOS 4.2 SDK, il suffit de remplacer 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
-
Conclure l'exigence de retrait par le biais de correctifs de Xcode. Cela signifie binaire d'édition:
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 vous avez Xcode ouvrir, de le redémarrer pour ce changement (et dernier) de prendre effet.
-
Ouvrir "Projet>Modifier les Paramètres du Projet" (dans le menu). Cliquez sur la "Construction"de l'onglet. Trouver "la Signature du Code de l'Identité" et de son enfant "Toute l'iPhoneOS Périphérique" dans la liste, et de définir à la fois à l'entrée "N'est pas Signe Code":
Après cette hésitez pas à annuler l'étape 3. Au moins dans mon cas, c'est allé très bien.
-
Réglage de Xcode pour code signer avec notre custom made certificat auto-signé (le comment). Cette étape peut probablement être ignorées si vous ne voulez pas être en mesure de débogage:
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. Ouvrir La Fenêtre De>L'Organisateur. Sélectionnez le périphérique dans la liste sur le côté gauche, et cliquez sur "Utiliser pour le développement." Vous serez invité à entrer une requête de connexion au site internet, cliquez sur annuler. Il est là pour rendre légitime le provisionnement plus facile, mais ne rend pas illégitime pas-de provisionnement plus difficile.
Maintenant que Vous avez à faire cette dernière partie pour chaque nouveau projet, vous faire. Allez dans le menu Projet > Nouvelle Phase de construction > Nouveau Exécuter le Script Phase de construction. Dans la fenêtre, copier/coller 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
.
.
.
.
La désinstallation
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
dans le cas où vous l'avez fait à l'étape 3 au lieu de 2, il suffit de les modifier 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 juste de revenir ce que vous avez fait sur XCode et la suppression d' /Developer/iphoneentitlements401/gen_entitlements.py
si vous souhaitez:
sudo rm -f /Developer/iphoneentitlements401/gen_entitlements.py
Voir cette réponse à une question, j’ai demandé plus tôt pour un très bon guide sur la façon de le mettre sur votre iPhone jailbreaké.