Ошибка: "Песочница не синхронизирована с Podfile.lock..." после установки RestKit с cocoapods
Я столкнулся со странной проблемой после установки RestKit с cocoapods. После разрешения зависимости RestKit для моего проекта с помощью cocoapods и попытки его построения я сталкиваюсь с этой ошибкой:
Песочница не синхронизирована с Podfile.lock. Запустите "pod install" или обновите установку CocoaPods.
Я попытался запустить pod install
, но без изменений.
Вот несколько снимков: ![enter image description here]()
![enter image description here]()
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
Ответы
Ответ 1
Я смог исправить это, обновив CocoaPods.
I. Очистка проекта
- В навигаторе проекта выберите свой проект
- Выберите цель
- Удалить все libPods *.a в Фазы сборки > Связать двоичные файлы с библиотеками
II. Обновление CocoaPods
- Запустите терминал и перейдите в каталог проекта.
- Обновление CocoaPods с помощью команды
pod install
Ответ 2
После многих попыток мне удалось исправить эту проблему. Переменная ${PODS_ROOT} не была установлена, и я делаю это ниже трюка.
Перейдите к разделу "Фазы сборки" → "Проверяйте подписи Manifest.lock" и замените
diff "${PODS_ROOT}/../Podfile.lock" "${PODS_ROOT}/Manifest.lock" > /dev/null
to
diff "${SRCROOT}/Podfile.lock" "${SRCROOT}/Pods/Manifest.lock" > /dev/null
Это помогает мне.
Ответ 3
Если вы удалите все контейнеры из своей цели в подфайл, например.
target 'myTarget' do
pod 'great-stuff', '~> 4.0' // you deleted this last pod
end
вам нужно вручную удалить эти шаги сборки с целевой цели Xcode Фазы сборки:
- Проверить подписи Manifest.lock
- Копировать ресурсы Pod
Cocoapods (текущая стабильная версия 0.37.2) не выполняет эту очистку при запуске pod install
.
Ответ 4
Удаление контейнеров из проекта и повторная установка работали для меня.
Существует хороший репозиторий GitHub, который может полностью удалить контейнеры из проекта.
Просто держите резервную копию своего подфайла и выполняйте команды ниже.
- gem install cocoapods-deintegrate
- gem install cocoapods-clean
- Перейдите в каталог проекта и запустите pod deintegrate
- Снова запустите pod clean
- Запустите pod install
Очистите и запустите.
Ответ 5
Я искал часы, и я нашел следующие решения:
В моем случае способ 1 работает.
Способ 1:
- выберите цель> перейдите к Фраза сборки > нажмите ссылку Бинарные с библиотеками > удалить все файлы libPods.a
-
откройте терминал> прямо к вашему проекту> запустите:
pod install
-
очистить и построить проект
Ссылку 1
Способ 2:
-
откройте терминал> прямо к вашему проекту> запустите:
pod deintegrate --verbose
pod install --verbose
задания 2
Способ 3:
- выберите цель> перейдите в настройки сборки > нажмите знак "+"
-
добавить 2 пользовательские настройки: [слева = справа]
PODS_ROOT = ${SRCROOT}/Pods
а также
PODS_PODFILE_DIR_PATH = ${SRCROOT}/
Ref.3
Ответ 6
После изменения имени цели
Моя проблема заключалась в xcconfig со старыми именами целей.
- Прошел файл проекта → info → configuration
- Удален старый xcconfig (как Debug, так и Release)
- pod install
Он обновится до новых.
Также, если у вас отсутствовали файлы .h, причина в том, что причина (путь поиска заголовков pods находится в этих xcconfig)
Ответ 7
Если вы видите ошибку, подобную следующей:
diff:/../Podfile.lock: такого файла или каталога нет. diff: /Manifest.lock: такого файла или каталога нет: песочница не синхронизирована с Podfile.lock. Запустите 'pod install' или обновите установку CocoaPods.
Тогда есть проблема с Cocoapods в вашем проекте. Иногда Cocoapods могут выйти из синхронизации, и вам необходимо повторно инициировать Cocoapods. Вы должны быть в состоянии решить эту ошибку:
- Удаление файла Podfile.lock в папке вашего проекта
- Удаление папки Pods в папке вашего проекта
- Выполните "pod install" в папке вашего проекта
- Сделайте "Очистку" в Xcode
- Перестрой свой проект
Ответ 8
В моем случае, я получил такую же ошибку после интеграции приложения 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: Возможно, это произошло для меня, потому что я ошибочно установил контейнеры для MyProject WatchKit App
цели изначально.
Ответ 9
Я столкнулся с этой проблемой с неверно сконфигурированным файлом xcconfig.
Созданный в Pods xcconfig был некорректно # включен в настройку xcconfig, который я использовал. Это привело к тому, что $PODS_ROOT не был установлен, что привело к ошибке diff "/../Podfile.lock" "/Manifest.lock"
по очевидным причинам, которые Pods неправильно истолковывает как проблему синхронизации.
Ответ 10
Для меня проблема заключалась в том, что я создал новую цель в своем приложении, дублируя существующую, но забыл добавить цель в Podfile
. По какой-то причине клонированная цель работала в течение нескольких дней без проблем, но через некоторое время она не смогла построить по этой ошибке. Мне пришлось создать новую целевую запись для моей клонированной цели проекта в подфайле, а затем запустить pod install
.
Ответ 11
Я нашел свое решение: Run: pod update
вместо pod install
. Ошибка была исправлена!
Ответ 12
Если вы загружаете проект из github или копируете из другого места, то библиотека зависимостей не существует, возникнет эта проблема.
Вам просто нужно cd
к project/project_name directory
в терминале, используйте ls
, чтобы проверить, есть ли Podfile
файл.
если существует Podfile
, вам просто нужно установить зависимости:
pod install
Ответ 13
Я перепробовал все, но проблема осталась. После этого я сделал это, и он работал как можно скорее (как можно более гладко).
- Откройте файл .xcworkspace.
- Перейдите на устаревшую систему сборки, если используете Cordova в Xcode 10.
- Перейти к цели/проекту Podfile. Выберите метку развертывания как 11+
- Затем измените отладку и выпустите на Pods-.build/release. Это был App.debug/release в моем случае. Надеюсь, поможет.
![CHange the Debug Release in Pod]()
Ответ 14
Мой рабочий ответ:
- Установите обновление ваших cocoapods с помощью этой команды: pod update
- Установите ваши новые модули по этой команде. под установку
- Последняя команда: sudo gem install cocoapods.
Ответ 15
Просто очистите проект и снова создайте его в Xcode, это сработало для меня. Не нужно снова устанавливать программу.
Ответ 16
Когда вы делаете
pod install --verbose
убедитесь, что:
1- вы находитесь в правильном каталоге. В большинстве случаев, когда загружается проект github, будет создана основная папка. Вы должны находиться внутри фактической папки имени проекта (папка главного каталога/проекта) в терминале перед вызовом pod install --verbose
2- Удалите старую папку блокировки контейнера, затем очистите проект, используя xcode clean и выполните установку pod.
3. Обновляйте свой rvm.
Ответ 17
Моя проблема заключалась в версии cocoa pods, поэтому я установил последнюю версию:
sudo gem install cocoapods --pre
Тогда pod update
Это сработало для меня
Ответ 18
Шаги, которые работали для меня (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
Ответ 19
Если вы применяете способ Очистка проекта и ваш проект по-прежнему является ошибкой.
Вы можете перейти на вкладку Сборка фаз, а затем найти Check Pods Manifest.lock
и удалить script.
Затем введите команду для удаления папки Pods
, например, rm -rf Pods
а затем вам нужно удалить Podfile.lock командой rm Podfile.lock
Возможно, основываясь на ситуации, вы можете удалить файл your_project_name.xcworkspace
Наконец, вам нужна команда для установки Pod pod install --repo-update
.
Надеюсь, это решение встретит вас. Счастливое кодирование:)
Ответ 20
У меня была такая же ошибка. Сначала я обновляю cocoapods, используя
sudo gem install cocoapods
затем установить модули с помощью команды установки Pod работал для меня.
Ответ 21
Для меня, работая во флаттере, конфигурация не была добавлена автоматически из-за существующей конфигурации.
Добавление #include "Pods/Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"
в Flutter/Release.xcconfig
и Flutter/Debug.xcconfig
решил проблему.
Ответ 22
- Перейдите на этапы сборки → Check Pods Manifest.lock
-
Заменить
${PODS_ROOT}/Manifest.lock
с:
${SRCROOT}/Podfile.lock" "${SRCROOT}/Pods/Manifest.lock
Проверьте изображение:
![enter image description here]()
Ответ 23
Я столкнулся с этой проблемой в проекте Flutter. Я только что открыл модуль iOS в xCode и у меня сработала Build Clean Folder.
Ответ 24
если ваши контейнеры пусты
- удалить ресурсы контейнеров копий и проверить манифест контейнеров.
- заблокировать настройки фаз сборки вашего проекта
Ответ 25
Моя проблема заключалась в том, что мой разработчик добавил блок в проект, а затем я вытягиваю проект с помощью github, тогда произошла ошибка. Я запустил pod install, и он обновил стручки новой библиотекой, которая была добавлена моим разработчиком. надеюсь, что это поможет.
Ответ 26
У меня такая же проблема с последним компонентом ComponentKit 0.14.
Причина в том, что PODS_ROOT не был установлен, и я нашел, что решение добавляет строку в ComponentKit.xcconfig:
#include "../Pods/Target Support Files/Pods-ComponentKit/Pods-ComponentKit.debug.xcconfig"
Ответ 27
Проверьте в своем проекте, что Pods, возможно, не нажаты на Git. Поэтому очевидно, что компиляция будет нарушена, так как не может найти каталог Pods
diff "${PODS_ROOT}/../../Podfile.lock" "${PODS_ROOT}/Manifest.lock" > /dev/null
Я решил это, выпустив pod install
в Терминале после перехода к моей директории проекта.
В самом деле, у меня была ошибка cannot find pod command
, что означало, что cocoapods
не были установлены. Это фиксируется с помощью gem install cocoapods
. Если вы получаете какую-либо ошибку зависимости, просто установите каждую команду, о которой не сообщается. В моем случае мне пришлось обновить Ruby, после чего cocoapods
были установлены правильно, и я смог использовать команду pod install
.
PS. Если у вас есть каталог Pods, попробуйте pod update
. Возможно, ваша библиотека нуждается в обновлении.
Ответ 28
У меня была эта проблема, когда я пытался удалить ранее установленную библиотеку
@Ответ Michal помог мне
Удалить или удалить ранее добавленную библиотеку: cocoapods
Ответ 29
Я случайно удалил, а затем распакую обратно папку, откуда я пытался установить pod.
Это было так:
1) cd в папке проекта
2) заархивируйте свой проект
3) удалить папку проекта
4) распаковать папку назад
5) отныне даже у вас есть эта папка, вы должны вернуться в эту папку снова с терминала
Ответ 30
У меня была ошибка:
diff:/../Podfile.lock: такого файла или каталога нет. diff: /Manifest.lock: такого файла или каталога нет: песочница не синхронизирована с Podfile.lock.
Я впервые запросил у Bitbucket. Я очистил свой проект и попробовал все (установка pod, обновление pod и т.д.), Но ни один из приведенных выше ответов не помог мне. Затем я просто проверяю путь, по которому я устанавливал модуль, исправлял его и устанавливал снова, он просто работал. Убедитесь, что указали путь непосредственно перед тем, где существуют.xcodeproj или.xcworkspace (если он уже существует). Может быть, кто-то получит выгоду от этого.