Apple publie Xcode 5.1 résolvant divers problèmes et implémentant une multitude de nouvelles fonctions

  Xcode est le programme qui contient tous les outils dont un développeur d'applications a besoin pour développer et lancer une application dans App Store, et ce soir-là, Apple l'a mis à jour. Version 5.1a Xcode vient avec iOS 7.1, permettant aux développeurs de rendre leurs applications compatibles avec la nouvelle version du système d'exploitation. Xcode 5.1 est publié dans l'idée de résoudre une multitude de problèmes de la version précédente, et grâce au journal des modifications ci-dessous, vous pourrez découvrir exactement ce qui fonctionnera mieux ou ce que vous trouverez de nouveau.

Nouvelles fonctionnalités

Débogage

  • Quick Look peut être implémenté pour les classes définies par le développeur. Lorsqu'une instance d'une classe personnalisée est affichée avec Quick Look dans la vue des variables du débogueur ou un type de données, le débogueur la présente à l'aide d'une méthode nommée -debugQuickLookObject défini dans l’implémentation de la classe. Pour plus de détails sur la façon d'utiliser cette fonctionnalité, voir Recherche rapide de types personnalisés dans le débogueur Xcode. (12723736)
  • Les actions de point d'arrêt de journalisation affichent désormais la valeur logique des expressions. Par exemple, une action de point d'arrêt de journalisation telle que "myString = @myString@" imprime maintenant la valeur de myString, plutôt que la valeur du pointeur. (13211695) 

Modification des interfaces utilisateur

  • Les documents Interface Builder peuvent contenir des informations spécifiques sur les nouvelles fonctionnalités qu'ils utilisent et les versions du système d'exploitation dont ils ont besoin, permettant aux versions précédentes de Xcode d'afficher de meilleurs messages d'avertissement lors de la tentative d'ouverture de ces documents. (7659982)
  • La création d'interfaces dans Interface Builder à l'aide de la disposition automatique offre la suite complète des types de contraintes possibles : rapports hauteur/largeur, tailles et positions proportionnelles, alignements d'attributs croisés et un nouvel inspecteur de contraintes avec des fonctionnalités permettant de modifier presque toutes les propriétés d'une contrainte.
  • L'inspecteur d'attributs de contrainte d'Interface Builder affiche les éléments et les attributs d'une contrainte et permet de modifier les attributs. Cette fonctionnalité permet de créer des contraintes inter-attributs telles que view1.centerY = view2.bottom. (13739009)
  • Vous pouvez utiliser Interface Builder pour modifier la relation de tout type de contrainte, y compris les contraintes d'alignement (par exemple, view1.leading <= view2.leading) et des contraintes de taille égale (par exemple, view1.width >= view2.width). (sept)
  • Vous pouvez créer des contraintes de rapport hauteur/largeur et de dimensionnement proportionnel et modifier le multiplicateur de contraintes dans Interface Builder. Le multiplicateur peut être un nombre décimal (par exemple : 0.5), une fraction (par exemple, 1/2), ou un rapport hauteur/largeur (par exemple, 1:2). (sept)
  • Les contraintes attachées aux vues ambiguës dans Interface Builder sont dessinées en orange uniquement dans l'axe ambigu. Cela permet d'identifier plus rapidement un problème potentiel dans le canevas. (15114120)
  • Le canevas Interface Builder affiche désormais les curseurs de superposition lorsque cela est approprié, en fonction du paramètre « Afficher la barre de défilement » dans le volet Général des Préférences Système. (10069033)
  • L'inspecteur Interface Builder prend désormais en charge :
    • NSTableView - floatsGroupRows propriété (9617000)
    • UISegmentedControl - apportionsSegmentWidthsByContent propriété (9950528)
    • UITableView - sectionIndexBackgroundColor propriété (14776025)
    • Définition du type de bouton « Détail » pour le prototype UITableViewCell - editingAccessoryType propriété (15039987)

