2016-10-26 19 views
29

Kiedy zaktualizowałem swój system Mac na MacOS Sierra 10.12.1 czas uruchamiania aplikacji na prawdziwym urządzeniu znacznie wzrósł. "Uruchomienie niestandardowego skryptu" Osadzanie szkieletów ramek "i" Kopiowanie bibliotek standardowych Swift "zajmuje więcej niż 30 minut.Powolna kompilacja aplikacji z nową aktualizacją Sierra

Czy ktoś ma ten sam problem?

+0

Mam ten sam problem i nie jestem w stanie znaleźć rozwiązania. Poinformuję cię, jeśli odkryję, jaki jest problem. – kikettas

+1

Ktoś tutaj zasugerował utworzenie nowego użytkownika: http://stackoverflow.com/q/39934254/2491738. Sam tego nie wypróbowałem .. – ken

+0

@ken Tak, właśnie to przetestowałem i jest trochę szybciej. Będę używał tego tymczasowego konta użytkownika, a Apple zdecyduje się go naprawić ... Dzięki! – kikettas

Odpowiedz

31

Sprawdź swój pęku kluczy. Po aktualizacji do wersji Sierra do 10.12.1 miałem ponad 500 kopii jednego z moich certyfikatów, a kilka innych zostało zduplikowanych kilkaset razy.

Usunąłem wszystkie duplikaty i zachowałem tylko jeden z nich, a mój czas podpisywania kodu spadł z 30 sekund na strukturę do około 1 sekundy na sekundę.

Nie wiem, jak i dlaczego certyfikaty zostały zduplikowane, ale termin wydania sugeruje, że było to spowodowane aktualizacją Sierra.

+1

To było to! Dziękuję @ Troy – psu

+3

Usuwanie duplikatów breloczków nie działa dla mnie .. Nadal trwa 1 ~ 2 minuty, aby kodować szkielety znaków dla cocoapodów podczas budowania na prawdziwe urządzenie. – Johnny

+0

@Johnny Czy występują 1-2 minuty na strukturę lub 1-2 minuty dla wszystkich frameworków? Jeśli to drugie, ile masz struktur? – Troy

23

2017-03-23 ​​Aktualizacja

Można pominąć instalowania wersji beta CocoaPods, ponieważ flaga COCOAPODS_PARALLEL_CODE_SIGN jest również oceniana w obecnej wersji wydania.

Original Odpowiedź

Znaleziono alternatywne rozwiązanie, nie najlepsze, ale przynajmniej to przyspieszenie. To działa (dla mnie)

Cocoapods wydała nową wersję beta kilka dni temu.

który pozwala kodu równoległego podpisanie podczas uruchamiania skryptu ramową embed (https://github.com/CocoaPods/CocoaPods/pull/6088#issuecomment-257441733)

  1. zainstalować najnowszą wersję beta

gem install cocoapods --pre

  1. Przejdź do ustawień kompilacji docelowego Xcode i kliknij ikonę + u góry

enter image description here

  1. Ustaw COCOAPODS_PARALLEL_CODE_SIGN do true

enter image description here

i cieszyć się zwiększoną prędkość budynku!

+0

Nice. To również bardzo pomaga. Wszystkie 8 rdzeni pracuje teraz nad podpisaniem kodu. Kolejny krok - przyspieszenie szybkich czasów kompilacji! – Troy

+0

Dziękujemy! Ten problem doprowadzał mnie do szaleństwa przez półtora tygodnia. –

+0

jak porównać czas? Nie widzę żadnego – aelam

13

Jeśli brelok wygląda dobrze, ale problem istnieje - sprawdź preferencji i usunąć wszystkie duplikaty w tym pliku: ~/Library/Preferences/com.apple.security.plist

Dla typowej konfiguracji ten plik musi zawierać tylko jeden rekord z odniesieniem logowanie pęku kluczy.

+0

Ta lista była problemem dla mnie. Usunięcie około pięciu duplikatów kluczy dostępu do loginu spowodowało skrócenie czasu archiwizacji z kilku godzin do kilku minut. – Cfr

+0

To samo dla mnie, świetne znalezisko! – Tokuriku

+7

Nie mogę znaleźć tego pliku w dniu 10.12.3 –

0

Wszystkie wyżej wymienione podejścia nie sprawdziły się u mnie. Bardzo pomogło to resetting the System.keychain, które miało rozmiar 25 MB. Przyspieszyło to czas budowy nawet do 40% w naszym systemie CI.

Analizować

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

Wyczyść

sudo systemkeychain -vfcC [password] 

Uwaga: Jeśli masz ważnych kluczy/certyfikatów/haseł przechowywanych w System.keychain, można je wyeksportować przed wykonaniem zresetować, a następnie ponownie zaimportować je na żądanie. To nie było konieczne dla mnie. Mój nowy system.keychain nie ma treści, a projekty budowlane działają absolutnie dobrze.

Powiązane problemy