Mam projekt iOS korzystający z CocoaPods. Wszystko działało sprawnie, dopóki inny programista nie zaczął pracować nad tym samym projektem. Wprowadził pewne zmiany (tylko o ile wiem, tylko w kodzie) i utworzył nowy oddział w repozytorium. Sprawdziłem jego gałąź i próbowałem ją zbudować, ale pojawia się błąd: nie znaleziono pliku ASLogger / ASLogger.h.
Nawet jeśli usunę cały projekt i zrobię nową kopię i użyję opcji „zainstaluj strąki”. błąd kompilacji nadal występuje. Czy masz pojęcie, gdzie może być problem? Jeśli potrzebujesz więcej informacji, po prostu zapytaj.
Odpowiedzi:
Aktualizacja
Upewnij się, że
Podfile
zawieralink_with
on cele brakujących plik konfiguracyjny. W przeciwnym razie Cocoapods domyślnie ustawia pierwszy cel . na przykład------ Zakończ aktualizację
Uwaga: Należy pamiętać, że należy zapoznać się z Projektem-> Informacje-> Konfiguracje, aby wykonać poniższe kroki.
Miałem podobne objawy i stwierdziłem, że
pods.xcconfig
plik nie został uwzględniony w konkretnymtarget
, który próbowałem zbudować. Niektóre inne sugerowane rozwiązania działały dla mnie, ale wydawało się, że dotyczyły one części problemu.Prostym rozwiązaniem była zmiana zestawu plików konfiguracyjnych dla celów, które nie miały jednego zestawu.
źródło
link_with
do określenia mojego innego celu działało dla mnie. Wielkie dzięki. Właśnie spędziłem nad tym kilka godzin.link_with
nie jest obsługiwany w Cocoapods 1.0 lub wyższej.Aktualizacja
Zaktualizowałem to od czasu mojej pierwotnej odpowiedzi, która otrzymała opinię, więc mam nadzieję, że to pomoże. A jeśli tak, mam nadzieję, że odzyska mój głos.
Jeśli nagłówki nie są importowane, prawdopodobnie występuje konflikt w pliku
HEADER_SEARCH_PATHS
. Spróbuj dodać$(inherited)
do ścieżek wyszukiwania nagłówka w Ustawieniach kompilacji, aby upewnić się, że pobiera ona wszystkie ścieżki wyszukiwania zawarte w pliku .xcconfig z twoich CocoaPods.Powinno to pomóc w przypadku wszelkich konfliktów i poprawnie zaimportować źródło.
źródło
1.Sprawdź
2. Sprawdź styl importu (KLUCZOWY PUNKT), jeśli
podfile
został ustawionyuse_frameworks!
W twoim
File-Bridging-Header.h
, formatyzatorowi powinno się to podobać#import "MBProgressHUD.h"
inaczej powinno być poniżej
#import <MBProgressHUD.h>
3. To musi być praca! Zaufaj mi
źródło
Pliki nagłówkowe, będziesz moją śmiercią ...
Wreszcie udało się go uruchomić, dodając (w tym cytaty)
do wpisu Ścieżki wyszukiwania nagłówka użytkownika i zaznaczenie „rekurencyjne”.
źródło
$(inherited)
(nie działało), ale dodanie tego działało dla mnie.Znalazłem, że
${PODS_HEADERS_SEARCH_PATHS}
brakuje i nie jest zdefiniowany w mojej gałęzi rozwijania git, więc dodałem"$(SRCROOT)/Pods/Headers/"
dla Ścieżek wyszukiwania nagłówka z rekurencyjnymTo jest dla mnie ok
źródło
$(SRCROOT)/Pods/Headers
Obie inne odpowiedzi tutaj nie pomogły. Znalazłem 2 inne problemy, które mogą to naprawić:
Projekt-> Informacje-> Konfiguracje w projekcie Xcode (twój projekt) powinien być ustawiony na „Pods” w celu debugowania, wydania (i tego, co masz). Zobacz „Nie znaleziono nagłówków - nie uwzględniono ścieżek wyszukiwania”
Być może musisz połączyć cel z poleceniem link_with. Zobacz „Nie można znaleźć nagłówków w projekcie biblioteki statycznej”
EDYCJA Możesz sprawdzić dowiązanie symboliczne w ten sposób: utwórz plik tekstowy o nazwie „czek” bez rozszerzenia. skopiuj do niego te linie:
Następnie przejdź do terminala, przejdź do folderu, w którym znajduje się plik czeku i wpisz
źródło
Oto, co zadziałało dla mnie:
Przejdź do zakładki Cel> Ustawienia kompilacji i znajdź ustawienie „Ścieżki wyszukiwania nagłówka użytkownika”.
Ustaw to na „$ (BUILT_PRODUCTS_DIR)” i zaznacz pole wyboru „Rekurencyjne”.
Teraz wbudowany cel przeszuka udostępniony katalog kompilacji obszaru roboczego w celu zlokalizowania możliwych do połączenia plików nagłówkowych.
====
AKTUALIZACJA
Miałem ostatnio podobny (choć nieco inny) problem. Okazało się, że Xcode nie mógł znaleźć kapsuł, ponieważ otworzyłem
.xcodeproj
plik zamiast.xcworkspace
pliku. Może pomóc innym w przyszłości.źródło
pod install
i ponownym otwarciu.Jeśli żadne z powyższych nie zadziałało i występuje ten błąd, ponieważ właśnie przeszedłeś do
use_frameworks!
pliku Podfile, czytaj dalej:Wypróbowałem wszystkie powyższe rozwiązania i wiele więcej, zanim dowiedziałem się, że w moim przypadku nie chodzi tu wcale o ścieżki nagłówków wyszukiwania; po przejściu do
use_frameworks!
pliku Podfile nie trzeba już uwzględniać ram w nagłówku pomostowym, a w rzeczywistości Xcode zgłasza bardzo nieprzydatny błąd „nie można znaleźć nagłówka”.To, co musisz zrobić, to usunąć cały import z mostkowego pliku nagłówkowego i zamiast tego użyć Swift
import Module
w swoich indywidualnych plikach Swift w razie potrzeby, tak jak w przypadku frameworków Swift.ORAZ jeśli używasz któregoś z nagłówków frameworka w swoich klasach Obj-C (w moim przypadku mamy klasę wygody, która korzystała z FBSDK), musisz zmienić go z importu lokalnego na globalny (oznacza to zmianę
#import "Module.h"
na#import <Module/Module.h>
, która powinna być automatycznie uzupełniana dla ciebie, kiedy zaczniesz wpisywać nazwę frameworku. W moim przypadku tak było<AFNetworking/AFHTTPRequestOperationManager.h>
).Edycja: Od tego czasu nauczyłem się, że robienie i
@import Module
używa pliku parasolki, który jest jeszcze bezpieczniejszy.źródło
Czy próbowałeś zaimportować styl Cocoapods?
Informacje na stronie nie są do końca jasne, wysłałem żądanie ściągnięcia:
https://github.com/CocoaPods/cocoapods.org/pull/34
Aktualizacja: Wyciągnęli moją prośbę :)
źródło
Wiki daje porady, jak rozwiązać ten problem:
źródło
$(PROJECT_DIR)/Pods/Headers/Public/xxx/ios/xxx.h
istnieje dodatkowyios
folder ...Byłem jedynym programistą w zespole, który doświadczył tego samego problemu, działał idealnie dla wszystkich, więc zdałem sobie sprawę, że to musi być moje środowisko. Próbowałem
git clone
tego samego projektu w innym katalogu i skompilowałem się idealnie, a potem zdałem sobie sprawę, że musi to być pamięć podręczna Xcode dla mojej ścieżki projektu, że „gdzieś” to folder DerivedData, po prostu usuń go i wykonaj czystą kompilację swojego projekt, zadziałało dla mnie.Możesz uzyskać ścieżkę, a nawet otworzyć folder w wyszukiwarce, przechodząc do:
Xcode -> Preferencje -> Lokalizacje -> ** Dane pochodne
źródło
Zaktualizuję poniższe elementy w ustawieniach kompilacji i nie otrzymałem żadnych błędów. Aby to sprawdzić, zaktualizuj swoje cocoapody.
Ustawienia kompilacji
Buduj tylko architekturę
Wyszukaj ścieżkę
źródło
Jeśli wystąpiły błędy kompilacji po „ instalacji pod ” lub „ aktualizacji pod ”, być może jeden z twoich modułów został zbudowany przy użyciu XCode 6.3, gdy nadal używasz poprzedniej wersji.
W moim przypadku musiałem zaktualizować OSX z indywidualnej wersji do Yosemite, aby mieć Xcode 6.3 i rozwiązać problem
źródło
dla mnie problem polegał na wartości flag Other Linker. Z jakiegoś powodu nie miałem cytatów w flagach takich jak
-l"xml2"
-l"Pods-MBProgressHUD"
.źródło
Other Linker Flags
znalazłem dwa wpisy:-|Localytics
i|-PodsLocalytics
. Usunąłem je, a następnie udało mi się skompilować.Musiałem pobrać zip z git hub i przeciągnąć brakujące pliki do Findera na odpowiednie ścieżki w Pod / ...
źródło
Dla mnie zadziałało wybranie projektu Pods, znalezienie i wybranie docelowej struktury z brakującym nagłówkiem w katalogu docelowym projektu Pod i ustawienie „Buduj tylko aktywną architekturę” na „Nie” w „Architekturach” w ustawieniach kompilacji celu.
źródło
Mam ten sam problem, ale powyższe rozwiązania nie działają. Naprawiłem to, robiąc to:
A potem to działa.
źródło
Dla mnie to, co naprawiło, to cel wdrożenia iOS dla mojego projektu Pods był niższy niż sam projekt. Gdy zrobiłem to samo, co mój projekt, był w stanie znaleźć plik nagłówka.
źródło
Byłem na starcie GM Xcode 5.0 i nie mogłem uzyskać żadnej z tych odpowiedzi do pracy. Próbowałem każdej odpowiedzi na SO na wiele różnych pytań na temat importu nagłówka w / cocoapods.
WRESZCIE znalazłem rozwiązanie, które działało dla mnie : uaktualniłem do Xcode 5.0 za pośrednictwem Mac AppStore (zainstalowany na początku GM) i teraz import nagłówków działa zgodnie z oczekiwaniami.
W dalszym ciągu miałem również wersję beta Xcode 5 w moim systemie i również ją usunąłem. Może było to połączenie tych dwóch rzeczy, ale mam nadzieję, że to pomoże komuś innemu.
źródło
To była dla mnie odpowiedź, zaktualizowałem cocoapody i myślę, że to sprawiło, że PODS_HEADERS_SEARCH_PATHS odszedł. Moje rozwiązanie było podobne do tego, ale użyłem „$ (PODS_ROOT) / Headers” - Andrew Aitken
Dziękuję bardzo za tę odpowiedź. Z trudem szukałem sposobów rozwiązania mojego problemu. Dziękuję Ci bardzo.
źródło
Żadna z odpowiedzi mi nie pomogła (miałem swoje strąki połączone ze wszystkimi celami, poprawnie konfigurowałem konfiguracje, ustawiałem ścieżki wyszukiwania „$ (dziedziczone)” itp.).
Problem sam zniknął po zaktualizowaniu cocoapods do najnowszej wersji debugowania za pomocą standardowego polecenia install / update:
lub:
(jeśli podczas instalacji użyto sudo).
To musiał być błąd cocoapods.
źródło
Jedno proste obejście: 1. Usuń folder Pods i plik Podfile.lock. Ale nie usuwaj Podfile 2. Uruchom następujące polecenie w folderze głównym projektu:
źródło
Oto kolejny powód: wszystkie ścieżki nagłówka wydawały się w porządku, ale nadal mieliśmy błąd w pliku prekompilowanym (.pch), który próbował odczytać nagłówek pod
(tj. #import <CocoaLumberjack / CocoaLumberjack.h>).
Patrząc na dane wyjściowe surowego kompilacji, w końcu zauważyłem, że błąd łamał nasz cel rozszerzenia OS Watch, a nie główny cel, który budowaliśmy, ponieważ importowaliśmy również wstępnie skompilowany plik nagłówka .pch do celów Watch OS i to się nie udawało tam. Upewnij się, że towarzyszące ustawienia docelowe systemu Watch Watch nie próbują importować pliku .pch (zwłaszcza jeśli ustawiłeś ten import z głównego ustawienia docelowego, tak jak ja!)
źródło
Przekonałem się, że włączenie biblioteki jako instalacji pod bezpośrednio pomaga bibliotekom dynamicznym. Na przykład dla Firebase:
Lub dla ASLogger:
Zmiana lub zakodowanie na stałe
HEADER_SEARCH_PATHS
nie pomogło mi. Jeśli błąd się powtórzy, nie jest to koniecznerm -rf node_modules
ani usuwanie pliku pod itp., Uznałem, że warto wyczyścić pamięć podręczną.Dla Reaktywny-natywny, uruchamiam
W przypadku Xcode usuwam foldery
~/Library/Developer/Xcode/DerivedData
źródło
Myślę, że najlepszym rozwiązaniem jest
Build settings -> Search Path -> User Header Search Paths
znalezienie ścieżki biblioteki i przejście przez nią w Finderze. Upewnij się, że istnieje cała ścieżka, w tym ścieżka importu.Dla mnie moja ścieżka była krótsza niż w tutorialu. W samouczku było coś takiego
#import <SDK/path/to/sdk/File.h>
, ale okazało się, że jest po prostu#import <SDK/File.h>
źródło
Mam tutaj inne działające rozwiązanie,
źródło
Spróbuj skomentować ten wiersz dla swojego celu
Lub możesz odnieść się do mojej kolejnej odpowiedzi dodanej docelowego testowania jednostkowego do xcode - nie udało się zaimportować nagłówka pomostowego nie zniknie
źródło
Rozwiązałem ten problem dla Xcode 8.2.1 poprzez przeciągnięcie i upuszczenie frameworka, którego chcę użyć.
źródło