Ошибка: «Песочница не синхронизирована с Podfile.lock…» после установки RestKit с cocoapods


232

Я столкнулся со странной проблемой после установки RestKit с cocoapods. После разрешения зависимости RestKit для моего проекта с помощью cocoapods и попытки его построить я сталкиваюсь с этой ошибкой:

Песочница не синхронизирована с Podfile.lock. Запустите «pod install» или обновите установку CocoaPods.

Я пытался бежать pod install, но без изменений.

Вот несколько снимков: введите описание изображения здесь

введите описание изображения здесь

  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
Вы пробовали, Run 'pod install' or update your CocoaPods installation.как подсказывает ошибка?
Уэйн

3
абсолютно, я сделал это, но безуспешно
Хашем Aboonajmi

1
Можете выложить версию Restkit в Podfile.lockи в Pods/Manifest.lock? Эта ошибка возникает, когда они не совпадают.
MishieMoo

да, я сравнил их, они абсолютно идентичны.
Всевышний Aboonajmi

Ошибка над ошибкой «песочница»: «diff: команда не найдена». Я не знаю, может ли переустановка diff решить проблему, но это может быть намек на то, что происходит.
Громовой Кролик

Ответы:


318

Я смог исправить это, обновив CocoaPods.

I. Очистка проекта

  1. В навигаторе проекта выберите свой проект
  2. Выберите цель
  3. Удалите все libPods * .a в Этапы сборки> Связать двоичные файлы с библиотеками

II. Обновление CocoaPods

  1. Запустите терминал и перейдите в каталог вашего проекта.
  2. Обновите CocoaPods с помощью команды pod install

3
работал как шарм, вы могли бы обновить свой ответ, скажем, запустить команду pod install
ManicMonkOnMac

18
Что касается I.3 - вы имели в виду раздел «Этапы сборки> Связать двоичные файлы с библиотеками»?
kraftydevil

1
Когда я запустил команду pod install в каталоге проекта, я получил следующее предупреждение: использование неявных источников устарело. Чтобы продолжить использовать все источники, которые в настоящее время находятся на вашем компьютере, добавьте в начало вашего подфайла следующее: source ' github.com/CocoaPods/Specs.git ' Я также добавил эту ссылку в файл pod, но произошло то же самое. пожалуйста, предложите.
Митеш Хатри

В дополнение к этому мне пришлось удалить все фазы сборки, связанные с CocoaPod, такие как «Check Pods Manifest.lock» и «Copy Pods Resources».
JVillella

17
@ Валерий Павлов Эти шаги сработали, но после успешной очистки проекта сборка сразу завершается неудачей с теми же тремя ошибками, от которых я не могу избавиться. Я попытался полностью удалить все cocoapods, переустановить, обновить, сделать все это с перезапусками xcode и т. Д. Все это в терминале работает успешно, но сборка продолжает давать сбой. Есть еще мысли? Ошибки: diff: /../Podfile.lock: нет такого файла или каталога diff: /Manifest.lock: нет такого файла или каталога: ошибка: песочница не синхронизирована с Podfile.lock. Запустите «pod install» или обновите установку CocoaPods.
natur3

111

После многих попыток мне удалось решить эту проблему. Переменная $ {PODS_ROOT} не была установлена, и я делаю трюк ниже. Перейдите в Фазы сборки -> Проверьте Pods Manifest.lock и замените

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

в

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

Это помогает мне.


Почему $ PODS_ROOT не настроен? Нужно ли переустанавливать модули для моего проекта?
Петр Сыров

2
Причина, по которой $ PODS_ROOT не был задан, заключается главным образом в том, что файл .xcconfig, сгенерированный cocoapods, не применяется к цели сборки.
Фуцзя

@Fujia, как мне применить файл .xcconfig?
Дарко Романов

В моем случае я установил PODS_ROOT = ${SRC_ROOT}/Podsв моем xcconfig для того же эффекта.
Грего

44

Если вы удалите все пакеты из вашей цели в Podfile, например,

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

