Peut-être que c'est juste moi qui expérimente une "fonctionnalité" si ennuyeuse:
Après la mise à niveau de Xcode 6.0.1 vers Xcode 6.1, les choses ont changé. Xcode 6.1 indexe en permanence le projet ou compile les fichiers source. Le projet n'est pas énorme. Il contient juste un tas de fichiers Swift et de Cocoapods AWS SDK 2.0 dans l'espace de travail. Je ne pense pas que cela devrait empêcher le tout d'indexer et de compiler en douceur. J'ai essayé avec quelques aws-sdk-ios-samples, juste pour voir comment Xcode 6.1 fonctionne dessus, et ça s'est retrouvé dans la même attente pour toujours.
Quelles solutions j'ai essayées jusqu'à présent:
- Suppression des «données dérivées» dans l'organisateur, et ré-ouvrir et espace de travail. (ne pas réparer)
- "Afficher le contenu du package" sur le fichier .xcodeproj et supprimer .xcworkspace comme dans ( Xcode 4 - performances lentes )
Aucun d'eux n'a fonctionné, malheureusement.
PS peut-être que je devrais essayer de recréer le projet? Paramètres de mon ordinateur: MacBook Pro (Retina, 13 pouces, mi-2014), mémoire 8 Go 1600 MHz DDR3, avec Yosemite. (Je pense que cela suffit pour exécuter ce petit projet.)
Réponses:
J'ai essayé de nombreuses suggestions ci-dessus, notamment le fractionnement de fichiers, l'installation de Xcode 6.2 beta et la rupture des instructions de concaténation de chaînes. Ce qui m'a finalement permis de diviser un tableau de déclarations littérales de dictionnaires que j'utilisais pour les données de test en plusieurs
.append
déclarations.Aussi, pour ce que ça vaut, la 6ème entrée de ce tableau est ce qui cause le problème pour moi; cinq fonctionne très bien.
la source
init()
étape par étape fonctionne parfaitement. Il vaut la peine de mentionner que j'ai dû supprimer le.xcworkspace
fichier aussi.La seule solution de travail pour moi est de supprimer toutes les données dérivées (pas seulement pour le projet en cours, il suffit de nettoyer tout le dossier), puis de redémarrer Xcode.
Ouvrir le fichier / les préférences dans Xcode
Cliquez sur Emplacements à l'extrême droite de la fenêtre contextuelle
Cliquez sur la petite icône de flèche à côté de "/Users/Mac/Library/Developer/Xcode/DerivedData".... cela vous amène à un dossier Xcode qui contient un dossier DerivedData (qui contient toutes les données dérivées de vos projets précédents .)
SUPPRIMER le dossier DerivedData
la source
Utilisez-vous CocoaPods? J'ai rencontré le même problème plus tôt dans la journée. (Utilisation de xCode 6.1.1)
Pour résoudre le problème, j'ai tout supprimé
~/Library/Developer/Xcode/DerivedData
, lePods
dossier de mon répertoire de projet et<project>.xcworkspace
.J'ai ensuite ouvert le terminal, accédé au répertoire de mon projet et exécuté à
pod install
nouveau.la source
Eu le même problème aujourd'hui. Xcode 6.3.2, projet Swift de taille moyenne. À un moment donné, il a commencé l'indexation et il ne l'a jamais terminé. Le code qui a causé cela était un dictionnaire de type [String: [String]], donc un dict clé de chaîne avec des tableaux de chaînes comme valeurs. J'en ai eu deux avec des clés de A à Z et chacune de ces 26 entrées contient un tableau de chaînes avec 5 à 10 chaînes.
La suppression des données dérivées n'a pas aidé. Seul le fait de commenter ces dicts l'a fait recommencer.
Honnêtement, c'est ridicule! Apple doit réparer Xcode! C'est déjà horriblement lent lors de la compilation de projets Swift, mais des bugs comme celui-ci sont un showstopper. Je ne peux pas faire mon travail correctement avec ça!
la source
Pour ceux qui rencontrent toujours ce problème, c'est une solution de contournement que j'ai appréciée et qui vous évite d'avoir à entrer les objets un par un:
la source
Pour moi, j'ai essayé tout ce qui précède sans succès; mais tout ce que j'avais à faire était de supprimer le dossier de données dérivées, puis d'ouvrir un autre projet aléatoire, d'attendre qu'il soit indexé et maintenant mon projet original (défectueux) fonctionne!
Faites du monde du développement une pomme de faveur et rendez vos compilateurs rapides open source - afin que nous ne soyons pas tous contrariés par votre incompétence.
la source
J'utilise la version 7.3 de Xcode (7D175)
Je pense que j'ai peut-être découvert un problème sous-jacent. Là où deux cas où je suis resté coincé dans la phase d'indexation:
J'ai créé une fermeture que j'ai affectée à une variable et omis la signature de type. Je pense que xcode a eu des problèmes avec cette étape d'inférence de type. Si je me souviens bien, l'un des arguments était un CGPoint, qui a un constructeur surchargé. Mon hypothèse est que là où trop de possibilités de ce que ma clôture pourrait accepter comme arguments.
J'ai refactoré une méthode de fabrique de telle sorte qu'au lieu de renvoyer des instances d'un type, elle puisse renvoyer des instances de plusieurs types avec une classe de base commune. Il semble que partout où j'ai utilisé la méthode de fabrique, j'ai dû convertir l'objet résultant en un type spécifique (soit avec as? Ou en l'assignant à une variable qui accepte un type spécifique). Là encore, l'étape d'inférence de type semble être interrompue.
Il semble que la même chose se passe avec les déclarations du dictionnaire mentionnées par des personnes antérieures. J'ai déposé un rapport de bogue avec apple.
la source
J'ai rencontré ce même problème après la mise à niveau vers la version 6.1. Xcode serait bloqué lors de la compilation ou de l'indexation sans générer de message d'erreur spécifique.
Le problème a finalement été résolu en divisant certaines des expressions les plus longues des fichiers Swift en plusieurs expressions plus courtes. Une partie de mon programme combine de nombreuses variables de chaîne différentes pour former une chaîne plus longue. Les tentatives de combinaison dans une seule expression et l'utilisation de l'opérateur d'affectation d'addition ont échoué. J'ai pu le faire fonctionner en faisant quelque chose de similaire à ce qui suit (simplifié):
J'ai eu cette idée en recevant l'erreur suivante à plusieurs reprises dans la version précédente de Xcode "L'expression était trop complexe pour être résolue dans un délai raisonnable; envisagez de diviser l'expression en sous-expressions distinctes."
J'espère que cela t'aides
la source
J'ai lutté avec le même problème. J'ai essayé les deux solutions mentionnées (suppression des données dérivées et suppression de .xcworkspace) sans succès. J'ai également essayé de commenter lentement la plupart du code petit à petit et de supprimer les fichiers jusqu'à ce qu'il ne reste presque plus rien et que l'indexation soit toujours bloquée.
J'ai trouvé une solution qui a fonctionné pour moi, j'ai ouvert le projet avec une ancienne version Xcode 6.1 (6A1030) qui n'avait aucun problème d'indexation, puis je suis revenue à la dernière version Xcode 6.1 (6A1052d) que j'utilisais auparavant et l'indexation était fixe et a continué à bien fonctionner.
Ma conclusion est qu'il s'agit d'un bogue avec Xcode Version 6.1 (6A1052d) qui, je l'espère, s'améliorera avec les versions futures.
Le problème revient de temps en temps, le même correctif fonctionne à chaque fois. Je suppose qu'une autre solution serait de s'en tenir à l'ancienne version de Xcode 6.1 (6A1030), mais cela ne fonctionnera pas avec les appareils exécutant iOS 8.1 et il n'aura pas les dernières corrections de bogues.
la source
J'ai essayé cela avec Xcode 8.3.3. Voici mes résultats:
Vous pouvez écrire un code Swift parfaitement fin qui entraînera le blocage de l'indexation.
Une fois que l'indexation se bloque, elle se bloque. Changer le code Swift en quelque chose qui ne ferait pas bloquer l'indexation n'aide pas, il se bloque toujours.
Fermer le projet et rouvrir n'aide pas dans cette situation.
Quitter Xcode et le redémarrer aide. L'indexation ne se bloquera plus (c'est-à-dire si vous avez changé le code en quelque chose qui ne le bloque pas).
Le redémarrage de votre Mac aide également, bien que ce ne soit pas nécessaire.
La suspension est causée par un code Swift parfaitement fin. Un exemple auquel j'avais ressemblé
L'indexation se bloquerait. J'ai commenté la plupart des "??" lignes et c'était bien (après avoir quitté et relancé Xcode). Non commenté une ligne après l'autre. Avec un certain nombre de lignes, c'était bien, puis décommenter la ligne suivante la ferait accrocher.
La seule chose qui aide apparemment est de changer votre code.
la source
Sur mon Xcode, la solution était de fermer toutes les fenêtres redondantes. Pour une raison quelconque, de nombreuses fenêtres ouvertes rendent Xcode très lent.
la source
Enfin, j'ai "résolu" le problème, bien que ce ne soit qu'une solution de contournement.
J'ai créé un autre projet et y ai ajouté des fichiers un par un. Ensuite, j'ai repéré un fichier viewcontroller.swift "très long". Ensuite, j'ai cassé ses codes en modules et transformé ces codes utilisés à plusieurs reprises en fonctions dans un autre fichier swift. Et aussi, j'ai pris la suggestion en ligne que les expressions longues devraient être divisées en expressions plus courtes. Ensuite, l'indexation fonctionne et la compilation fonctionne.
Donc pour l'instant, je l'ai "résolu".
MAIS, je ne pense pas que ce soit juste. Xcode IDE devrait être plus que capable de gérer mon fichier swift "très long", seulement 1500 lignes. Je pense que c'est définitivement un bogue (existant depuis longtemps), bien que Xcode 6.1 soit déjà une mise à niveau de Xcode 6.0.1.
la source
Pour moi, j'ai supprimé l'application Xcode, je l'ai téléchargée à nouveau et je l'ai installée. Cela a résolu le problème, du moins maintenant.
la source
Indexation Xcode généralement pour votre code pour les suggestions et la saisie semi-automatique, entre autres, comme vous aider dans les story-boards et vice versa. Mais pour accélérer votre projet xcode, vous pouvez l'activer / le désactiver via le terminal
Désactiver les
valeurs par défaut d' indexation write com.apple.dt.XCode IDEIndexDisable 1 Activer les valeurs par défaut d'indexation write com.apple.dt.XCode IDEIndexDisable 0
Mais meilleure approche pour utiliser un mac rapide avec une bonne RAM.
la source
Si cela ne vous dérange pas de revenir à la version 6.0.1 jusqu'à ce qu'ils le comprennent, c'est ce qui a fonctionné pour moi. J'avais le même problème avec 6.1 et 6.1.1. Maintenant je vais bien. J'essaierai 6.2 quand il sortira.
Vous pouvez trouver les versions précédentes du logiciel Apple sur leur site de développement officiel, ici: https://developer.apple.com/downloads/index.action
Si vous faites cela, assurez-vous de supprimer d'abord votre copie actuelle de Xcode.
la source
J'utilise Xcode 6.1.1 avec des fichiers Swift sur le même MacBook Pro.
Alors que je continuais d'ajouter des lignes dans un tableau de chaînes 3D, Xcode est soudainement devenu inutilisable et maintenant je ne peux rien faire.
J'essaierai de revenir à la version 6.1 et j'espère que le problème disparaîtra.
la source
Je vois cela dans Xcode 6.3.2. J'avais vraiment espéré qu'un an après la sortie, ils allaient faire fonctionner le compilateur, mais hélas.
Si aucune des solutions ci-dessus ne fonctionne, essayez de vérifier votre code pour les erreurs de syntaxe. En cours de refactoring, j'ai extrait une fermeture mais j'ai oublié de qualifier les paramètres:
Si j'ai appris quelque chose en travaillant dans Swift, c'est de travailler de manière incrémentielle, pour éviter d'avoir à revenir trop en arrière pour trouver le code incriminé.
la source
la source
J'utilise Xcode 8.2 et je me suis également retrouvé dans ce problème. Cela a commencé après avoir défini une variable de tuple complexe - un tableau de tuple avec un sous-tableau de tuple. Les choses deviennent vraiment lentes lorsque le sous-tableau de tuple a une propriété calculée par programme.
Comme certaines autres réponses l'ont noté, l'indexation prend une éternité, et je crois qu'il essaie de déduire les types de la variable.
J'ai d'abord résolu le problème en définissant clairement la variable avec les types inclus. Lors de la mise à jour de la propriété, je la calcule d'abord puis je l'assigne au tuple, au lieu de calculer en définissant la variable.
Voici un exemple de code.
En bout de ligne, ne laissez pas Xcode déduire des structures complexes.
la source
J'avais le même problème. Mon Xcode est 8.2.1. Mais dans mon cas, je voulais créer un tableau de dictionnaire avec 33 paires clé-valeur. Je faisais de la manière suivante qui était bloquée dans l'indexation:
La suite a fonctionné pour moi:
la source
J'ai également eu ce problème et je l'ai résolu en supprimant / modifiant les expressions avec l'opérateur "+".
J'ai changé ceci:
Pour ça:
Cela a résolu le problème.
Ma machine est un MBP au maximum fin 2013
la source
Vous souhaiterez peut-être mettre à jour vers Xcode 6.1.1
Il a été officiellement publié et résolu pour nous le problème d'indexation. Dans la description de la mise à jour, il est indiqué qu'ils ont appliqué des correctifs de stabilité, il est donc très probable qu'elle se comporte de manière plus stable.
la source
La version bêta de Xcode 6.2 a résolu le problème pour moi. Pas à la vitesse de l'éclair, mais au moins, il n'est pas toujours indexé. La version bêta ne s'installe pas au-dessus de votre installation Xcode régulière, donc si vous n'aimez pas la version bêta, vous pouvez simplement la supprimer.
Divers téléchargements Xcode, y compris la version bêta>
la source
J'avais des expressions comme:
aussi
Le but est donc de réécrire votre fichier pour qu'il ne contienne que des expressions de niveau maternelle et le problème d'indexation disparaîtra.
la source
Xcode 11.5 (11E608c) et toujours les mêmes problèmes, 6 ans après la question initiale. J'aimerais pouvoir "marquer" la pomme dans cette question afin qu'ils puissent voir ce désordre. C'est un gros projet (> 1000 fichiers) et j'étais sous l'horloge, donc quand j'ai remarqué l'index de gel, j'étais avec plus de 100 fichiers modifiés et je ne peux pas revenir en arrière.
J'ai tout essayé:
Le problème était une création de tableau:
Ce qui m'a aidé à découvrir le mauvais fichier Swift, c'est lorsque xcode a gelé l'indexation, j'ai suivi les étapes suivantes
SOURCEKIT_LOGGING=3 /Applications/Xcode.app/Contents/MacOS/Xcode &> ~/Documents/xcode.log
qui démarrera Xcode avec le niveau 3 détaillé et commencera à se connecter dans le fichier journal.Ce n'est pas une solution complète, mais il est utile de creuser et de savoir où chercher.
la source