Po umieszczeniu aplikacji w AdMob pojawia się błąd. Aplikacja działała do dziś. Błąd jest następujący:
ld: library not found for -lGoogleAdMobAds
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Jak mogę to naprawić? Dziękuję Ci.
Odpowiedzi:
Czasami wystarczy usunąć odniesienie do biblioteki i ponownie dodać odniesienie.
Oprócz ponownego dodania pakietu SDK do reklam mobilnych Google i innych bibliotek od zera, polecam sprawdzenie ścieżek wyszukiwania w bibliotece . Zdarzają się sytuacje, gdy kopiujesz lub duplikujesz cel, Xcode decyduje, że musi on uniknąć podwójnych cudzysłowów „za pomocą„ \ ”. Upewnij się, że usunąłeś wszystkie znaki \ '- powinno to wyglądać tak:
Udało mi się zduplikować błąd, poprzedzając moją ścieżkę wieloma znakami „\”.
źródło
Miałem podobny problem „Nie znaleziono biblioteki”. Jednak było tak, ponieważ przypadkowo użyłem
.xcodeproj
pliku zamiast.xcworkspace
pliku.źródło
Wybierz swój cel, przejdź do
"Build Phases"
w"Link Binary With Libraries"
remove".a"
pliku z tej biblioteki. Oczyść i zbuduj.źródło
Jeśli błąd związany z Cocoapods w następujący sposób:
Musisz sprawdzić inne flagi konsolidatora i usunąć je stamtąd.
źródło
W moim przypadku Xcode 7 działał również w Xcode 9.1
ustawiony
Build Active architecture Only
naYes
źródło
Dzieje się tak, jeśli używasz cocoapodów, użyj
.xcworkspace
pliku zamiast.xcodeproj
pliku domyślnego .źródło
Jeśli błąd jest jak śledzenie
ld: nie znaleziono biblioteki dla -lpods
Okazało się, że plik „libPods.a”, który jest w kolorze czerwonym (podobnie jak brakujące pliki) został w jakiś sposób utworzony w grupie Framework projektu. Po prostu usunąłem ten plik i wszystko poszło dobrze.
EDYCJA: inne rozwiązanie
Kolejne rozwiązanie, na które już odpowiedziałem w podobnym pytaniu, znajduje się w tym linku
źródło
goto Build Phases -> Połącz plik binarny z bibliotekami i usuń bibliotekę, która pokazuje błędy, ponieważ ta biblioteka nie jest dostępna w folderze projektu
źródło
libPods-Foo BarTests.a
i drugą nazwanąlibPods-FooBarTests.a
.Może się to również zdarzyć, jeśli otworzysz plik projektu zamiast obszaru roboczego. Sam w ten sposób zmarnowałem dzień.
źródło
Spóźniłem się na odpowiedź, ale oto lista rzeczy, które wypróbowałem, więc będzie w jednym miejscu, jeśli ktoś chce spróbować rozwiązać problem.
źródło
W moim przypadku wystąpił problem z nazewnictwem. Moja biblioteka została wywołana
ios-admob-mm-adapter.a
, ale Xcode spodziewał się, że nazwa powinna zaczynać się od przedrostka lib . Właśnie zmieniłem nazwę mojej biblioteki nalibios-admob-mm-adapter.a
i naprawiłem problem.Używam Cocoapods i łączy biblioteki z opcją Inne flagi linkera w ustawieniach kompilacji mojego celu. Wygląda na to flaga
-l"ios-admob-mm-adapter"
Mam nadzieję, że pomoże to komuś innemu
źródło
Po prostu
GoogleAdMobAds.a
brakuje celu projektu. Jak dla mnie,libAdIdAccessLibrary.a
proszę sprawdzić załączony zrzut ekranuźródło
Jak dla mnie ten problem występuje, ponieważ zainstalowałem Material Library dla IOS. aby rozwiązać ten problem
1: Przejdź do ustawień kompilacji docelowej aplikacji.
2: Wyszukaj inne flagi konsolidatora
3: Otwórz inne flagi konsolidatora i poszukaj biblioteki, o której mowa w błędzie.
4: usuń tę flagę.
5: Oczyść i zbuduj.
Mam nadzieję, że to rozwiąże Twój problem.
źródło
W przypadku
ld: library not found for -{LIBRARY_NAME}
zdarzyło się, ponieważ plik (i) biblioteki nie istnieje.Ścieżka do pliku (ów) biblioteki musi być zgodna z rzeczywistą ścieżką, na przykład jeśli plik (i) w katalogu głównym projektu musisz ustawić ścieżkę taką jak
$(PROJECT_DIR)
źródło
Wiem, że jest to trochę stare, ale właśnie natrafiłem na podobny problem i uruchomienie „aktualizacji pod” naprawiło to dla mnie. Mój błąd biblioteki dotyczył AFNetworking ...
Po prostu zachowaj ostrożność podczas aktualizacji poda, jeśli nie używasz jawnych wersji w pliku pod.
źródło
Ten błąd jest bardzo dziwny.
Miałem ten błąd z -ldAfnetworking i kopiuję tylko mój projekt w innej ścieżce i działa.
źródło
Próbowałem zmienić nazwę mojej konfiguracji kompilacji
Release
naProduction
, ale najwyraźniej strąkom kakao się to nie podoba. Zmieniłem nazwę ponownie naRelease
i wszystko działa dobrze.źródło
Odpowiedź @ raurora wskazała mi właściwy kierunek. Dodałem biblioteki do mojej ścieżki „watchkitapp Extension / lib”. W tym przypadku ścieżka wyszukiwania biblioteki musiała zostać poprzedzona znakiem „\”, ale konsolidator tego nie rozumiał. Aby naprawić / obejść ten problem, przeniosłem ścieżkę do biblioteki o jeden poziom w górę, aby nie znajdowała się już w katalogu zawierającym spację w nazwie.
źródło
Po prostu aktualizuję plik pod 'aktualizacja pod' i zaczyna normalnie działać dla mnie.
źródło
Uruchomienie „aktualizacji pod” w moim projekcie rozwiązało mój problem z błędem „Nie znaleziono biblioteki dla -lSTPopup”.
Przypominając odpowiedź Trevora Panhorsta:
„Po prostu zachowaj ostrożność podczas aktualizacji poda, jeśli nie używasz jawnych wersji w pliku pod”.
źródło
Proste rozwiązanie. Oto jak mogę rozwiązać ten problem:
platforms/ios
pod install
Otóż to. Powinno to zainstalować brakującą bibliotekę.
źródło
Odszedł...
źródło
Jest to błąd czasu kompilacji,
Static Library
który jest spowodowany przezStatic Linker
Możesz otrzymać błąd,
Library not found for
jeśli nie dołączysz ścieżki biblioteki doLibrary Search Paths
ld
oznacza, żeStatic Linker
nie może znaleźć lokalizacji biblioteki. Jako programista powinieneś pomóc konsolidatorowi i wskazać plikLibrary Search Paths
Możesz również otrzymać ten błąd, jeśli po raz pierwszy otworzysz nowy projekt (
.xcodeproj
) z obsługą Cocoapods, uruchompod update
. Aby to naprawić, po prostu zamknij ten projekt i otwórz zamiast tego utworzony obszar roboczy (.xcworkspace
)źródło
Otrzymywałem podobne błędy w bibliotece nie znaleziono. Ostatecznie udało mi się to rozwiązać
źródło