Właśnie zaktualizowałem Xcode do wersji 4.6.2 (4H10003) i próbowałem uruchomić wcześniej działający projekt aplikacji w symulatorze i otrzymałem następujący błąd, a kompilacja nie powiodła się.
Plik PCH zbudowany z innej gałęzi ((clang-425.0.27)) niż kompilator ((clang-425.0.28))
Co poszło nie tak i jak można to naprawić?
Odpowiedzi:
Wyczyść projekt; Hold Option, aby wyczyścić cały folder kompilacji i elementy pośrednie. Być może będziesz musiał zamknąć Xcode i ręcznie wyrzucić całą zawartość folderu DerivedData w Finderze, jak opiszę tutaj: Jak opróżnić pamięć podręczną i wyczyścić wszystkie cele Xcode 4
źródło
Przejdź do swojego projektu
Build Settings
, znajdź ustawienie o nazwiePrecompiled Headers Cache Path
, a następnie usuń ten folderźródło
Wykonaj czyszczenie, używając
command+shift+k
i ponownie uruchom istniejący projekt.źródło
Z XCode 4.6.2 Release Notes
Wykonywanie produktu> Wyczyść prace
źródło
Wypróbowałem wszystkie powyższe i działa dobrze z interfejsu użytkownika Xcode, ale nadal kończyło się niepowodzeniem, gdy uruchomiłem xcodebuild z wiersza poleceń .
Było to spowodowane zależnościami od innych bibliotek i ich nagłówkami przed kompilacją. Podczas uruchamiania z wiersza poleceń wygląda jak xcodebuild przechowuje / czyta wstępnie skompilowane nagłówki stąd:
/var/folders/v0/ztxy9kls7sv05dpmvjgg_xwr0000gn/C/com.apple.Xcode.501/SharedPrecompiledHeaders
Po wyczyszczeniu tego folderu program xcodebuild powiódł się.
źródło
sudo find /private/var/folders -name SharedPrecompiledHeaders
a następnie opróżniłem powstałe katalogi. Działał jak urok.Szczególnie, jeśli budujesz z wiersza poleceń lub masz skrypt kompilacji, wyczyszczenie celu xcode nie wystarczy. Musisz usunąć ten folder.
Dokładną lokalizację prekompilowanego nagłówka można znaleźć w projekcie, część ścieżki do folderu jest losowa (chyba), szczególnie po /var/folders/xx..xxx/C.
Target -> build settings => "Build locations" -> Precompiled headers cached path
Uruchom Terminal i przejdź do tego folderu i usuń (użyj polecenia),
#rm -fr SharedPrecompiledHeaders
źródło
Musiałem ręcznie usunąć
~/Library/Developer/Xcode/DerivedData/
Clean nie działa dla mnie.źródło
użyj "command + shift + k", aby wyczyścić projekt, wszystko będzie dobrze.
źródło
Wyczyść swój projekt i uruchom
Produkt-> Wyczyść, a następnie uruchom.
źródło