Jak naprawić błąd PCH?

Kiedy próbuję zbudować swoją aplikację w Xcode, pojawia się komunikat o błędzie:

Plik PCH zbudowany z innej gałęzi ((clang-425.0.24)) niż compiler ((clang-425.0.27))

Nie zdarzyło się to wcześniej, ale był to pierwszy build po aktualizacji Xcode.

Inne aplikacje działają, ale nie ta konkretna.

Jeśli wyłączę ustawienie "Precompile Prefix Header", działa.

Jak naprawić ten błąd i utrzymać to ustawienie włączone?

Author: spajce, 2013-03-17

20 answers

Jest to często problem z buforowaniem. Zazwyczaj można go rozwiązać, przytrzymując klawisz Option i wybierając Product > Clean Build Folder...

 229
Author: gaige,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-03-21 02:05:59

Wygląda na to, że Product > Clean build Folder... (z naciśniętym klawiszem opcji) działa dla większości ludzi. Zobacz wybraną odpowiedź przez @ gaige.

Jeśli jesteś inny niż większość ludzi (w tym ja) i to nadal sprawia Ci problemy XCode prawdopodobnie zostawił Twoje współdzielone wstępnie skompilowane nagłówki gdzie indziej. Dla mnie były w folderze podobnym do tego:

/var/folders/<some random two characters>/<some random string>/C/com.apple.Xcode.502/SharedPrecompiledHeaders

Właśnie usunąłem cały folder SharedPrecompiledHeaders i to rozwiązało moje problemy. Nie dotykałbym więcej. ale tutaj...

 37
Author: Sedes,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-10-29 18:36:24

Zdmuchnij folder DerivedData dla projektu. Zajrzyj pod preferencje Xcode - > lokalizacje, aby zobaczyć, gdzie go zapisać.

 28
Author: wcochran,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-05-06 19:52:40

Przejdź do Xcode Preferences - >Locations (jak wspomniano w odpowiedzi przez wcochran) i po prostu zmień nazwę folderu DerivedData. Po prostu zmieniłem mój z "DerivedData" na "DerivedData2" i to zmusiło system do zaprzestania odwoływania się do starej lokalizacji. To naprawiło to dla mnie, gdy żadna z innych odpowiedzi nie zadziałała. Patrz zdjęcie:

Tutaj wpisz opis obrazka

 16
Author: Alyoshak,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-12-09 20:48:19

Usunięcie folderów Build i DerivedData z lokalizacji projektu w Finderze zadziałało.

 12
Author: spfursich,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-05-15 18:42:46

Żadna z innych opcji nie zadziałała dla mnie, oto co ją naprawiło:

Usunąłem folder pamięci podręcznej w /Users/(Yourname)/Library/Developer/Xcode/DerivedData/ModuleCache/ (zmiana nazwy też działa).

Spróbuj usunąć folder wymieniony w błędzie, jeśli twój błąd wygląda mniej więcej tak:

PCH was compiled with module cache path '/Users/User/Library/Developer/Xcode/DerivedData/ModuleCache/75YIWZVTEAO8', but the path is currently '/Users/Stan/Library/Developer/Xcode/DerivedData/ModuleCache/75YIWZVTEAO8

 11
Author: Stan Tatarnykov,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-03-07 03:20:22

Po aktualizacji Xcode otrzymywałem to z wieloma projektami. Clean build Folder i Clean nie miały żadnego wpływu- @ sedes answer i @josema.komentarz witaminewa zrobił to za mnie. Ale może to być trudne, jeśli nie użyjesz odrobiny sprytu, więc oto Skrót krok po kroku:

  1. Przejdź do dziennika budowy, który się nie powiódł
  2. Użyj cmd-f "SharedPrecompiledHeaders", aby go znaleźć (będzie w środku ogromnej, strasznej, złożonej linii poleceń)
  3. przeciągnij-zaznacz tekst "SharedPrecompiledHeaders" i wszystkie znaki przed, ale nie po nim, dopóki nie dojdziesz do początku tego bitu ścieżki (nadal w środku dużego bloku tekstu) np. dla mnie: "/var/folders/03/n71d4r551jv40j5nb8r9fjy80000gn/C/com.jabłko.Xcode.501 / SharedPrecompiledHeaders
  4. open Finder
  5. menu: Go - > Go to folder...
  6. skopiuj / wklej zaznaczoną ścieżkę
  7. w" SharedPrecompiledHeaders " usuń wszystkie podfoldery (jest to bezpieczne: są to tylko dane w pamięci podręcznej)

...oraz teraz wszystkie twoje projekty będą "naprawione", ale będą musiały ponownie zbudować się za pierwszym razem z zerowym buforowaniem (więc następna kompilacja będzie wolniejsza niż normalnie).

 6