Instruments et symbolisation

  • Les instruments trouvent désormais les symboles de manière beaucoup plus fiable. Si les symboles ne s'affichent pas automatiquement, essayez ce qui suit : instruments L'outil de ligne de commande prend désormais en charge la spécification du SDK du simulateur et du type de périphérique à l'aide de l'outil de ligne de commande. -w drapeau Pour voir une liste des configurations de simulateur prises en charge ainsi que des périphériques connectés, exécutez instruments -s devices dans une fenêtre de terminal. (14996865)
    • Lorsque l'indexation Spotlight est désactivée pour les données dérivées de Xcode, par exemple lors de l'utilisation /tmp, ajoutez une liste globale de chemins de recherche supplémentaires configurés dans les préférences Instruments.
    • Le menu contextuel d'une adresse inclut désormais l'option "Symboliquer avec DSYM" pour ajouter un fichier de symboles spécifique.
    • Utilisez la commande Symboles du menu Fichier pour afficher une liste plus détaillée de l’état des exécutables et des bibliothèques individuels.
      • Les voyants verts indiquent la présence de symboles et d'informations sur la source.
      • Les lumières jaunes indiquent les bibliothèques avec certains symboles mais peuvent toujours bénéficier de la localisation d'un dSYM.
      • Les lumières rouges indiquent des situations qui empêchent le symbolisme. (14269449)

Installation par script

  • En installant Device SupportRun à partir de la ligne de commande, Xcode.app prend le nouvel argument de ligne de commande, -installComponents. Lorsque Xcode est exécuté à partir d'un script de ligne de commande avec cette option, il installe les packages de prise en charge de périphérique requis, puis se ferme. (15127411) 

Général

  • Les Emoji et autres paires de substitution Unicode sont pris en charge dans les paramètres du schéma et dans les fichiers de projet. (14837623 et 13827044)

Modifications

Développement

  • Arm64 est désormais inclus dans le paramètre « Architectures standard ». Xcode 5.0 a introduit la prise en charge de la création d'applications iOS 64 bits, mais elle n'a pas été activée par défaut. Pour activer l'option de création de 64 bits dans Xcode 5.0, un paramètre d'architecture a été fourni : "Architectures standard incluant 64 bits" (ARCHS_STANDARD_INCLUDING_64_BIT).Avec l'introduction de Xcode 5.1, arm64 est inclus dans le paramètre de construction par défaut « Architecture standard ». Cela entraîne la création automatique de projets utilisant le paramètre par défaut pour arm64 avec les architectures 32 bits standard.
  • Lors de la création pour toutes les architectures, supprimez tout paramètre d'architecture explicite et utilisez le paramètre d'architectures standard par défaut. Pour les projets précédemment activés utilisant les « Architectures standard incluant 64 bits », revenez au paramètre « Architectures standard ».
  • Lors de la première ouverture d'un projet existant, Xcode 5.1 peut afficher un avertissement concernant l'utilisation du paramètre d'architecture Xcode 5.0. La sélection de l’avertissement fournit un flux de travail pour réviser le paramètre.
  • Les projets qui ne sont pas en mesure de prendre en charge le 64 bits doivent spécifiquement définir les paramètres de construction de l'architecture pour ne pas inclure le 64 bits.
  • Les projets configurés pour utiliser des « Architectures standard incluant 64 bits » seront convertis en « Architectures standard $(ARCHS_STANDARD).

Compilateur

  • À partir de la version 5.1 (clang-502) du compilateur Apple LLVM et des versions ultérieures, le niveau d'optimisation -O4 n'implique plus l'optimisation du temps de liaison (LTO). Afin de construire avec LTO, utilisez explicitement le -flto option en plus de l’indicateur de niveau d’optimisation. (15633276)

Essais

  • Les gcov L'outil de test de couverture de code a été réimplémenté. La nouvelle version utilise le llvm-cov outil du projet LLVM. Il est fonctionnellement équivalent à l’ancienne version pour toutes les fonctionnalités importantes. L'emplacement de gcov dans Xcode a également déménagé, utilisez xcrun pour l'invoquer. Si vous rencontrez des problèmes, veuillez déposer des rapports de bogues. Pour cette version, vous pouvez toujours utiliser l'ancienne version de gcov de GCC, qui est disponible sous forme gcov-4.2. 11919694 mis à jour

Problèmes connus

Modification des interfaces utilisateur

  • Les vues personnalisées ajoutées à une vue de pile dans Interface Builder peuvent rester bloquées dans un état de « vues mal placées » (incohérentes). Pour contourner ce problème, définissez une taille intrinsèque d'espace réservé pour la vue personnalisée avec des priorités appropriées en matière d'hébergement de contenu et de résistance à la compression. (15778653)

