Indexation Swift Xcode gelée ou lente

101

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:

  1. Suppression des «données dérivées» dans l'organisateur, et ré-ouvrir et espace de travail. (ne pas réparer)
  2. "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.)

Leonard
la source
Expériences similaires? Oui: Xcode beta 3 Swift indexing forever
zisoft
2
Je ne serai pas d'une grande aide mais ce que je fais, c'est ... Je laisse juste xcode 6.x prendre son temps. Si je le combat, cela me fout le bout du nez alors j'attends juste que xcode 6 démarre. Je l'ai laissé courir, c'est une indexation stupide. Je lance ensuite le simulateur iOS séparément et j'attends que ce tremplin stupide apparaisse. Enfin, lorsque je lance un projet, je néglige le fait que plusieurs fois l'indexation dit "Paused" et je prie <# godObject #>, bois du café et essaie d'entrer en mode zen. Mais * soupir *, c'est dur: / et j'avais vraiment aimé xcode 5.1.1: |
staticVoidMan
Cette réponse a fonctionné pour moi: stackoverflow.com/a/33395844/242933
ma11hew28

Réponses:

72

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 .appenddéclarations.

// This causes indexing/building to hang...
var test = [ [ "a": false, "b": "c" ],
             [ "a": false, "b": "c" ],
             [ "a": false, "b": "c" ],
             [ "a": false, "b": "c" ],
             [ "a": false, "b": "c" ],
             [ "a": false, "b": "c" ] ]

// This works fine.
var test = [ [ "a": false, "b": "c" ] ]
test.append([ "a": false, "b": "c" ])
test.append([ "a": false, "b": "c" ])
test.append([ "a": false, "b": "c" ])
test.append([ "a": false, "b": "c" ])
test.append([ "a": false, "b": "c" ])

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.

Zen
la source
La même solution a fonctionné pour moi avec un dictionnaire. L'initialiser directement provoquait une indexation permanente. L'initialiser init()étape par étape fonctionne parfaitement. Il vaut la peine de mentionner que j'ai dû supprimer le .xcworkspacefichier aussi.
jboi
Corrigé pour moi sans dictionnaires impliqués. Juste un tableau de tuples qui était bien avec 8 éléments dans la déclaration. J'ai dû revenir aux annexes avec 11 éléments. Je n'ai pas pris la peine de trouver le point de rupture exact mais construit 10 fois plus vite. Xcode version 6.1.1 (6A2008a) sur Mavericks.
Josh
J'ai également touché le problème avec exactement 6 éléments. 5 était bien.
Justin Lau
Est-ce un problème XCode ou un problème de compilateur?
Sljux
4
J'ai vécu cela dans Xcode 7.3 avec un tableau littéral de 229 éléments. Au lieu de le diviser, j'ai ajouté une déclaration de type au lieu de laisser Swift inférer le type. Après avoir fait ça, ça a marché.
Brigham
34

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.

  1. Ouvrir le fichier / les préférences dans Xcode

  2. Cliquez sur Emplacements à l'extrême droite de la fenêtre contextuelle

  3. 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 .)

  4. SUPPRIMER le dossier DerivedData

Remy Cilia
la source
1
@TravisM. Avez-vous suivi les étapes? Si vous allez dans Fenêtre, Organisateur, Projets, Supprimer les données dérivées, cela ne fonctionnera pas. Vous devez passer par les préférences.
ericgu
@ericgu Ouais, mais ça n'a pas fonctionné. J'ai résolu mon problème, cependant, il était lié à l'initialisation d'un dictionnaire avec des données codées en dur en une seule fois. Lorsque j'ai déplacé le code pour ajouter les données codées en dur une ligne à la fois, les problèmes de gel / lent ont disparu immédiatement.
Travis M.
Dossier à ~ / Library / Developer / Xcode / DerivedData / sur ma machine. Vous pouvez également le trouver en allant dans Fenêtre> Projets dans Xcode.
Suragch
Merci. CA aide. Le problème "d'indexation permanente" commence juste après avoir mis à jour ma version de cocoaPod et exécuté une installation de pod.
WKL
11

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, le Podsdossier 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 installnouveau.

Michael Schinis
la source
1
Oui. Pour l'instant, le Xcode se comporte bien. Mais cela donne encore de temps en temps une erreur de plantage de sourcekit. Ma solution est de supprimer le dossier de données dérivé.
leonard
Heureux de voir que cela a fonctionné pour quelqu'un d'autre aussi :). On dirait que xCode essaie d'indexer les bibliothèques CocoaPod et se coince quelque part.
Michael Schinis
1
La suppression du dossier Pods et du fichier <project> .xcworkspace, puis la réexécution de l'installation du pod a fonctionné.
KML
9

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!

BadmintonChat
la source
6

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:

// instead of this, which freezes indexing
let keys = [keyQ, keyW, keyE, keyR, keyT, keyY, ... keyM]    

