11 votes

UIColor(named :) renvoie toujours nil sur iOS 11.0-11.2

J'ai une classe qui renvoie une UIColor à partir de ma palette personnalisée. Je l'appelle de manière programmatique mais lorsque je l'ai testée sous iOS 11, elle renvoie toujours un message de type nil résultat... J'ai essayé ceci sur plusieurs appareils et OS versions 11.0, 11.0.1, 11.2 et tous retournent nil . Mais dès que je les exécute sur >iOS 12, il renvoie toujours une couleur correcte.

var color: UIColor? {
    switch self {
    case .darkIndigo: return UIColor(named: "darkIndigo")
    case .lightNavy: return UIColor(named: "lightNavy")
    case .cobalt: return UIColor(named: "cobalt")
    }
}

J'ai récemment changé l'ID de mon paquet pour l'application... et cela me fait penser que cela a quelque chose à voir avec le problème similaire que UIImage a lorsque plusieurs paquets sont utilisés. Surtout quand je reçois le message d'erreur

AVERTISSEMENT : Impossible de résoudre la couleur nommée "darkIndigo" à partir de l'un des paquets suivants :

Mais comment cela est-il censé être résolu ? Dois-je simplement supprimer manuellement tout le catalogue d'actifs et les réinsérer ?

4voto

Antag Points 230

Editar:

C'était un bug dans Xcode et il est corrigé dans la nouvelle GM Seed 2 (11A420a).


J'ai également rencontré ce problème. J'utilisais Xcode 11 beta 6, avec Command Line Tools 11.0.

Je l'ai résolu en passant à Xcode 10.2.1 et Command Line Tools 10.2.1, en nettoyant et en construisant à nouveau.

Xcode Command Line Tools

0voto

J'ai rencontré ce problème également et mon application utilise xibs et storyboards de manière extensive.

J'ai pu contourner le problème en faisant pointer Xcode beta 6 vers le compilateur d'actifs (actool) de la Beta 5 que j'avais encore sur ma machine. Vous devrez faire un lien vers cette version (exemple de commande : ln -s /Applications/Xcode-beta5.app/Contents/Developer/usr/bin/actool actool de votre chemin Beta 6/7).

Je ne sais pas si cela posera un problème pour la soumission de l'application, mais j'ai confirmé que l'application sous iOS 11 a retrouvé son aspect normal (couleurs claires).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X