вам нужно будет вручную удалить эти шаги сборки из ваших целевых фаз сборки Xcode :

  • Проверьте Pods Manifest.lock
  • Копировать Pod ресурсы

Cocoapods (текущая стабильная версия 0.37.2) не выполняет эту очистку при запуске pod install.


Это сработало для меня. Я перешел на swift 2 и закомментировал все модули - я просто включил один из них, вместо того чтобы возиться с удалением этапов сборки.
brian.clear

лото! я потратил часы на удаление своего рабочего пространства, переустановку модулей и т. д.
Орен

35

Я искал несколько часов и нашел следующие решения:

В моем случае способ 1 работает.

Способ 1:

  1. выберите цель> перейдите к Фраза сборки > нажмите ссылку Бинарные с библиотеками > удалить все файлы libPods.a
  2. откройте терминал> прямо к вашему проекту> запустите:

     pod install
    
  3. очистить и построить проект

Ссылку 1

Способ 2:

  1. откройте терминал> прямо к вашему проекту> запустите:

    pod deintegrate --verbose    
    pod install --verbose
    

задания 2

Способ 3:

  1. выберите цель> перейдите в настройки сборки > нажмите «+» знак
  2. добавить 2 пользовательские настройки: [слева = справа]

    PODS_ROOT = ${SRCROOT}/Pods
    

    и

    PODS_PODFILE_DIR_PATH = ${SRCROOT}/
    

Ref.3


Я пробовал все другие решения, но ничего не получалось. Метод 3 работал для меня.
Виннер

25

Удаление пакетов из проекта и переустановка работали для меня.

Есть хороший репозиторий GitHub, который может полностью удалить модули из проекта.

Просто сохраните резервную копию вашего PodFile и выполните следующие команды.

  • драгоценный камень установить cocoapods-deintegrate
  • драгоценный камень установить cocoapods-чистые
  • Перейдите в каталог проекта и запустите pod deintegrate.
  • Снова запустите стручок
  • Запустить установку pod

Очистить и запустить.


1
Вы великолепны, только ваш работал на меня, большое спасибо
Альберт

После выполнения этих команд я получаю сообщение об успешной сборке, но теперь на симуляторе и на консоли ничего не запускается Вы знаете, почему это произошло?
Хорхе Барриос

БУДЬТЕ ВНИМАТЕЛЬНЫ: Сборка работает, но очистка стручка не достигла цели проекта. Архивы не создавались и не создавались приложения.
Рубен

@Ruben исчезнувший контент снова будет восстановлен при "установке pod"
Teena nath Paul

Несмотря на это, после выполнения упомянутых вами шагов значок моего приложения больше не отображается в качестве основного проекта ... Отображается только логотип cordova, а сборка или архив не создаются.
Рубен

12

После изменения названия цели

Моя проблема была в xcconfig со старыми целевыми именами.

  • Пошел в файл проекта -> информация -> конфигурация
  • Удален старый xcconfig (как Debug, так и Release)
  • под установку

Это будет обновлять до новых.

Также, если вы пропустили .h файлы, это является причиной (путь поиска заголовка pods находится в этих xcconfig)


Выбор Noneработал и для меня. Я боролся с этим целый день, пытаясь интегрировать Gimbal2 SDK в проект Ionic4.
Расс

9

Если вы видите ошибку, подобную следующей:

diff: /../Podfile.lock: Нет такого файла или каталога. diff: /Manifest.lock: Нет такого файла или каталога. Ошибка: Песочница не синхронизирована с Podfile.lock. Запустите «pod install» или обновите установку CocoaPods.

Тогда есть проблема с Cocoapods в вашем проекте. Иногда Cocoapods могут выйти из синхронизации, и вам необходимо повторно инициировать Cocoapods. Вы должны быть в состоянии решить эту ошибку:

  1. Удаление файла Podfile.lock в папке вашего проекта
  2. Удаление папки Pods в папке вашего проекта
  3. Выполните «pod install» в папке вашего проекта
  4. Сделайте «Очистку» в Xcode
  5. Перестрой свой проект