Essais

  • Les tests automatisés exécutés dans iOS Simulator peuvent échouer avec une erreur similaire à celle-ci :Test target [test name] encountered an error (Test process exited with code -1)Tentez une récupération en quittant et en redémarrant le simulateur. (15929053)

XcodeServeur

  • Les fonctionnalités d'intégration continue (bots) de Xcode 5.1 nécessitent OS X Server v3.1 (ou une version d'OS X Server 3.1 bêta) ou une version ultérieure. 16225068 mis à jour
  • S'il existe d'anciennes copies de Xcode sur l'hôte du serveur, Xcode Server affiche parfois tous les simulateurs. Essayez uniquement d'utiliser des simulateurs appropriés pour une utilisation avec Xcode 5.1. (15465692 et 15153869)
  • Xcode Server proposera Tous les appareils ou Tous les simulateurs même s'il n'y en a aucun qui réponde aux critères du projet. Si vous sélectionnez un appareil ou un simulateur inapproprié, vous pouvez obtenir une erreur similaire à :xcodebuild: error: No destinations were specified with the -destination flag which were valid for the specified scheme <scheme_name>.Pour éviter que cela ne se produise, spécifiez uniquement des appareils ou des simulateurs valides pour votre projet. (15465222)
  • Parfois, lorsque vous essayez de créer un nouveau référentiel local sur OS X Server via Xcode, Xcode peut afficher un message d'erreur similaire à :xcode-select: note: no developer tools were found at '/Applications/Xcode.app', requesting install. Choose an option in the dialog to download the command line developer tools.Pour résoudre ce problème, suivez les invites de la boîte de dialogue affichée sur le système hôte OS X Server. (15475078 et 15486464)
  • Parfois, après la mise à niveau vers Xcode 5.1 et OS X Server 3.1, la première fois que vous ajoutez un serveur, vous pouvez voir une erreur similaire à :"<Server> is running a version of OS X Server that cannot be used with this version of Xcode."Quittez et redémarrez Xcode une fois pour effacer ce message. Mise à jour 16217715 

Simulateur iOS

  • Des problèmes de performances peuvent survenir lors de l'exécution d'applications dans le simulateur iOS sur OS X Mavericks avec une version de système d'exploitation simulée d'iOS 6.1 ou antérieure. Une solution de contournement consiste à désactiver la fusion du minuteur lors de l'utilisation du simulateur iOS 6.1 ou antérieur en exécutant la commande suivante dans une fenêtre de terminal. :sudo sysctl -w kern.timer.coalescing_enabled=0 (15501929)
  • iOS Simulator cesse parfois de répondre au clavier matériel. Quitter et relancer le simulateur corrige généralement ce problème. (14642684)

Général

  • Lors de la validation de plusieurs applications en séquence à l'aide de Xcode Organizer, des avertissements erronés concernant les ID de bundle peuvent être émis. Si ces avertissements se produisent, quittez et relancez Xcode entre les validations. 15113664 mis à jour
  • Les exécutables créés par Xcode 5.1 peuvent planter sous OS X v10.5. (15852259) mis à jour

Problèmes résolus

Essais

  • Les XCTAssertEqual macro (anciennement STAssertEquals en utilisant OCUnit) compare correctement les valeurs scalaires de différents types sans conversion, par exemple, int ainsi que NSInteger. Il ne peut plus accepter de types non scalaires, tels que les structures, à des fins de comparaison. (14435933)

Général

  • Les applications OS X qui nécessitent un profil de provisionnement, telles que celles utilisant iCloud, sont désormais construites, sont correctement signées par le code et se lancent. (15841159)

Dépréciations

  • OCUnit et le framework SenTestingKit sont obsolètes et seront supprimés d'une future version de Xcode. Le code source utilisant OCUnit génère des avertissements lors de sa compilation dans Xcode 5.1. Migrez vers XCTest en utilisant la commande de menu "Éditer > Refactor > Convertir en XCTest...". .
  • Le framework ATS est obsolète. Le code source utilisant les API ATS générera des avertissements lors de sa compilation. Pour la version 10.8, il n'y aura aucune perte de fonctionnalité mais il pourrait y avoir des domaines où les performances en souffriront. Remplacez tout le code ATS (y compris ATSUI) avec CoreText. La fonctionnalité ATS sera supprimée dans les futures versions d'OS X. Plus d’informations sur ce changement sont disponibles dansGuide de programmation du texte de base.