Błąd: „Piaskownica nie jest zsynchronizowana z plikiem Podfile.lock…” po zainstalowaniu RestKit za pomocą cocoapods


232

Wystąpił dziwny problem po zainstalowaniu RestKit z cocoapods. po rozwiązaniu zależności RestKit dla mojego projektu z cocoapods i próbowaniu jej zbudowania, napotykam ten błąd:

Piaskownica nie jest zsynchronizowana z plikiem Podfile.lock. Uruchom „pod instalację” lub zaktualizuj instalację CocoaPods.

Próbowałem biec pod install, ale bez zmian.

Oto kilka zdjęć: wprowadź opis zdjęcia tutaj

wprowadź opis zdjęcia tutaj

  PODS:
  - AFNetworking (1.3.3)
  - RestKit (0.20.3):
    - RestKit/Core
  - RestKit/Core (0.20.3):
    - RestKit/CoreData
    - RestKit/Network
    - RestKit/ObjectMapping
  - RestKit/CoreData (0.20.3)
  - RestKit/Network (0.20.3):
    - AFNetworking (~> 1.3.0)
    - RestKit/ObjectMapping
    - RestKit/Support
    - SOCKit
  - RestKit/ObjectMapping (0.20.3)
  - RestKit/Search (0.20.3):
    - RestKit/CoreData
  - RestKit/Support (0.20.3):
    - TransitionKit (= 1.1.1)
  - RestKit/Testing (0.20.3)
  - SOCKit (1.1)
  - TransitionKit (1.1.1)

DEPENDENCIES:
  - RestKit (~> 0.20.0)
  - RestKit/Search (~> 0.20.0)
  - RestKit/Testing (~> 0.20.0)

SPEC CHECKSUMS:
  AFNetworking: 61fdd49e2ffe6380378df37b3b6e70630bb9dd66
  RestKit: 1f181c180105a92f11ec4f6cd7de37625e516d83
  SOCKit: 2f3bc4d07910de12dcc202815e07db68a3802581
  TransitionKit: d0e3344aac92991395d4c2e72d9c5a8ceeb12910

COCOAPODS: 0.29.0

2
Czy próbowałeś Run 'pod install' or update your CocoaPods installation.zgodnie z sugestią błędu?
Wain

3
absolutnie to zrobiłem, ale bez powodzenia
Hashem Aboonajmi

1
Czy możesz opublikować wersję Restkit w Podfile.locki wewnątrz Pods/Manifest.lock? Ten błąd występuje, gdy nie są one takie same.
MishieMoo

tak, porównałem je, są dokładnie identyczne.
Hashem Aboonajmi

Błąd nad błędem „piaskownicy” to „diff: polecenie nie zostało znalezione” Nie wiem, czy ponowna instalacja diff może rozwiązać problem, ale może to być wskazówka, co się dzieje.
Thunder Rabbit

Odpowiedzi:


318

Udało mi się to naprawić, aktualizując CocoaPods.

I. Oczyszczanie projektu

  1. W nawigatorze projektu wybierz swój projekt
  2. Wybierz swój cel
  3. Usuń wszystkie libPods * .a w Fazy ​​kompilacji> Połącz pliki binarne z bibliotekami

II. Zaktualizuj CocoaPods

  1. Uruchom Terminal i przejdź do katalogu projektu.
  2. Zaktualizuj CocoaPods za pomocą polecenia pod install

3
działało jak urok, możesz chcieć zaktualizować swoją odpowiedź, powiedz: uruchom polecenie pod pod instaluj
ManicMonkOnMac

18
Odnośnie do I.3 - czy miałeś na myśli sekcję „Buduj fazy> Połącz pliki binarne z bibliotekami”?
kraftydevil

1
Po uruchomieniu polecenia pod install w katalogu projektu otrzymałem poniższe ostrzeżenie: Użycie niejawnych źródeł zostało przestarzałe. Aby nadal korzystać ze wszystkich źródeł aktualnie znajdujących się na twoim komputerze, dodaj następujące na górze pliku Podfile: source ' github.com/CocoaPods/Specs.git ' Dodałem również ten link do pliku pod, ale stało się to samo. proszę zasugeruj.
Mitesh Khatri

Oprócz tego musiałem usunąć wszystkie fazy kompilacji związane z CocoaPod, takie jak „Check Pods Manifest.lock” i „Copy Pods Resources”.
JVillella,

