Je viens de télécharger le package Xcode 4.2 avec iOS 5 SDK et j'ai immédiatement remarqué que je ne pouvais pas utiliser mon iPhone 3G avec iOS 4.2.1 pour le débogage. Je ne peux déboguer et tester que sur mon iphone 4 avec iOS 5 installé.
Pour l'un de mes appareils exécutant un iOS inférieur à 5,0, Xcode dit simplement "Fin de l'exécution pour iPhone3GS" et ne l'exécute pas. Mon objectif de déploiement est défini sur 3.0 car je n'utilise aucune fonctionnalité de mon application supérieure à 3.0 et je souhaite pouvoir cibler toutes les versions 3.0 ou supérieures. J'ai tous mes profils d'approvisionnement installés et à jour.
J'ai quitté et redémarré xcode, j'ai nettoyé la compilation plusieurs fois. J'ai essayé d'ajouter armv6 dans les paramètres de construction de l'architecture, mais rien ne me permettra de créer et d'exécuter mon application sur mon ancien téléphone avec ios 4.2.1.
Ma question est la suivante: est-il possible de toujours faire fonctionner des applications avec le nouveau SDK pour les versions iOS inférieures à 5? Comment puis-je être sûr que mon application fonctionnera toujours sur des versions iOS inférieures si je ne parviens pas à les installer sur mon ancien téléphone?
Edit: OK, il semble que le SDK iOS 5 a abandonné le support pour armv6 par défaut. Ce que vous devez faire est d'ajouter armv6 dans le champ Architectures sous Paramètres de construction pour votre cible et votre projet. Ensuite, votre application pourra fonctionner sur les appareils iPhone 3G. La réponse peut être trouvée ici Comment construire pour les architectures armv6 et armv7 avec iOS 5
iOS
versions. Veuillez également ajouter la modification en tant que réponse afin que vous puissiez accepter la solution que vous avez trouvée et que cette question puisse être marquée comme réponse.Réponses:
J'avais le même problème en essayant de faire fonctionner un projet Xcode 4.2 nouvellement créé sur un iPhone 3G 4.2.1. Voici comment j'ai pu le faire fonctionner.
1) Changez les "Paramètres de construction" de la cible ==> "Architecture" de "Standard (armv7)" à "autre". Ajoutez armv6 et armv7.
2) Changez les "Paramètres de construction" de la cible ==> "Architecture valide" en armv6 et armv7.
3) Modifiez les "Paramètres de construction" de la cible ==> "Cible de déploiement iOS" sur iOS 4.2.
4) Ouvrez les projets * -Info.plist, supprimez le paramètre «Capacités de périphérique requises» (notez qu'il fallait armv7)
btw j'ai compris cela lorsque j'ai essayé d'ajouter manuellement l'application via l'organisateur et cela a rapporté:
Tout devrait fonctionner après cela. Parlez d'un PITA.
la source
Accédez à Xcode> Préférences> Téléchargements et installez la prise en charge du débogage pour les anciennes versions iOS.
la source
mmorris m'a rapproché de la résolution du problème ... Dans Info.plist, j'ai dû définir les capacités de périphérique requises sur armv6, pas armv7. J'espère que cela aide aussi les autres.
la source
Vous devez connecter le téléphone, puis accéder à l'organisateur. Xcode devrait automatiquement demander l'ancienne version.
Consultez la page des développeurs pour plus d'informations. Il a été décrit dans les notes de la version 4.2 bêta
la source
J'ai rencontré un problème similaire en essayant d'exécuter mon application sur un ancien iPod Touch. J'ai mis à niveau vers Xcode 4.3.3 et l'application ne fonctionnerait plus dans le débogueur pour moi sur du matériel plus ancien.
Je crois que les autres commentaires ici sur les "Architectures" et les "Capacités de périphérique requises" sont des détails importants à spécifier correctement. Malheureusement, cela n'a pas suffi à résoudre mon problème.
Dans mon cas, j'ai trouvé que le schéma de construction était le coupable. Xcode 4.3.3 m'a invité à passer du débogueur GDB à LLDB lors de la mise à niveau de mon projet. Lorsque j'ai changé l'action Exécuter de mon schéma en GDB , j'ai pu réexécuter l'application sur mon ancien matériel à partir de Xcode.
la source
J'ai découvert que je devais ajouter armv6 aux architectures, mais cela ne fonctionnait toujours pas. Et maintenant, j'ai supprimé armv7 des capacités requises, et c'était tout! Ça a marché!
la source
Cela a fonctionné pour moi et devrait fonctionner pour vous si vous aviez une ancienne version de Xcode auparavant. Sinon, vous devez suivre les conseils donnés par d'autres pour obtenir le SDK à partir d'une ancienne version du SDK:
sudo cp -a /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk
Cette commande n'est que légèrement différente de celle affichée par d'autres, mais ces commandes ont déposé les fichiers dans le dossier SDK lui-même pour moi - nous voulons qu'un sous-répertoire de celui-ci soit créé avec le nom approprié.
la source
Dans mon cas, il y avait une ligne redondante dans les capacités de l'appareil requises
Je viens de le supprimer ...
J'espère que cela aidera quelqu'un d'autre.
la source