Wystąpił błąd podczas archiwizacji projektu. To jest moje środowisko.
- Mac OS Lion
- Xcode 4.3.1
- iOS SDK 5.1
Celem wdrożenia projektu jest:
IPHONEOS_DEPLOYMENT_TARGET 3.2
Błąd pokazuje:
ld: library not found for -lPods
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Myślę, że Pods to CocoaPods, których użyłem do zarządzania zależnościami projektu XCode. https://github.com/CocoaPods/CocoaPods
To jest mój Podfile
platform :ios
dependency 'libPusher', '1.1'
Nie jestem pewien, co oznacza błąd?
Odpowiedzi:
Czy otwierasz obszar roboczy (wygenerowany przez CocoaPods) zamiast xcodeproj?
źródło
Podfile
określ platformę tak:platform :ios, :deployment_target => "3.2"
. To powinno skonfigurować go poprawnie przy następnym uruchomieniupod install
..xcworkspace
plik, a nie.xcodeproj
. W ten sposób, oprócz twojego projektu, Xcode wie o projekcie wPods/
katalogu i jak zbudowaćlibPods.a
..xcodeproj
otwarte, musisz je zamknąć przed otwarciem.xcworkspace
pliku.Oddzieliłem aplikację i cele testowe w Podfile za pomocą
Doprowadziło to do powstania dwóch nowych produktów, odpowiednio, libPods-App.a i libPods-AppTests.a i sprawiły, że poprzedni produkt libPods.a stał się przestarzały. Musiałem usunąć ten produkt z link Binary z bibliotekami sekcji części Etapy budowanie konfiguracji obu celów.
źródło
Dzisiaj spotkałem podobny problem.
Preview
wraz z istniejącąDebug
iRelease
Teraz podczas kompilacji w tej nowej
Preview
konfiguracji kompilator nie będzie mógł połączyć się z modułami Pods i nie wyśle mi tej wiadomości:Rozwiązanie:
Musiałem biec
ponownie i tym samym konfigurując cocoapods dla nowej
Preview
konfiguracji. Zaktualizował mój projekt, obszar roboczy i plik projektu kapsuły, a problem zniknąłźródło
Upewnij się, że otwierasz
.xcworkspace
, nie.xcodeproj
źródło
Żadne rozwiązanie nie działało dla mnie, to jest naprawdę nie do zniesienia, jest plik
libpods.a
(który był w kolorze czerwonym) Usunąłem go i wszystko działa dobrze! Pozdrawiam mnie;)źródło
Podzieliłem swoje aukcje kapsuł
Podfile
na różne cele, takie jak:I prowadziłem
pod install
Stworzyło to nową bibliotekę,
libPods-ABC.a
z którą mój plik binarny musiał się połączyć. Ale błąd polegał na tym, że nie usunął poprzedniej biblioteki tjlibPods.a
.Rozwiązanie: Usuń bibliotekę
libPods.a
zBuild Phases
oLink Binary With Libraries
.źródło
Podałem stary plik libPod.a (prawdopodobnie spowodowany przez zmianę celów).
Ustawienia projektu -> Fazy kompilacji -> Połącz pliki binarne z bibliotekami
Zazwyczaj cocoapods zawierałyby tylko jedną bibliotekę, taką jak
libPods-target.a
lublibPods.a
. Rozwiązałem go, usuwając duplikat.źródło
Pods.debug
naPods-MyApp.debug
, więc teraz potrzebuję tylkolibPods-MyApp.a
(była stara ikona „wyblakła”libPods.a
),jeśli masz z tym problemy na cocoapods v25 / Xcode 5
Projekt Pods Xcode ustawia teraz ustawienie kompilacji ONLY_ACTIVE_ARCH na TAK w konfiguracji debugowania. Będziesz musiał ustawić to samo w swoim projekcie / celu, w przeciwnym razie kompilacja się nie powiedzie.
https://github.com/CocoaPods/CocoaPods/wiki/FAQ#running-into-build-failures-after-migrating-to-xcode-5-and-cocoapods-0250
AKTUALIZACJA Upewnij się, że masz najnowsze klejnoty / cocoapods
Będziesz chciał przebudować projekt za pomocą Pod Install, aby przebudować projekt.
źródło
Jeśli Xcode narzeka podczas łączenia, np. Nie znaleziono biblioteki dla -lPods, nie wykrywa ukrytych zależności.
Przejdź do produktu> edytuj schemat Kliknij kompilację Dodaj bibliotekę statyczną Pods i upewnij się, że znajduje się na górze listy Wyczyść i buduj ponownie Jeśli to nie działa, sprawdź, czy źródło specyfikacji, którą próbujesz dołączyć, zostało wyciągnął z github. Zrób to, zaglądając do / Pods /. Jeśli jest pusty (nie powinien być), sprawdź, czy ~ / .cocoapods / master //. Podspec ma w nim poprawny adres URL git hub. Jeśli nadal nie działa, sprawdź ustawienia lokalizacji kompilacji XCode. Przejdź do Preferencji -> Lokalizacje -> Dane pochodne -> Zaawansowane i ustaw lokalizację kompilacji na „Względem obszaru roboczego”.
http://docs.cocoapods.org/guides/getting_started.html
źródło
Miałem ten sam problem, kiedy edytowałem Podfile, dodając cel, którego używałem wcześniej bez celu.
Podfile
Po zastanowieniu się odkryłem, że pod właściwościami docelowymi >> zakładka Ogólne >> Połączone ramy i biblioteki, pojawiły się nowe libPods-xxxx.a i stare libPods.a
Właśnie usunąłem libPods.a i wszystko działało dobrze.
źródło
Wiki CocoaPods na GitHub ma odpowiedź bezpośrednio w FAQ :
Product > Edit Scheme
Build
<Project Dir>/Pods/<Name of spec you are trying to include>
. Jeśli jest pusty (nie powinien być), sprawdź, czy~/.cocoapods/master/<spec>/<spec>.podspec
zawiera poprawny adres URL github.Preferences -> Locations -> Derived Data -> Advanced
i ustaw lokalizację kompilacji na „Względem obszaru roboczego”.źródło
Zmieniłem nazwę projektu na „NBSelector” z „Partners”.
Po zmianie nazwy projektu wystąpił błąd „Nie znaleziono biblioteki dla libPods-Partners”. Xcode próbował połączyć się ze starym plikiem Partners.a. Po prostu zmień go, jeśli masz podInstalled po zmianie nazwy.
źródło
Zastosowanie ONLY_ACTIVE_ARCH = NO we wszystkich zasobnikach rozwiązało problem. Aby to było trwałe, dodałem hak post_install do mojego pliku Podfile:
pod install
i jesteś skończony.źródło
Czy stworzyłeś „Dystrybucję” lub podobną konfigurację, aby tworzyć archiwa Ad-Hoc i App Store? Podobnie jak wielu innych, postępowałem zgodnie z zaleceniami Apple'a i nazwałem konfiguracją „Release”, nazwałem ją „Distribution” i ustawiłem dla niej różne reguły podpisywania. Cóż, być może była to rekomendacja przed wprowadzeniem schematów i opcji „Dystrybucja” w Organizatorze, zresztą właśnie ją miałem wcześniej.
Potem miałem ten sam problem z kapsułami. Wszystko działało dobrze podczas debugowania, ale archiwizacja nie powiodła się z błędem łącza. Po wypróbowaniu tego i zmiany konfiguracji archiwum mojego oryginalnego projektu z „Dystrybucji” na „Wydanie” i błąd łącza zniknął.
Jednak archiwum nie pojawiło się w Organizatorze, chociaż mogłem je zlokalizować w systemie plików, ale miało rozmiar 0.
Ostatnim krokiem do rozwiązania tego wszystkiego była zmiana ustawienia „Pomiń instalację” dla konfiguracji „Zwolnij” na „NIE”. Pamiętaj, że musisz to zrobić tylko dla głównego projektu, ale nie dla projektu Pods. Lepiej zostaw projekt Pods bez zmian, ponieważ jest generowany za każdym razem, gdy uruchamiasz „instalację pod”.
Aktualizacja Właśnie otrzymałem odpowiedź od twórców CocoaPods Nie wydaje mi się, żeby działała, ponieważ poprawnie skonfigurowałem konfigurację Pods. Ale może pomóc komuś innemu.
źródło
W moim przypadku problem polegał na tym, że lokalizację danych pochodnych Xcode ustawiono na opcję „Starsze”. Cel CocoaPods (libPods.a) był budowany poprawnie, ale Xcode szukał go w niewłaściwym miejscu.
Przełączenie go na „Unikatowy” (domyślnie) rozwiązało problem. Możesz to zrobić, przechodząc do opcji Preferencje> Lokalizacje i klikając przycisk Zaawansowane ...
źródło
Tylko dodanie „Ścieżek wyszukiwania biblioteki” (w Ustawieniach kompilacji „MyProject”) do „Pods / build / Debug-iphonesimulator” działało dla mnie (podczas korzystania z symulatora).
Mam go tutaj: https://github.com/CocoaPods/CocoaPods/issues/121#issuecomment-5452473
źródło
Jeśli archiwizujesz dla iOS7 i Xcode5 i otrzymałeś te błędy, zapoznaj się z tym linkiem. Wygląda na to, że Apple upuszcza architekturę, której potrzebowały strąki kakaowe https://github.com/CocoaPods/CocoaPods/pull/1352
źródło
Odkryłem, że wybranie „Znajdź ukryte zależności” (w ramach schematu produktu / edycji) rozwiąże ten problem zamiast konieczności dodawania strąków jako celu.
źródło
Przeszedłem wszystkie odpowiedzi tutaj, ale dla mnie było to niesamowicie proste ... Przejdź do Celu -> Kompiluj fazy, następnie usuń libPods-YourProject.a, a następnie dodaj go ponownie, używając „+”. Nie martw się, że biblioteka jest czerwona, jest w porządku.
źródło
Użyłem starej wersji cocoapod po aktualizacji cocoapods. Sugeruje to, żebym zaktualizował zainstalowany pod, z powodu dużej aktualizacji, ponieważ aktualizuję go po długim czasie. Aktualizuję go, a nowa wersja strąków została zaktualizowana w porządku. Ale potem dostałem błąd
library not found for -lPods-xxxprojectName-xxxxxpodName
Po wypróbowaniu tak wielu rozwiązań podanych jako odpowiedź w tym dziale, żaden z nich nie działał dla mnie. Potem poszedłem do ustawień mojego projektu i odkryłem, że ścieżka strąków była zmianą, która była włączona
Other Linker Flag
Sprawdź
Manage Schemes
poprawność nazwy kapsuły i porównaj jąOther Linker Flag
, zmień, jeśli nie jest podobnaDawna ścieżka do kapsuły była
-l"lPods-xxxprojectName-xxxxxpodName"
Ale nowe kapsuły zostały
xxxxxpodName
zastąpioneOther Linker Flag
nowymi, jak poniżejZmieniono na ścieżkę kapsuły
-l"xxxxxpodName"
i działa.Nie znam idealnego powodu, ale może to komuś pomóc.
źródło
Otworzyłem obszar roboczy, ale otrzymałem ten sam błąd.
Kompiluj aktywną architekturę Tylko ustawione na TAK
rozwiązać mój problem.
źródło
Rozwiązano to, wykonując poniższe czynności:
źródło
W moim przypadku
pod install
problem został rozwiązany po utworzeniu schematów dystrybucji i wydania.źródło
Mam ten sam problem podczas archiwizacji w celu przesłania. Dyskusję na ten temat można znaleźć tutaj: https://github.com/CocoaPods/CocoaPods/issues/155
Podsumowując, działają dla mnie dwie metody:
- platform :ios, :deployment_target => "5.0"
źródło
Korzystanie z Xcode 5 z iOS 7
To właśnie zrobiłem po utknięciu przez godzinę. Usuń ARM64 z ustawienia kompilacji> Prawidłowa architektura.
DODANO: Również w moim przypadku nie uzyskano lokalizacji danych. Wybrałem unikalną lokalizację kompilacji.
źródło
jeśli używasz iOS7 i Xcode 5, wykonaj:
źródło
Próbowałem KAŻDEJ odpowiedzi w tym wątku bezskutecznie. W końcu rozwiązałem mój problem, dopasowując „Ścieżkę do produktów kompilacji przed konfiguracją” w moim projekcie docelowym z wartością w projekcie Pods. Okazuje się, że budowali w dwóch różnych lokalizacjach wyjściowych. Żadne inne sugestie w tym wątku nie były dla mnie odpowiednie. Byłoby wspaniale, gdyby XCode podał przydatny opis błędu (np. DLACZEGO nie można użyć biblioteki lib - nie znaleziono pliku, nie znaleziono pasującej architektury itp.).
źródło
W tym problemie, jeśli już zainstalowałeś i aktualizowałeś w swoim systemie, to Xcode nie może znaleźć biblioteki Pods. Aby rozwiązać ten problem, sprawdź następujące przyczyny, które mogą mieć miejsce:
źródło
próbować
link_z „YouTarget1”, „YouTarget2” ...
Mój projekt zadziałał, cele nagle przestały się kompilować. Następnie dodano „link_with” i wróciło do normy.
Najwyraźniej teraz łączy się tylko z pierwszym celem, tak mówi link:
http://guides.cocoapods.org/syntax/podfile.html#link_with
źródło
Jeśli nadal występuje ten problem, spróbuj:
Czy praca dla mnie, mam nadzieję, że to ci pomoże.
źródło