17
@ Valery Pavlov Te kroki zadziałały, ale po udanym oczyszczeniu projektu kompilacja kończy się niepowodzeniem z tymi samymi 3 błędami, których nie mogę się pozbyć poniżej. Próbowałem całkowicie usunąć wszystkie cocoapody, ponownie zainstalować, zaktualizować, zrobić to wszystko przy ponownym uruchomieniu xcode itp. Wszystkie te w terminalu działają pomyślnie, ale kompilacja nadal kończy się niepowodzeniem. Jakieś dalsze przemyślenia? Błędy: diff: /../Podfile.lock: Brak takiego pliku lub katalogu diff: /Manifest.lock: Brak takiego pliku lub katalogu błąd: Piaskownica nie jest zsynchronizowana z Podfile.lock. Uruchom „pod instalację” lub zaktualizuj instalację CocoaPods.
natur3

111

Po wielu próbach udało mi się rozwiązać ten problem. Zmienna $ {PODS_ROOT} nie została ustawiona i wykonuję poniżej sztuczki. Przejdź do Fazy kompilacji -> Sprawdź Manifest kapsuły i zamień

diff "${PODS_ROOT}/../Podfile.lock" "${PODS_ROOT}/Manifest.lock" > /dev/null

do

diff "${SRCROOT}/Podfile.lock" "${SRCROOT}/Pods/Manifest.lock" > /dev/null

To pomaga mi.


Dlaczego $ PODS_ROOT nie jest skonfigurowany? Czy muszę ponownie zainstalować strąki dla mojego projektu?
Petr Syrov

2
Powodem, dla którego nie ustawiono $ PODS_ROOT, jest głównie to, że plik .xcconfig wygenerowany przez cocoapods nie jest stosowany do celu kompilacji.
Fujia

@Fujia jak zastosować plik .xcconfig?
Darko Romanov,

W moim przypadku ustawiłem PODS_ROOT = ${SRC_ROOT}/Podsw moim xcconfig dla tego samego efektu.
grego

44

Jeśli usuniesz wszystkie strąki z celu w pliku Podfile, np

target 'myTarget' do
pod 'great-stuff', '~> 4.0'  // you deleted this last pod
end

musisz ręcznie usunąć te kroki kompilacji z docelowej fazy kompilacji Xcode :

  • Sprawdź Manifest.lock strąków
  • Kopiuj zasoby kapsuły

Cocoapods (obecna stabilna wersja 0.37.2) nie wykonuje tego czyszczenia po uruchomieniu pod install.


To zadziałało dla mnie. Migrowałem do wersji szybkiej 2 i skomentowałem wszystkie strąki - właśnie włączyłem jedną z nich, zamiast zadzierać z usuwaniem faz kompilacji.
brian.clear

bingo! spędziłem godziny usuwając mój obszar roboczy, ponownie instalując zasobniki itp. i nic więcej nie działało.
Oren

35

Szukałem godzin i znalazłem następujące rozwiązania:

W moim przypadku działa metoda 1.

Metoda 1:

  1. wybierz cel> przejdź do Kompiluj frazy > kliknij Połącz binarne z bibliotekami > usuń wszystkie pliki libPods.a
  2. otwórz Terminal> bezpośrednio do swojego projektu> uruchom:

     pod install
    
  3. wyczyść i zbuduj projekt

ref.1

Metoda 2:

  1. otwórz Terminal> bezpośrednio do swojego projektu> uruchom:

    pod deintegrate --verbose    
    pod install --verbose
    

ref.2

Metoda 3:

  1. wybierz cel> przejdź do Ustawień kompilacji > kliknij znak „+”
  2. dodaj 2 ustawienia zdefiniowane przez użytkownika: [w lewo = w prawo]

    PODS_ROOT = ${SRCROOT}/Pods
    

    i

    PODS_PODFILE_DIR_PATH = ${SRCROOT}/
    

ref.3


Próbowałem wszystkich innych rozwiązań, ale nic nie działało. Metoda 3 działała dla mnie.
Vinner,

25

Usuwanie strąków z projektu i ponowna instalacja działały dla mnie.

Ładne repozytorium GitHub, które może całkowicie usunąć strąki z projektu.

