Ответ 1
У меня была аналогичная проблема, когда я внес серьезные изменения в мой подфайл. Мое решение состояло в том, чтобы удалить файл рабочей области и снова запустить pod install
:
rm -rf MyProject.xcworkspace
pod install
Я не могу создать проект, который использует CocoaPods. Я получаю следующие ошибки:
diff: /../Podfile.lock: No such file or directory
diff: Manifest.lock: No such file or directory error:
The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.`
$ pod install
, похоже, отлично работает и добавляет проект Pods
к моей рабочей области. Я пробовал $ pod update
, но это не помогает.
Кажется, что PODS_ROOT
не устанавливается.
Podfile:
platform :ios, '6.0'
workspace 'Example.xcworkspace'
xcodeproj 'example/Example.xcodeproj'
pod 'TestFlightSDK', '~> 1.3.0-beta.5'
pod 'TestFlightLogger', '~> 0.0.2'
pod 'CocoaLumberjack', '~> 1.6.2'
pod 'Reachability', '~> 3.1.0'
pod 'SBJson', '~> 3.2'
pod 'MKMapViewZoom', '~> 1.0.0'
У меня была аналогичная проблема, когда я внес серьезные изменения в мой подфайл. Мое решение состояло в том, чтобы удалить файл рабочей области и снова запустить pod install
:
rm -rf MyProject.xcworkspace
pod install
TL;DR:. Скорее всего, ошибка с Xcode и закрытие и повторное открытие проекта - это, как правило, самое простое исправление. Предполагая, что все остальное настроено правильно.
Иногда я получаю ту же ошибку при удалении каталога Pods
, а затем запускаю pod install
.
В информации о проекте все выглядит правильно:
Однако, когда я перехожу к целевым настройкам User-Defined Build, запись PODS_ROOT либо полностью отсутствует, либо пуста для одной или нескольких конфигураций. Это вызывает следующую ошибку при сборке:
Самое простое исправление - закрыть проект в Xcode и снова открыть его.
Если вы перейдете к целевому Настройки сборки и отфильтруете Все, теперь вы увидите запись PODS_ROOT
без ошибок:
Теперь он должен строиться без ошибок.
Примечание. Даже эта проблема с официальным AFSetworking iOS для Cocoa Pods 'имеет такую проблему, что заставляет меня думать, что это ошибка с Xcode.
Альтернативное решение заключается в том, чтобы вручную изменить конфигурацию на None
, а затем вернуться к исходному значению:
Перейдите к целевому Build Settings
и убедитесь, что значение PODS_ROOT
равно ${SRCROOT}/Pods
в разделе "Пользовательский".
update: a podfile.lock
необходим, а не должен игнорироваться при управлении версиями, он отслеживает версии библиотек, установленных на определенной установке pod. (Это похоже на gemfile.lock и composer.lock для управления зависимостями rails и php, соответственно). Чтобы узнать больше, прочитайте docs. Кредит отправляется cbowns.
В моем случае я сделал то, что я делал уборку дома для своего проекта (т.е. разветвлял интеграционные тесты как подмодуль git.. удаление дубликатов файлов и т.д.).. и подтолкнуло конечный результат к git удаленное репо.. все клиенты, которые клонировали мое репо, страдали от вышеуказанной ошибки. Вдохновленный комментарием Hlung выше, я понял, что были некоторые скрипки pod-скриптов, которые пытались запустить против некоторых несуществующих файлов. Поэтому я перешел на фазу сборки цели и удалил все оставшиеся фазы, которые имели какое-либо отношение к cocoa pods (и комментарий Hlung он предлагает удалить Copy Pods Manifest.lock
и copy pod resources
.. мои были названы разными, может быть, b/c я используя Xcode 5. Точка состоит в том, чтобы удалить эти фаны сборки.)
Итак, кажется, что CocoaPods не установил конфигурацию для моего проекта. Они должны основываться на Pods.xcconfig
, который находится в Pods/Target Support Files/Pods
. Чтобы заставить это работать, я должен был сделать следующее:
У меня была другая ошибка сборки, которая может быть или не быть связана. Путь к оболочке script, определенный в Copy Pods Resources
, был неправильным.
"${SRCROOT}/Pods/Pods-resources.sh"
Решено неправильно. Казалось, что SRCROOT добавляет дополнительный каталог, который не существовал на пути. Поэтому я жестко закодировал путь к папке проекта.
Это позволило мне создать.
Почему так много вещей, которые должны сэкономить ваше время, в конечном итоге съесть его?
Примечание: Пожалуйста, см. @abood ответ для объяснения.
У меня такая же проблема, как это работает:
Я избавился от одной и той же проблемы, выполнив следующие шаги:
Xcode->Product->Clean Build Folder
(удерживайте alt key на продукте, чтобы увидеть его)Xcode->Window->Organizer
и выберите вкладку Projects
. Затем найдите проект и удалить derived data
проекта.Просто разрешите, выполнив следующие действия:
(sudo) gem install cocoapods
pod install
очистить и построить
похоже, проблема была вызвана тем, что один из наших членов команды имеет более новую установку gem cocoapods.
Если бы тот же самый вопрос, говорящий /Pods/Pods -resources.sh: Нет такого файла или каталога даже после удаления файлов и т.д., связанных с контейнерами.
Избавьтесь от него, перейдя в цель → Сформировать фазы, а затем удалив фазу сборки "Копировать ресурсы подстраки".
У меня была такая же проблема в последнее время. Я пробовал все возможные советы, ничего, кроме этого плагина, работал у меня:
https://github.com/kylef/cocoapods-deintegrate
После очистки текущей интеграции cocoapods, что нужно удалить, это Podfile, Podfile.lock и .xcworkspace. Затем просто установите все заново.
Надеюсь, я помогу кому-то с этим.
Эта проблема решена.
Я думаю, что здесь есть ошибка.
Для меня я удаляю папку Pods
и Podfile.lock
и снова pod install
, чтобы решить проблему.
Это сообщение игнорируется..: (
Это было не очень интуитивно. Я перешел к настройкам базового проекта, а затем жестко закодировал пути к моим pod.lock и pod.manifest в разделе "Проверяющие элементы" Manifest.lock, потому что они остались в разных папках на самом деле, поэтому мои пути выглядели так:
diff "/Users/admin/Desktop/Experimental/projectfolder/Podfile.lock" "/Users/admin/Desktop/Experimental/projectfolder/Pods/Manifest.lock" > /dev/null
if [[ $? != 0 ]] ; then
cat << EOM
error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.
EOM
exit 1
fi
Вы можете попробовать следующее. Это исправлено для меня.
Плагины будут удалены из cocoapods для вашего проекта и будут установлены только недавно.
В моем случае это была тестовая цель, из которой я удалил все контейнеры из моего podfile (потому что я добавил модули, которые позже понял, что мне не нужно в этой цели). Ни одно из других решений здесь не работало для меня.
Перейдите на вкладку "Фазы построения" в настройках проекта для целевого что вызывает проблемы.
Удалите раздел с названием "Проверять подписи манифеста" и "Копировать подписи" Ресурсы "
Внутри "Link Binary With Libraries" удалите libPods-YourTarget.a
В настройках вашего проекта на вкладке "Информация" разверните "Конфигурации" и установите для параметра target значение None для отладки и выпуск. (Это устранит пару недостающих предупреждений файла)
Удалить данные, полученные из проекта (Окно > Проекты > Удалить [next к вашему проекту) и перезапустить Xcode. Создайте/запустите цель.
Это сделало мой день!
pod install
в папке проектаВ моем случае проблема была неправильной. решение здесь http://guides.cocoapods.org/using/troubleshooting.html
Если что-то не работает, прежде всего убедитесь, что вы не полностью переопределяя любые параметры, установленные из файла Pods.xcconfig в настройках ваших проектов. Чтобы добавить значения к параметрам из вашего проектов, добавьте список значений с $(унаследованным).
У меня была эта проблема.
То, как я исправил это, - это полностью удалить приложение Pod и его повторное внедрение. Обязательно удалите "Копировать ресурсы Pods" и "Check Pes Manifest.lock" из "Сформировать фазы" по всем целям, как указано здесь: Как удалить CocoaPods из проекта?
Чтобы избавиться от этой ошибки, мне нужно было удалить каталог Pods
и удалить файл Podfile.lock
.
В моем случае я поставил Podfile.lock и Manifest.lock в исходный элемент управления, но я забыл добавить файлы Pods-Project.debug(release).xcconfig в исходное управление (ошибочно добавляя *.xcconfig к .gitignore), то я получил те же ошибки компиляции по той же причине, PODS_ROOT не устанавливается.
Итак, если цель состоит в том, что после клонирования репо проект может сразу создавать и запускаться, без установки CocoaPods на компьютере, вы либо добавляете всю директорию Pods в исходный элемент управления, либо добавляете Podfile.lock, Manifest.lock, проект xcconfig файлы и файлы Pods xcconfig для управления исходным кодом.
Я не поместил закрытый .xcconfig, который объединяет настройки сборки с настройкой CocoaPods по умолчанию для управления исходным кодом.
Я создал несколько целей, прежде чем когда-либо использовал pods. Позже, когда я начал компилировать другие цели, мне пришлось добавить link_with со списком целей в моем подфайле.
У меня была такая же проблема. После повторного выполнения моих недавних шагов я обнаружил, что причиной << → было добавление объявления цели для новой цели, а затем запуск pod install,
:
Сброс моей ветки и очистка моего проекта не сработали, так как Cocoapods модифицировал хотя бы один файл, который не находится под контролем источника. Я знаю это, потому что, как только я reset удаленная ветвь до фиксации перед добавлением дополнительной цели и повторно клонировала репо, проблема больше не существовала.
Если у вас есть цель watchOS: я обнаружил, что внезапно, когда струйки в расширении часов, но не в самой часе, сами побили эту ошибку. Решение заключалось также в добавлении стручков в целевую аудиторию.
gem install xcodeproj
может помочь вам.
если вы добавили новую цель после создания Podfile, просто удалите Podfile, Podfile.lock, папку Pods и рабочее пространство тогда init pods → затем поместите свои стручки pod install
Just Press Product → Clean → Build → Done
Внесите изменения в подфайл, как показано ниже:
Старый файл подкачки
target :EmojiKeyboard, :exclusive => true do
Измененный файл подкачки
target 'EmojiKeyboard' do
Он будет работать нормально.