30 votes

Compilation lente d'applications avec la nouvelle mise à jour de Sierra

Lorsque j'ai mis à jour mon mac vers macOS Sierra 10.12.1, le temps d'exécution de l'application sur un périphérique réel a considérablement augmenté. "L'exécution de scripts personnalisés 'Embed Pods Frameworks'" et "Copie de bibliothèques standard Swift" prend plus de 30 minutes à créer.

Est-ce que quelqu'un fait face au même problème?

31voto

Troy Points 2492

Vérifiez votre trousseau. Après avoir mis à jour la version 10.12.1 de Sierra, j'avais plus de 500 copies de l'un de mes certificats et quelques autres ont été dupliquées plusieurs centaines de fois.

J'ai enlevé tous les doublons et n'en ai gardé qu'un, et le temps de signature de mon code est passé de 30 secondes par framework à environ 1 seconde par.

Je ne sais pas comment ni pourquoi les certificats ont été dupliqués, mais le moment choisi pour émettre cette question laisse penser que cela était dû à la mise à jour de Sierra.

23voto

Johnny Points 726

2017-03-23 mise à Jour

Vous pouvez sauter l'installation de la version bêta de CocoaPods, parce que l' COCOAPODS_PARALLEL_CODE_SIGN drapeau est également évaluée dans la version actuelle construire.

Réponse Originale À Cette Question

Trouvé une autre solution, pas la meilleure, mais au moins, c'est l'accélération. Il fonctionne (pour moi)

Cocoapods publié une nouvelle version bêta il ya quelques jours.

Qui permet en parallèle de signature de code lors de l'exécution de l'intégrer cadre de script (https://github.com/CocoaPods/CocoaPods/pull/6088#issuecomment-257441733)

  1. Installer la dernière version bêta

gem install cocoapods --pre

  1. Accédez à votre Xcode cible de construire paramètres et cliquez sur l' + icône en haut

enter image description here

  1. Ensemble COCOAPODS_PARALLEL_CODE_SIGN de true

enter image description here

Et de profiter de l'augmentation de la construction de vitesse!

16voto

Max Potapov Points 864

Si le trousseau semble bon, mais que des problèmes persistent - vérifiez les préférences et supprimez tous les doublons dans ce fichier: ~/Library/Preferences/com.apple.security.plist

Pour une configuration typique, ce fichier doit contenir un seul enregistrement avec une référence de trousseau de connexion.

0voto

Sven Driemecker Points 96

Toutes les approches mentionnées ci-dessus ne fonctionne pas pour moi. Ce qui a beaucoup aidé a resetting the System.keychain, qui avait 25 MO taille. Cette accélérer les temps de construire jusqu'à 40% sur notre système CI.

Analyser

du -h /Library/Keychains/System.keychain
good: 60K
bad: 25MB

Réinitialiser

sudo systemkeychain -vfcC [password]

Attention: Si vous avez des clés importantes/certs/mots de passe stockés dans votre Système.porte-clés, vous pouvez les exporter avant d'effectuer la réinitialisation, puis de les réimporter sur demande. Ce n'était pas nécessaire pour moi. Mon nouveau Système.trousseau n'a pas de contenu et de projets de renforcement des œuvres tout à fait bien.

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