Po prostu zachowaj kopię zapasową pliku PodFile i uruchom poniższe polecenia.

  • gem zainstaluj cocoapods-deintegrate
  • klejnot zainstaluj cocoapods-clean
  • Przejdź do katalogu projektu i uruchom de deintegrate
  • Znowu biegnij kapsuły czyste
  • Uruchom instalację pod

Oczyść i uruchom.


1
Jesteś świetny, tylko twój pracował dla mnie, wielkie dzięki
albert sh

Po uruchomieniu tych poleceń pojawia się komunikat o pomyślnej kompilacji, ale teraz wydaje się, że nic nie działa na symulatorze ani na konsoli. Czy wiesz, dlaczego tak się stało?
Jorge Barrios,

UWAŻAJ: Kompilacja działa, ale strąk wyczyścił cel projektu. Nie wygenerowano archiwów ani nie zbudowano aplikacji.
Ruben

@Ruben zniknięta zawartość ponownie się zregeneruje po instalacji pod
Teena nath Paul

Mimo to po wykonaniu kroków, o których wspomniałeś, moja ikona aplikacji nie jest już wyświetlana jako główny projekt ... Pojawia się tylko logo Cordova i nie jest generowana żadna kompilacja ani archiwum.
Ruben

12

Po zmianie nazwy celu

Moim problemem był xcconfig ze starymi nazwami docelowymi.

  • Poszedł do pliku projektu -> informacje -> konfiguracja
  • Usunięto stary xcconfig (zarówno debugowanie, jak i wydanie)
  • instalacja pod

Zaktualizuje się do nowych.

Również jeśli brakowało plików .h to jest powód (ścieżka wyszukiwania nagłówka pods znajduje się w tych xcconfig)


Wybieranie None działało dla mnie. Walczyłem z tym przez jeden dzień, próbując zintegrować Gimbal2 SDK z projektem Ionic4.
Russ

9

Jeśli widzisz następujący błąd:

diff: /../Podfile.lock: Brak takiego pliku lub katalogu diff: /Manifest.lock: Brak takiego pliku lub błędu katalogu: Piaskownica nie jest zsynchronizowana z Podfile.lock. Uruchom „pod instalację” lub zaktualizuj instalację CocoaPods.

W twoim projekcie jest problem z Cocoapods. Czasami cocoapods mogą się nie zsynchronizować i musisz ponownie zainicjować cocoapods. Powinieneś być w stanie rozwiązać ten błąd przez:

  1. Usuwanie pliku Podfile.lock z folderu projektu
  2. Usuwanie folderu Pods w folderze projektu
  3. Wykonaj „instalację pod” w folderze projektu
  4. Wykonaj „Wyczyść” w Xcode
  5. Odbuduj swój projekt

2
Dziękuję bardzo. Zrobiłeś mi dzień. Nic innego nie działało w moim projekcie Flutter.
nbloqs

To jest jedyne rozwiązanie, które również działało dla mnie. Usuwanie Podfile.lock. Ostrzegamy, że może to spowodować nieoczekiwane aktualizacje wersji.
Santamanno

na trzepot: uruchom pod installswój flutter_project / ios
Kirill Karmazin

5

W moim przypadku ten sam błąd wystąpił po zintegrowaniu aplikacji WatchKit. Aby rozwiązać problem, musiałem dodać oba cele WatchKit w Podfile:

target 'MyProject WatchKit App' do
    platform :watchos, '2.0'
    shared_pods
end

target 'MyProject WatchKit App Extension' do
    platform :watchos, '2.0'
    shared_pods
end

PS: Być może stało się to dla mnie, ponieważ MyProject WatchKit Apppoczątkowo błędnie zainstalowałem strąki jako cel.


Myślę, że
trafiłeś

4

Znalazłem swoje rozwiązanie: Uruchom: pod updatezamiast pod install. Błąd został naprawiony!


Dobrze. Spowoduje to zaktualizowanie przestarzałych zasobników, więc upewnij się, że właśnie tego chcesz.
ff10

4
  • Idź do Fazy ​​budowy -> Sprawdź Manifest. Strąków
  • Zastąpić
${PODS_ROOT}/Manifest.lock

z:

${SRCROOT}/Podfile.lock" "${SRCROOT}/Pods/Manifest.lock

Sprawdź na obrazku:

wprowadź opis zdjęcia tutaj


