2015-10-27 26 views
16

Podczas archiwum Xcode 7.1 mówi, że nie znaleziono Restkit/Restkit.h, ale podczas debugowania udało się znaleźć nagłówek. Jest to stary projekt, który nie wykorzystuje strąków kakao, więc RestKit jest dodawany ręcznie. Próbowałem wielu rozwiązań, ale nie udało się. Wymagana pomoc.Nie znaleziono nagłówka Xcode 7.1

+0

Mam dokładnie ten sam problem. Praca z programem RestKit 0.10.3 (non-cocoapods). Próbowałem bawić się ścieżkami Search Header, ale do tej pory nic nie działało. Próbowałem również [https://issues.apache.org/jira/browse/CB-9656] – FeltMarker

+0

Przyczyną problemu jest dodanie "$ (BUILT_PRODUCTS_DIR) /../../ nagłówków" w ścieżkach wyszukiwania nagłówka , który szuka kompilacji/Release-iphoneos, a następnie wraca do folderu Headers zawierającego plik Restkit.h, ale niestety Release-iphoneos nie jest tworzony podczas archiwizacji w Xcode 7.1.Może być pomocna w tym zakresie. –

Odpowiedz

19

Udało mi się rozwiązać razem z twoją sugestią i this SO post, dodając "$ (BUILD_ROOT) /../ IntermediateBuildFilesPath/Headers" (rekurencyjne) w ustawieniach budowania projektu, Header Search Path for Release. ustawić również pominąć install = TAK (kompilacja ustawienia/wdrożenie w RestKit-projektu) i zmianie:

#import <RestKit/RestKit.h> to "RestKit/RestKit.h" 

Note. Sprawdź kartę preferencji/lokalizacji xcode, w której przechowywane są dane pochodne. Wartość domyślna to Unikalna lokalizacja kompilacji. Następnie wyszukaj w Finderze folder IntermediateBuildFilesPath i wyszukaj nagłówki, których brakuje. Dodaj ten folder do ścieżki wyszukiwania.

+1

dobra praca zespołowa: D –

+5

Mogę potwierdzić, że dodanie "$ (BUILD_ROOT) /../ IntermediateBuildFilesPath/Headers" do RELEASE rozwiązało tylko dla mnie. Możliwe, że później utworzyłem inne problemy, nie robiąc dodatkowych kroków, ale na razie wygląda na to, że archiwizuję dobrze. – ericWasTaken

+2

Mam również starsze projektu z RestKit i to działało dla mnie też, dzięki! Podobnie jak eric nie zrobiłem tego rekursywnie i nie musiałem zmieniać linii #import. –

10

Miałem ten sam problem. I dodaje następujące do nagłówka ścieżek wyszukiwania zbudować ustawienia z nierekursywnych wybrany, a to rozwiązać mój problem:

„$ (BUILD_DIR) /../ IntermediateBuildFilesPath/Nagłówki”

nie trzeba zmień składnię importu lub zmień dowolne inne ustawienia kompilacji.

+0

https://forums.developer.apple.com/message/79355#79355 https: // github. com/RestKit/RestKit/issues/2341 –

3

Zmiana nagłówka ścieżek wyszukiwania do:

"$(BUILD_DIR)/../IntermediateBuildFilesPath/Headers" (non-recursive) 

była słuszna droga dla mnie. Dla pozostałych podprojektów, należy zmienić ścieżkę folderu nagłówkom publicznych (Build Settings> opakowania) do

"../../Headers/$(TARGET_NAME)" 

w ustawieniach podprojektem docelowego.

+0

Ty, sir, uratowałeś mi życie :-) Już miałem się poddać! Teraz wszystko ma sens ... – Bartserk

+0

To zadziałało. Dzięki! –

1

Wszystkie powyższe odpowiedzi stanowiły część rozwiązania; jednak w moim przypadku natknąłem się na szczegóły, które sprawiły, że przez chwilę byłem zdezorientowany.

Zgodnie odpowiedzi powyżej, ja też zaktualizowanych nagłówku ścieżek wyszukiwania (w obszarze Ustawienia kompilacji) dodając:

"$(BUILD_DIR)/../IntermediateBuildFilesPath/Headers" (non-recursive) 

ale to nie działa, aż zdałem sobie sprawę ...

byłem Aktualizowano tylko aktualizację , aby zachować stare ścieżki.

Dlatego pamiętaj o zaktualizowaniu ścieżek projektu JAKO Ścieżki docelowe.

ps, ​​nie musiałem zmieniać żadnych instrukcji importowania pakietu RestKit.

+0

"* jeszcze jedna uwaga do tej odpowiedzi *" -> z 500 powtórzeń, jesteś więcej niż kwalifikowany, aby dodać komentarz do drugiej odpowiedzi. Jeśli zamiast tego opuścisz odpowiedź, przynajmniej jednoznacznie odwołaj się do docelowej odpowiedzi, do której się odnosisz, aby od roku wyjaśnić, o czym mówisz. –

+0

@AndrasDeak, Wszystkie powyższe odpowiedzi odnoszą się do dodania tej samej ścieżki wyszukiwania, tego samego rozwiązania. Odkryłem, że nie muszę zmieniać instrukcji importowania. –

+1

Następnie proponuję przeformułować twoje pierwsze zdanie. Może usunąć pierwsze zdanie i wyjaśnić, że istniejąca metoda nie działa dla ciebie, a twoja aktualna odpowiedź to druga połowa twojego postu :) Ja * jestem * laikiem, ale może to być mylące również dla innych. (Tylko sugestia, możesz ją przyjąć lub opuścić) –

Powiązane problemy