// and instead of this, which is ugly & lengthy
var keys = [KeyboardKey]()
keys.append(keyQ)
keys.append(keyW)
...
keys.append(keyM)

// use this:
var keys = [KeyboardKey]()
keys.appendContentsOf([keyQ, keyW, keyE, keyR, keyT, keyY, ... keyM])
Andrew Robinson
la source
1
Wow ... j'ai eu exactement le même problème. Merci! Je l'ai signalé comme un bug à Apple. Faire ce que tu as dit n'a pas fonctionné pour moi. J'ai dû diviser mon long tableau en tableaux plus petits, chacun avec cinq éléments ou moins.
ma11hew28
5

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.

Gmeister4
la source
3

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.

DudeOnRock
la source
2

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é):

var a = "Hello"
var b = " "
var c = "World"
var d = "!"
var partA = a + b
var partB = c + d
var result = partA + partB

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

Adam137
la source
Oui merci, j'ai effectivement pris ce genre de suggestions. Et j'ai également réduit la longueur de l'un de mes fichiers de 1500 lignes à environ 1200. Et bien sûr, j'ai créé un nouveau projet et y ai importé tous les fichiers un par un. Puis finalement il reprend. Je ne sais pas vraiment lequel est le sauveur ultime.
leonard
Séparer une longue expression dans Swift a fait l'affaire pour moi.
MandisaW
2

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.

Jorge Costa
la source
J'ai essayé la plupart des suggestions pour résoudre le problème de l'indexation perpétuelle et c'est la seule qui a fonctionné pour moi. Je n'avais pas de Xcode 6 plus ancien mais j'avais Xcode 5. Il ne se construisait pas, mais il a indexé et après cela Xcode 6.1 indexé avec succès.
SarahR
J'oublie de mentionner que ce n'était qu'une solution temporaire et j'ai dû le refaire quelques heures plus tard.
SarahR
2

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é

if let date = function1()
?? function2()
?? function3()
?? function4()
?? function5()
?? function6()
?? function7()
?? function8()
?? function9()
?? function10() {
    return date
}

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.

gnasher729
la source
2

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.

Arik Halperin
la source
pour moi, c'était aussi la solution, surprenante car elle fonctionnait bien pendant longtemps auparavant avec le même nombre de fenêtres ouvertes
Christian
1

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.

Leonard
la source
1

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.

Tzegenos
la source
1

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.

Ballu
la source
2
La désactivation de l'indexation paralyse gravement Xcode et ne doit pas être effectuée. Dire à quelqu'un d'acheter un nouveau Mac ne devrait jamais être la solution, un ordinateur portable de 2 ans devrait être capable de gérer le dernier Xcode.
Knight0fDragon
macOS 10.13 Beta 7 a introduit quelque chose qui plante à la fois Xcode 9 Beta 6 et Xcode 8 dès que l'indexeur s'exécute. Le désactiver était le seul moyen de continuer à utiliser Xcode, même avec une version paralysée.
Pegolon
0

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.

JeremyGranger
la source
0

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.

gardner888
la source
J'ai le même problème. Après avoir ajouté un tableau de dictionnaires xcode est devenu inutilisable ... Avez-vous trouvé une solution?
Almazini
Je suis retourné à Xcode 6.1 qui fonctionnait mieux. Il n'est pas resté coincé dans l'indexation pour toujours, mais parfois je tapais et prenais le ballon de plage pendant 4 secondes. Dans l'ensemble, j'ai pu coder suffisamment pour faire avancer les choses. Je n'ai changé aucun de mon code. Bien que sur Xcode 6.1, la batterie du macbook pro ne semble pas trop affectée, mais sur mon macbook air mi 2013 exécutant 6.1.1, la durée de vie de la batterie est absolument abattue. Il va de ~ 12 heures à 2 heures une fois que je démarre Xcode.
gardner888
0

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:

    let hangsInsteadOfError = { l, r in
        return l.nameFirst < r.nameFirst
        || l.nameFirst == r.nameFirst && l.nameLast < r.nameLast }

    let fixingErrorAvoidsHang = { (l:User, r:User) -> Bool in
        return l.nameFirst < r.nameFirst
            || l.nameFirst == r.nameFirst && l.nameLast < r.nameLast }

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é.

Chris Conover
la source
0
  1. Votre statut d'indexation est-il un "cercle indicateur" ou une "barre de progression"?
  2. S'il s'agit d'un "cercle indicateur", cela signifie qu'il est déjà coincé au début.
  3. Ouvrez et vérifiez avec vos autres projets, s'ils sont tous identiques, cela signifie que c'est un problème système.
  4. Redémarrez simplement votre ordinateur et tout ira bien.
Weidian Huang
la source
0

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.