Działa to dla mnie w wersji Cordova dla systemu iOS, a zaakceptowana odpowiedź nie działała.
Bastian Blankenburg,

3

Napotkałem ten problem z błędnie skonfigurowanym plikiem xcconfig.

Wygenerowany przez Pods xcconfig nie został poprawnie # zawarty w dostosowanym xcconfig, którego używałem. To spowodowało, że $ PODS_ROOT nie został ustawiony, co z diff "/../Podfile.lock" "/Manifest.lock"oczywistych powodów spowodowało błąd , który Pods błędnie interpretuje jako problem z synchronizacją.


3

Dla mnie problem polegał na tym, że stworzyłem nowy cel w mojej aplikacji, kopiując istniejący, ale zapomniałem dodać cel do Podfile. Z jakiegoś powodu sklonowany cel działał przez wiele dni bez problemów, ale po pewnym czasie nie udało mu się zbudować na podstawie tego błędu. Musiałem utworzyć nowy wpis celu dla mojego sklonowanego celu projektu w Podfile, a następnie uruchomić pod install.


2

Jeśli pobierzesz projekt z github lub skopiujesz z innego miejsca, to biblioteka zależności nie istnieje, wystąpi ten problem.

Wystarczy cddo project/project_name directoryw terminalu, użytkowania ls, aby sprawdzić, czy istnieje Podfileplik.

jeśli istnieje Podfile, wystarczy zainstalować zależności:

pod install

Dzięki - bardzo mi to pomogło, kiedy uruchomiłem przykłady trzepotania pobrane z ich strony internetowej github i otrzymałem ten sam błąd. Nawigowałem do folderu ios dla każdego folderu z przykładami trzepotania i zainstalowałem pod, a potem zadziałała aplikacja trzepotania.
Simon

cieszę się że mogę pomóc.
samolot

2

Próbowałem wszystkiego, ale problem nadal występował. Potem to zrobiłem i działało to JAK NAJSZYBCIEJ (tak płynnie, jak to możliwe).

  1. Otwórz plik .xcworkspace.
  2. Zmień na starszą wersję systemu, jeśli używasz Cordova na Xcode 10.
  3. Idź do celu / projektu Podfile. Wybierz Traget wdrażania jako 11+
  4. Następnie zmień debugowanie i zwolnij na Pods-.build/release. To był App.debug / release w moim przypadku. Zdjęcie w załączeniu. Mam nadzieję, że to pomoże. CHange Debug Release in Pod

2

Moja robocza odpowiedź brzmi:

  1. Zainstaluj aktualizuj swoje cocoapods za pomocą tego polecenia: pod update
  2. Zainstaluj nowe zasobniki za pomocą tego polecenia. instalacja pod
  3. Ostatnie polecenie: sudo gem install cocoapods.

2

Z tych odpowiedzi nic mi nie wyszło. Musiałem ponownie utworzyć projekt, uruchamiając cordova platform add ios. To, co zauważyłem, nawet świeżo wygenerowany projekt z (w moim przypadku) zasobnikami Firebase powodował komunikat o błędzie w kółko. Moim zdaniem wygląda na błąd dla niektórych (Firebase, RestKit) kapsuł w Xcodelub CocoaPods. Aby uwzględnić strąki, mógłbym po prostu edytować swojeconfig.xml i uruchomićcordova platform add iOS , co zrobiło wszystko dla mnie automatycznie. Nie jestem jednak pewien, czy zadziała we wszystkich scenariuszach.

Edycja: Miałem Podfilez poprzedniego iOS/ Xcode, ale najnowsze na dziś mają # DO NOT MODIFY -- auto-generated by Apache Cordovaw Podfile. Zapaliło to światło w mojej głowie, aby wypróbować podejście. Wygląda trochę banalnie, ale działa i moje Firebasefunkcje się sprawdziły.


1
To jedyna metoda, która zadziałała dla mnie. Próbowałem wszystkich innych. Usunąłem platformy i wykonałem ponowną instalację „cordova platform add ios”. Też myślę, że miałem poprzednie platformy / iOS, których użyłem na poprzedniej wersji xcode.
Heath

1

To poprawiło mój dzień!

  1. Usuwanie pliku Podfile.lock z folderu projektu
  2. Usuwanie folderu Pods w folderze projektu
  3. Wykonaj instalację pod w folderze projektu
  4. Wykonaj „Wyczyść” w Xcode
  5. Odbuduj swój projekt

