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?
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.
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.
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 )
gem install cocoapods --pre
+
icône en hautCOCOAPODS_PARALLEL_CODE_SIGN
à true
Et profitez de la vitesse de construction accrue!
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.
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.