2
Огромное спасибо. Вы сделали мой день. Ничто другое не работало в моем проекте Flutter.
nbloqs

Это единственное решение, которое сработало и для меня. Удаление Podfile.lock. Имейте в виду, что при этом вы можете получить неожиданные обновления версий.
santamanno

для трепетания: беги pod installв своем flutter_project / ios
Кирилл Кармазин

5

В моем случае я получил ту же ошибку после интеграции приложения WatchKit. Для решения проблемы мне нужно было добавить обе цели WatchKit в 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: Может быть, это произошло для меня, потому что я по ошибке установил pods для MyProject WatchKit Appцели изначально.


Я думаю, что вы ударили гвоздь по голове;)
Hackmodford

4

Я нашел свое решение: Run: pod updateвместо pod install. Ошибка была исправлена!


Хорошо. Это обновит устаревшие модули, поэтому убедитесь, что это именно то, что вы хотите.
ff10

4
  • Перейти к этапам сборки -> Check Pods Manifest.lock
  • замещать
${PODS_ROOT}/Manifest.lock

с участием:

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

Проверьте изображение:

введите описание изображения здесь


Это работало для меня в сборке Cordova iOS, в то время как принятый ответ не работал.
Бастиан Бланкенбург

3

Я столкнулся с этой проблемой с неправильно настроенным файлом xcconfig.

Xcconfig, сгенерированный Pods, был неправильно #include в настройке xcconfig, которую я использовал. Это привело к тому, что $ PODS_ROOT не был установлен, что привело к сбою diff "/../Podfile.lock" "/Manifest.lock", по очевидным причинам, который Pods неправильно истолковывает как проблему синхронизации.


3

Для меня проблема заключалась в том, что я сделал новую цель в своем приложении, продублировав существующую, но забыл добавить цель в Podfile. По какой-то причине клонированная цель работала в течение нескольких дней без проблем, но через некоторое время ее не удалось создать из-за этой ошибки. Мне нужно было создать новую запись цели для моей клонированной цели проекта в Podfile, а затем запустить pod install.


2

Если вы загружаете проект из github или копируете из другого места, то библиотека зависимостей не существует, возникнет эта проблема.

Вам просто нужно cdк project/project_name directoryв терминале, использование , lsчтобы проверить , есть лиPodfile файл.

если существует Podfile, вам просто нужно установить зависимости:

pod install

Спасибо - это мне очень помогло, когда я запускал примеры флаттера, скачанные с их сайта github, и получил ту же ошибку. Я переместился в папку ios для каждой папки примера флаттера и выполнил установку модуля, а затем приложение флаттера заработало.
Симон

рад помочь вам.
самолет

2

Я перепробовал все, но проблема осталась. После этого я сделал это, и он работал как можно скорее (как можно более гладко).

  1. Откройте файл .xcworkspace.
  2. Перейдите на устаревшую систему сборки, если используете Cordova в Xcode 10.
  3. Перейти к цели / проекту Podfile. Выберите «Развертывание» как 11+
  4. Затем измените отладку и отпустите на Pods-.build/release. Это был App.debug / release в моем случае. Надеюсь, поможет. Измените выпуск отладки в Pod

2

Мой рабочий ответ:

  1. Установите обновление своих cocoapods с помощью этой команды: pod update
  2. Установите ваши новые модули этой командой. под установку
  3. Последняя команда: sudo gem install cocoapods.

2

Из этих ответов у меня ничего не получилось. Пришлось снова создать проект, запустив cordova platform add ios. Что я заметил, даже недавно сгенерированный проект с (в моем случае) модулями Firebase вызывал сообщение об ошибке снова и снова. На мой взгляд, похоже на ошибку для некоторых (Firebase, RestKit) модулей в Xcodeили CocoaPods. Чтобы включить стручки, я мог бы просто отредактировать мой config.xmlи запуститьcordova platform add iOS , что делало все для меня автоматически. Не уверен, что это будет работать во всех сценариях, хотя.