var sectionTuples: [(section: String, rows: [(name: String, subtitle: String)])] = []
let subtitle1: String = "" // something calculated dynamically
let subtitle2: String = "" // something calculated dynamically
sectionTuples = [(
section: "Section 1", rows: [
(name: "name1", subtitle: subtitle1),
(name: "name2", subtitle: subtitle2)
])]

En bout de ligne, ne laissez pas Xcode déduire des structures complexes.

Q Liu
la source
0

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:

var parameter = [String : AnyObject]()
var finalArray = [parameter]

for item in listArray
{
    parameter = ["A": item.a as AnyObject, "B": item.b as AnyObject, "C": item.c as AnyObject, ... , "Z": item.z as AnyObject]

    finalArray.append(parameter)
}

La suite a fonctionné pour moi:

var parameter = [String: AnyObject]()
var finalArray = [parameter]

for item in listArray
{
    parameter["A"] = listArray.a as AnyObject
    parameter["B"] = listArray.b as AnyObject
    parameter["C"] = listArray.c as AnyObject
    parameter["D"] = listArray.d as AnyObject 
    .
    .
    .
    parameter["Z"] = listArray.z as AnyObject 
    finalArray.append(parameter)
}
Trup
la source
0

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:

var mainArray = arrayOne + arrayTwo + arrayThree + arrayFour + arrayFive

Pour ça:

var mainArray = arrayOne
mainArray += arrayTwo
mainArray += arrayThree
mainArray += arrayFour
mainArray += arrayFive

Cela a résolu le problème.

Ma machine est un MBP au maximum fin 2013

Casey Laris
la source
Exactement mon expérience. Il se bloque avec un code Swift parfaitement fin, et la seule façon de le réparer est de changer le code.
gnasher729
0

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.

Ange Naydenov
la source
7
Intéressant. Pour moi, 6.1.1 a introduit le problème d'indexation sans fin, avec un projet qui s'ouvrait correctement en 6.1. sign
Pascal Bourque
Je vois. Dans notre cas, nous avons également simplifié les expressions et réduit la taille des classes à l'aide de classes d'extension. Ce qui est assez ridicule que nous ayons dû le faire, mais c'est ce que nous devions faire. Et cela semble faire l'affaire pour le moment. Aussi en commentant les lignes, nous avons réduit la partie du code réellement "trop ​​complexe" selon ce que pense le compilateur Swift et réduit la complexité autant que possible. J'espère qu'ils vont résoudre ce problème bientôt car c'est assez ennuyeux.
Angel Naydenov
0

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>

Warren Whipple
la source
0

J'avais des expressions comme:

let x = (value as? Int) ?? someDefault

aussi

guard let x = (dateFormatter().string(from: Date()) + msg + "\n").addingPercentEncoding(...) else { ... }

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.

soger
la source
0

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é:

  1. effacer les données dérivées et construire
  2. Redémarrez xcode, redémarrez mac
  3. supprimer et ajouter une source
  4. Recherche de dictionnaires littéraux, etc.

Le problème était une création de tableau:

private var overlayColors: [UIColor] = [UIColor(hex: "#b71c1c"), UIColor(hex: "#4a148c"),
                                        UIColor(hex: "#880e4f"), UIColor(hex: "#1de9b6"),
                                        UIColor(hex: "#f50057"), UIColor(hex: "#311b92"),
                                        UIColor(hex: "#f44336"), UIColor(hex: "#651fff"),
                                        UIColor(hex: "#d500f9"), UIColor(hex: "#3d5afe"),
                                        UIColor(hex: "#bf360c"), UIColor(hex: "#0d47a1"),
                                        UIColor(hex: "#006064"), UIColor(hex: "#2979ff"),
                                        UIColor(hex: "#ff6f00"), UIColor(hex: "#1a237e"),
                                        UIColor(hex: "#795548"), UIColor(hex: "#004d40"),
                                        UIColor(hex: "#00e676"), UIColor(hex: "#01579b"),
                                        UIColor(hex: "#33691e"), UIColor(hex: "#827717"),
                                        UIColor(hex: "#76ff03"), UIColor(hex: "#ffc400"),
                                        UIColor(hex: "#e65100"), UIColor(hex: "#00b0ff"),
                                        UIColor(hex: "#ff3d00"), UIColor(hex: "#616161"),
                                        UIColor(hex: "#263238"), UIColor(hex: "#ff1744")]

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

  1. ouvrir le moniteur d'activité -> processus "rapide" -> afficher les informations de processus -> ouvrir les fichiers et les ports. Cela vous donnera une liste des fichiers que ce processus exécute en explorant votre liste de fichiers défectueux possibles
  2. Un autre outil pratique est ce script 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.
  3. Recherchez dans le fichier journal les dernières entrées de vos fichiers swift ex: "mon_projet / Source / App /"

Ce n'est pas une solution complète, mais il est utile de creuser et de savoir où chercher.

ouvrir le moniteur d'activité -> processus "rapide" -> afficher les informations de processus -> ouvrir les fichiers et les ports.

Piège de feu
la source