Zatwierdzam tę wiadomość! Również jeśli jesteś na Flutter, nie zapomnijflutter pub get
Kirill Karmazin

1

Kiedy to zrobisz

pod install --verbose

Upewnić się:

1- jesteś w odpowiednim katalogu. Najczęściej, gdy pobierany jest projekt github, pojawi się folder główny. Musisz się znaleźć w folderze nazwy projektu (folder główny / folder projektu) w terminalu przed wywołaniem instalacji pod --verbose

2- Usuń stary folder blokady kapsuły, a następnie wyczyść projekt za pomocą xcode clean i wykonaj instalację kapsuły.

3- Aktualizuj swój RVM.


1

Moim problemem była wersja strąków kakaowych, więc zainstalowałem najnowszą wersję z: sudo gem install cocoapods --pre Wtedypod update

To działało dla mnie


1

Kroki, które zadziałały dla mnie ( XCode 8.3.3/XCode 9 beta with a Swift 3.1 project)

 - Navigate to your project directory
 - pod install //which then asks you to do the next step
 - pod repo update //takes a while to update the repo
 - pod update
 - pod install
 - Close Xcode session
 - Open and Clean the project
 - Build/Run

Również make sure you open the .xcworkspace file rather than the project file (.xcodeproj) when working with pods. To powinno rozwiązać wszelkie błędy związane z łączeniem, takie jak „Komenda Apple Mach -O Linker nie powiodła się”


1

Jeśli ubiegasz się o sposób czyszczenia projektu, a Twój projekt nadal występuje błąd.

Możesz przejść do zakładki Fazy ​​kompilacji, a następnie Znajdź Check Pods Manifest.locki usuń skrypt.

Następnie wpisz polecenie, aby usunąć Podstaki folderrm -rf Pods

a następnie musisz usunąć plik Podfile.lock za pomocą polecenia rm Podfile.lock

Prawdopodobnie w oparciu o sytuację, w której możesz usunąć plik your_project_name.xcworkspace

Na koniec potrzebujesz polecenia, aby zainstalować Pod pod install --repo-update .

Mamy nadzieję, że to rozwiązanie Cię wymyśli. Miłego kodowania :)


1

Miałem ten sam błąd. Najpierw aktualizuję cocoapody za pomocą

sudo gem install cocoapods

następnie zainstaluj pods za pomocą polecenia instalacji Pod działało dla mnie.


1

Wykonaj następujące czynności:

1: Usuwanie pliku Podfile.lock z folderu projektu

2: Usuwanie folderu Pods w folderze projektu

3: Uruchom „instalację pod” w folderze projektu

4: Wykonaj „Wyczyść” w Xcode

5: Odbuduj swój projekt


1

Dla mnie, pracując w trzepotaniu, konfiguracja nie została automatycznie dodana z powodu istniejącej konfiguracji.

Dodawanie #include "Pods/Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"do Flutter/Release.xcconfigiFlutter/Debug.xcconfig

rozwiązany problem.


1

Uruchom to, a twoje błędy znikną

rm -rf Pods && gem install cocoapods && pod install


1

Napotkałem ten problem w projekcie Flutter. Właśnie otworzyłem moduł iOS w xCode i działał na mnie Build Clean Folder.


1

Spróbuj ustawić poprawny cel w, Podfilea następnie uruchom pod updatelubpod install

docelowa platforma ios


1

Miałem ten sam problem z Ionic-3, zrobiłem kilka wyżej wymienionych kroków, ale żaden z nich nie działał dla mnie.

Dla Ionic Usuń platformę ios

$ ionic cordova platform remove ios
$ ionic cordova platform add ios

Otwórz xcode, a następnie spróbuj zbudować. to zadziałało dla mnie :-)


1

Naprawiłem problem z aplikacją ionic, instalując Cordova w wersji 9, wypróbowałem wszystkie powyższe rozwiązania, głównie połączone z xcode, które nie działały w mojej aplikacji ionic

Jeśli ktoś ma ten sam problem z aplikacją Cordova, uprzejmie zaktualizuj Cordova 9, aby to naprawić


0

jeśli twoje strąki są puste

  1. usuń zasoby kopiujących zasobników i sprawdź manifest zasobników.
  2. zablokuj ustawienia faz kompilacji projektu
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.