Author: Adam,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-05-14 15:39:37

W moim przypadku pozbyłem się wszystkich plików pod SharedPrecompiledHeaders w ten sposób i wszystko zaczęło działać dobrze:

sudo find /var/folders/ -type d -name "SharedPrecompiledHeaders" | xargs -n 1 -I dir sudo find dir -name \* -type f -delete
 5
Author: Hamid,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-10-14 18:54:39

Szczególnie jeśli budujesz z linii poleceń lub masz skrypt budowania, czyszczenie Xcode nie wystarczy. Musisz usunąć ten folder.

Wstępnie skompilowana lokalizacja nagłówka znajduje się w

Target -> build settings => "Build locations" -> Precompiled headers cached path

Usuń ten folder za pomocą,

#rm -fr SharedPrecompiledHeaders

Tutaj wpisz opis obrazka

 4
Author: karim,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-04-24 09:02:00

Jeśli nie rozwiąże tego sprzątanie. To problem z Build cache - przytrzymaj klawisz Option i przejdź do Product > Clean Build Folder. To naprawiło mój problem.

 3
Author: Vardhan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-11-11 12:25:28

W moim przypadku Xcode tworzyło folder DerivedData w głównym pakiecie mojego projektu (/Users/Path_to_your_project_source_code/YourProjectName / DerivedData)

Właśnie usunąłem ten folder z mojego pakietu kodu źródłowego i teraz działa.

Aby sprawdzić, przejdź do Xcode Preferences - >Locations i sprawdź, czy DerivedData została wybrana jako "względna". Zobacz zdjęcie poniżej Tutaj wpisz opis obrazka

 3
Author: Dilip Saket,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-08-20 05:32:55

Należy przytrzymać "shift + command + C", a następnie zbudować succeed

 2
Author: Peter Zhu,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-03-20 05:49:29

Czyszczenie i / lub usuwanie danych pochodnych nie działa dla mnie. Co zrobił praca jest dotykanie / zapisywanie .plik pch (Dodaj znak, a następnie usuń go), aby wymusić jego przebudowę. Udało się.

 2
Author: Alfie Hanssen,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-04-01 15:23:02

Jeśli wykonanie czystej kompilacji nie działa dla Ciebie, poszukaj plików PCH w /var/folders/../SharedPrecompiledHeaders i usuń pliki PCH, które działały dla mnie.

 2
Author: Jonathan Lin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-04-19 06:16:06

Możesz spróbować wyczyścić produkt lub folder budowania:

SHIFT + DOWÓDZTWO + K

OPCJA + SHIFT + DOWÓDZTWO + K

 2
Author: Mateus,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-04-21 22:04:56

W katalogu projektu ios przejdź do build i usuń ModuleCache folder. Uruchom react-native run-ios ponownie, powinno działać zgodnie z oczekiwaniami. Podsumowanie - rm -rf ios/build/ModuleCache

 2
Author: Ritik Rishu,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-01-04 22:38:18

Próbowałem wyczyścić projekt i wyczyścić folder budowania, który nie działał.

Po tym, i zamknąć xCode całkowicie, usunięte pochodną folderu danych w jego standardowej lokalizacji: ~ / Library / Developer / Xcode/DerivedData, rozpoczął xCode ponownie i zbudował projekt.

To chyba rozwiązało problem dla mnie.

 1
Author: Ramsy Maarten de Vos,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-12-10 12:22:34

Aktualizacja

To działało idealnie dla mnie:

  • Zamknij projekt lub obszar roboczy.
  • w Finderze: ⇧shift+⌘cmd + G
  • Wklej: ~/Library / Developer/Xcode/DerivedData /
  • Usuń folder ModuleCache i opróżnij kosz.
  • Otwórz swój projekt.
  • Clean: ⇧shift+⌘cmd+K
  • Budowa: ⌘cmd + B

XCode 7.3.1
reference here

 1
Author: Daniel Morandini,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-06-22 14:13:46

Napotkałem ten błąd podczas próby zbudowania projektu z menedżerem pakietów Swift.

Rozwiązaniem jest usunięcie katalogu .build.

 1
Author: Zigii Wong,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-19 03:01:55

Dla mnie to się zawsze zdarza, gdy kopiuję mój projekt w inne miejsce. Zrobiłbym to, żeby wepchnąć to do repo czy coś.

Muszę usunąć folder budowania (rm-rf Build/) w starych i nowych lokalizacjach, aby go uruchomić. Ma to sens, ponieważ folder kompilacji będzie zawierał dane, które nie są istotne dla nowej lokalizacji.

Czyszczenie danych pochodnych lub usuwanie folderów sharedPrecompiledHeaders tak naprawdę tego nie robiło w tym przypadku.

 0
Author: TheJeff,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-08-06 15:01:17