Изменить: у меня был Podfileиз предыдущих iOS/ Xcode, но новейшие на сегодняшний день # DO NOT MODIFY -- auto-generated by Apache Cordovaв Podfile. Это включило свет в моей голове, чтобы попробовать подход. Выглядит немного тривиально, но работает и мои Firebaseфункции проработаны.


1
Это единственный метод, который работал для меня. Перепробовал все остальные. Я удалил платформы и сделал переустановку «Cordova Platform Add IOS». Я тоже думаю, что у меня были предыдущие платформы / IOS, которые я использовал в предыдущей версии xcode.
Хит

1

Это сделало мой день!

  1. Удаление файла Podfile.lock в папке вашего проекта
  2. Удаление папки Pods в папке вашего проекта
  3. Выполните установку pod в папке вашего проекта
  4. Сделайте «Очистку» в Xcode
  5. Перестрой свой проект

Я одобряю это сообщение! Также, если вы находитесь на Флаттере, не забудьтеflutter pub get
Кирилл Кармазин

1

Когда вы делаете

pod install --verbose

удостовериться:

1- вы находитесь в правильном каталоге. В большинстве случаев, когда загружается проект GitHub, будет главная папка. Вы должны быть внутри фактической папки с именем проекта (masterfolder / папка проекта) в терминале, прежде чем вызывать pod install --verbose

2. Удалите старую папку блокировки pod, затем очистите проект с помощью xcode clean & do pod install.

3- Держите ваш rvm обновленным.


1

Моя проблема была версия стручки какао , так что я установлена последняя версия с: sudo gem install cocoapods --pre Тогдаpod update

Это сработало для меня


1

Шаги, которые работали для меня ( 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

Также make sure you open the .xcworkspace file rather than the project file (.xcodeproj) when working with pods. Это должно решить любые ошибки со связыванием, такие как «Apple Mach -O Linker fail»


1

Если вы подаете заявку на способ очистки проекта и ваш проект по-прежнему ошибка.

Вы можете перейти на вкладку Build Phases, а затем найти Check Pods Manifest.lockи удалить скрипт.

Затем введите команду, чтобы удалить папку, Podsкак этоrm -rf Pods

а затем вам нужно удалить Podfile.lock по команде rm Podfile.lock

Возможно, на основе ситуации вы можете удалить файл your_project_name.xcworkspace

Наконец, вам нужна команда для установки Pod pod install --repo-update.

Надеюсь, это решение придет с вами. Удачного кодирования :)


1

У меня была такая же ошибка. Сначала я обновляю cocoapods, используя

sudo gem install cocoapods

тогда установка модулей с помощью команды установки Pod работала для меня.


1

Пожалуйста, сделайте следующие шаги:

1: Удаление файла Podfile.lock в папке вашего проекта

2: Удаление папки Pods в папке вашего проекта

3: Выполните «pod install» в папке вашего проекта

4. Сделайте «Очистку» в Xcode

5: восстановить ваш проект


1

Для меня, работая во флаттере, конфигурация не была добавлена ​​автоматически из-за существующей конфигурации.

Добавление #include "Pods/Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"к Flutter/Release.xcconfigиFlutter/Debug.xcconfig

решил проблему.



1

Я столкнулся с этой проблемой в проекте Flutter. Я только что открыл iOS-модуль в xCode, и Build Clean Folder работал на меня.


1

Попробуйте установить правильную цель, Podfileа затем запустите pod updateилиpod install

целевая платформа ios


1

У меня была та же проблема с Ionic-3, я сделал несколько вышеупомянутых шагов, но ни один из них не работал для меня.

Для Ionic Удалить платформу ios

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

Откройте xcode, затем попробуйте собрать. это сработало для меня :-)


1

Исправил мою проблему с приложением ionic, установив Cordova версии 9, попробовал все вышеупомянутое решение, в основном связанное с xcode, но не работало для моего приложения ionic

Если кто-то сталкивается с той же проблемой с приложением Cordova, пожалуйста, обновите Cordova 9, чтобы исправить это.


0

если ваши стручки пусты

  1. удалить ресурсы pods и проверить манифест pods.
  2. блокировка от фазы сборки настроек вашего проекта
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.