web-dev-qa-db-fra.com

Compilation lente des 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 appareil réel a considérablement augmenté. "Exécuter le script personnalisé" Intégrer les cadres de pods "" et "Copier Swift bibliothèques standard" prennent plus de 30 minutes à créer.

Quelqu'un fait-il face au même problème?

30
psu

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

J'ai supprimé tous les doublons et en ai gardé un seul, et mon temps de signature de 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 du problème suggère qu'il était dû à la mise à jour de Sierra.

31
Troy

2017-03-23 ​​mise à jour

Vous pouvez ignorer l'installation de la version bêta de CocoaPods, car le COCOAPODS_PARALLEL_CODE_SIGN L'indicateur est également évalué dans la version actuelle.

Réponse originale

J'ai trouvé une solution alternative, pas la meilleure, mais au moins elle s'accélère. Ça marche pour moi)

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

Ce qui permet la signature de code parallèle lors de l'exécution du script de framework intégré ( https://github.com/CocoaPods/CocoaPods/pull/6088#issuecomment-2574417 )

  1. Installez la dernière version bêta

gem install cocoapods --pre

  1. Accédez à vos paramètres de construction cible Xcode et cliquez sur le + icône en haut

enter image description here

  1. Ensemble COCOAPODS_PARALLEL_CODE_SIGN à true

enter image description here

Et profitez de la vitesse de construction accrue!

23
Johnny

Si le trousseau semble bon, mais que des problèmes existent - 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.

15
Max Potapov

Toutes les approches mentionnées ci-dessus n'ont pas fonctionné pour moi. Ce qui a beaucoup aidé était resetting the System.keychain, qui avait une taille de 25 Mo. Cela a accéléré les temps de construction 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/certificats/mots de passe importants stockés dans votre System.keychain, vous pouvez les exporter avant d'effectuer la réinitialisation, puis les réimporter à la demande. Ce n'était pas nécessaire pour moi. Mon nouveau System.keychain n'a pas de contenu et les projets de construction fonctionnent parfaitement.

0
Sven Driemecker