ostrzeżenie o kompilacji: brak reguły przetwarzania pliku dla architektury i386


245

Jak mogę rozwiązać to ostrzeżenie?

[WARN] ostrzeżenie: brak reguły przetwarzania pliku „$ (PROJECT_DIR) /MyApp/MessageCell.h” typu sourcecode.objj.h dla architektury i386


Mówi także, że próbuje skompilować twoje pliki nagłówkowe jako sourcecode.objj.h z Objective-J (który również używa plików .h do nagłówków), czy masz zainstalowane Cappuccino?
themarketka

Odpowiedzi:


576

Kliknij swój projekt i sprawdź, czy ten plik nie występuje w zakładce Fazy kompilacji. Zwykle żadne pliki nagłówkowe nie powinny tu pozostać. Wyczyść go i zbuduj ponownie, powinien działać!


1
Mam tam kilka plików nagłówkowych. Ciekawe, dlaczego nagłówki nie powinny tam być?
Sheehan Alam

30
Ponieważ jest to lista plików źródłowych, które zostaną skompilowane, i zwykle już <plik> .h zawiera się w <pliku> .m
Giuseppe

1
Ilekroć tworzę nową klasę, mój XCode automatycznie dodaje pliki nagłówkowe do moich faz kompilacji. Nie wiem dlaczego, ktoś ma pojęcie, dlaczego tak się dzieje? Obecnie za każdym razem, gdy tworzę nową klasę, muszę ręcznie usunąć pliki nagłówków z faz kompilacji.
Bocaxica,

1
Mogę dodać, że plik .h może pojawić się w fazie kompilacji (kiedy nie powinien), ponieważ plik .m ma (przez pomyłkę) inną nazwę.
Ali,

to miałoby sens ... Utworzyłem plik pierwotnie jako .cpp, a następnie przemianowałem go na .h
ddavison


17

Możemy rozwiązać ten problem, po prostu wykonując następujące czynności: - Niektóre .md, .mdown .hpliki są zawarte w Skompiluj Sources
Krok 1) Wybierz Projekt Navigator
Krok 2) Wybierz swój projekt
krok 3) Wybierz targetStep
Krok 4) Wybierz Budowa PhasesStep
krok 5) Przenieś pliki, których nie chcemy, aby kompilator przetwarzał ze źródeł kompilacji do zasobów zasobów pakietu

Sprawdź to


3

Jeśli otrzymujesz to ostrzeżenie od swojego cocoapod, musisz upewnić się, że s.source_filesjest poprawnie ustawiony w .podspec.

Na przykład pierwotnie włączyłem wszystkie pliki z tą linią do mojego .podspec

s.source_files = "MyUIElements/**/*"

Otrzymałem to ostrzeżenie dotyczące kompilacji niektórych plików czcionek, które miałem w kapsule. Możesz kontrolować, które pliki będą wyświetlane w BuildPhases-> CompileSourcesprzy zużyciu kapsułek, w następujący sposób:

s.source_files = "MyUIElements/**/*.swift", "MyUIElements/**/*.h"

1
czy s.source_files = "Sources**/*.{h,m,swift}"?
hstdt

0

Mój problem was't pliki nagłówkowe ponieważ pod Target> Build Phases> Compile Resourcesnie było żadnych .h fileszacząć. System narzekał na inne pliki. Podążyłem za tym linkiem, który w zasadzie powiedział, że usuwam pliki, na które narzekał system, ale zamiast tego przeciągnąłem je do cntrl + Copy Bundle Resources.

Najłatwiejszym sposobem wyszukiwania plików jest użycie Filtru w prawym górnym rogu:

wprowadź opis zdjęcia tutaj

Oto wskazówki z linku:

wprowadź opis zdjęcia tutaj

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.