Ошибки CocoaPods в сборке проекта

Я не могу построить проект, который использует 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 Кажется, работает нормально и добавляет мой сайт. Я пытался $ 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'

29 ответов


у меня была аналогичная проблема, когда я сделал основные изменения в моем Подфайле. Моим решением было удалить файл рабочей области и запустить pod install еще раз:

rm -rf MyProject.xcworkspace
pod install

TLDR: это, скорее всего, ошибка с Xcode и закрытие и повторное открытие проекта, как правило, самое простое исправление. Предполагая, что все остальное правильно настроенный.


Я иногда получаю ту же ошибку при удалении Pods каталог, а затем работает pod install.

все отображается правильно в информации о проекте:

enter image description here

однако, когда я иду к пользовательским настройкам сборки цели, запись PODS_ROOT либо полностью отсутствует, либо пуста для одной или нескольких конфигураций. Что вызывает следующую ошибку при построении:

enter image description here

самое простое исправление -закрыть проект в Xcode и откройте его.

если вы идете к цели Параметры Построения и фильтров на все, теперь вы увидите PODS_ROOT запись без ошибок:

enter image description here

теперь он должен строить без ошибки.


Примечание: даже официальный пример AFNetworking iOS Cocoa Pods имеет эту проблему, что заставляет меня полагать, что это ошибка с Xcode.

альтернативное исправление-вручную изменить конфигурацию на None, затем обратно к исходному значению:

enter image description here


на цели Build Settings и убедитесь, что значение PODS_ROOT равна ${SRCROOT}/Pods в разделе" определяемый пользователем".

enter image description here


обновление: a podfile.lock надо и не должен игнорируется управлением версиями, он отслеживает версии библиотек, установленных при определенной установке pod. (Это похоже на gemfile.lock и композитор.lock для управления зависимостями rails и php соответственно). Чтобы узнать больше, пожалуйста, прочитайте docs. Заслуга cbowns.


в моем случае я сделал то, что я был выполнение некоторой уборки дома для моего проекта (т. е. ветвление интеграционных тестов как подмодуля git.. удаление дубликатов файлов и т. д.).. и подтолкнул конечный результат к удаленному РЕПО git.. все клиенты, которые клонировали мое РЕПО, пострадали от вышеуказанной ошибки. Вдохновленный Hlung это!--9--> комментарий выше, я понял, что были некоторые висячие сценарии pod, которые пытались работать с некоторыми несуществующими файлами. Поэтому я перешел к целевой фазе сборки и удалил все оставшиеся фазы, которые имели все, что связано с какао-стручками (и комментарий Hlung он предлагает удалить Copy Pods Manifest.lock и copy pod resources.. мои были названы по-другому, возможно, b / c я использую Xcode 5.. смысл в том, чтобы удалить эти болтающиеся фазы сборки)..


похоже, что CocoaPods не устанавливали конфигурации для моего проекта. Они должны быть основаны на Pods.xcconfig который находится в Pods/Target Support Files/Pods. Чтобы заставить это работать, я должен был сделать следующее:

  1. перетащить этот файл в мой проект Xcode в Xcode, выбрав не копировать.
  2. теперь ссылка в нашем проекте, мы можем установить конфигурации: enter image description here

у меня тогда была другая ошибка сборки, которая может быть или не быть связана. Этот путь к сценарию оболочки, определенному в Copy Pods Resources был неверным.

"${SRCROOT}/Pods/Pods-resources.sh"

неправильно решен. Казалось, что SRCROOT добавлял дополнительный dir, который не существовал в пути. Поэтому я жестко путь к папке проекта.

Это позволило мне построить.

Почему так много вещей, которые должны сохранить вам время в конечном итоге едят его?

Примечание: пожалуйста, см. ответ @abood для объяснения.


У меня аналогичная проблема, это то, что сработало:

  1. В Xcode:
    • очистить
    • удалить производные данные в Xcode / Window / Organizer / Project / Your Project
    • Pod каталог (он содержит файлы конфигурации, удалять файлы не только ссылки!)
    • удалены все ссылки на файлы конфигурации pod для каждой цели в проекте / конфигурациях (debug/release)
    • удалены "целевые объекты / фазы сборки / копировать стручки ресурсов" из всех Цели
    • удалены "цели / настройки сборки / определяемые пользователем / PODS_ROOT" из всех целей
  2. Выйти Из Xcode
  3. В папке проекта:
    • rm-rf стручки
    • (необязательно) rm-rf YourProject.xcworkspace все
    • rm-rf Podfile.lock
  4. установка pod
  5. Откройте YourProject.xcworkspace в Xcode

Я избавился от такой же проблемы, выполнив следующие действия:

  • Xcode->Product->Clean Build Folder (hold клавиша alt на продукт, чтобы увидеть его)
  • открыть Xcode->Window->Organizer и выберите Projects tab. Затем найдите свой проект и удалить derived data проекта.

просто решается, делая следующее:

  • (sudo) gem установить cocoapods

  • установка pod

  • "очистить и построить"

кажется, проблема была вызвана одним из наших членов команды, имеющих более недавнюю установку cocoapods gem.


  1. открыть .xcodeproj файл в возвышенном тексте
  2. удалите эти две строки, Если у вас есть чистые папки стручков, я имею в виду, если у вас есть ошибки выше после удаления папки стручков

была такая же проблема говорят /Pods/Pods-resources.sh: нет такого файла или каталога даже после удаления файлов и т. д., связанных с pods.

избавился от него, перейдя в target - >Build phases, а затем удалив фазу сборки "Copy Pod Resources".


недавно у меня была такая же проблема. Я пробовал все возможные советы, ничего, кроме этого плагина, не сработало для меня:

https://github.com/kylef/cocoapods-deintegrate

после очистки текущей интеграции cocoapods то, что осталось удалить, - это Podfile, Podfile.замок и .xcworkspace все. Затем просто установите все заново.

надеюсь, я помогу кому-нибудь с этим.


этот вопрос получил его решена.

  1. выберите цель проекта
  2. выберите Настройки Сборки
  3. открыть Пользовательские выпадающий список
  4. изменить значение ключа PODS_ROOT to ${SRCROOT} / Pods

Screenshot for above steps


Я думаю, что здесь есть ошибка.
Для меня я удаляю и Podfile.lock и не pod install снова, чтобы решить проблему.
Это сообщение игнорируется..:(


Это было не очень интуитивно. Я пошел в настройки базового проекта, а затем жестко закодировал пути к моему стручку.замок и капсула.манифест под Check Pods Манифест.блокировка, потому что они остались в разных папках на самом деле, поэтому мои пути выглядели так:

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

вы можете попробовать следующие. Он починил меня.

  1. установить gem установить cocoapods-deintegrate
  2. установить gem установить cocoapods-clean
  3. goto pod deintegrate
  4. под чистые
  5. установка pod

плагины будут удалены из cocoapods для вашего проекта и заново установить.


в моем случае это была тестовая цель, которую я удалил все стручки из своего подфайла (потому что я добавил стручки, которые, как я позже понял, мне не нужны в этой цели). Ни одно из других решений здесь не сработало для меня.

  1. перейдите на вкладку этапы сборки в настройках проекта для целевого объекта это создает проблемы.

  2. удалить раздел с именем "проверить стручки Манифеста" и " копировать стручки Ресурсы"

  3. Внутри Ссылка " Двоичный файл с библиотеками " удалить libPods-YourTarget.а

  4. в настройках Вашего проекта на вкладке Информация разверните "конфигурации" и установите для целевого объекта значение None для отладки и освобождать. (Это исправит пару отсутствующих предупреждений файла)

  5. удалить производные данные проекта (Окно > проекты > удалить [далее в ваш проект) и перезапустите Xcode. Построить / запустить цель.


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

  1. удаление Подфайла.lock-файл в папке проекта
  2. Удаление папки Pods в папке проекта
  3. выполнить pod install в папке проекта
  4. сделайте "чистый" в Xcode
  5. перестроить проект

в моем случае проблема была в неправильном пути. решение здесь http://guides.cocoapods.org/using/troubleshooting.html

Если что-то не работает, прежде всего убедитесь, что вы не полностью переопределяя любые параметры, установленные из стручков.файл xcconfig в настройках сборки проекта. Чтобы добавить значения в параметры из вашего настройки сборки проекта, добавьте список значений с $(по наследству).


У меня была эта проблема.

то, как я это исправил, было полностью удалением реализации Pod и ее повторной реализацией. Обязательно удалите "копировать ресурсы стручков" и " проверить Манифест стручков.блокировка " от "фазы сборки" по всем целям, как указано здесь:Как удалить CocoaPods из проекта?


для меня, чтобы избавиться от этой ошибки, мне нужно удалить Pods каталог и удалить .


в моем случае я поставил Podfile.блокировка и Манифест.блокировка управления версиями, но я забыл добавить Pods-Project.отладка (выпуск).xcconfig файлы в систему управления версиями (по ошибке добавив *.xcconfig все для .gitignore), то я получил те же ошибки компиляции с точно такой же причиной, PODS_ROOT не устанавливается.

поэтому, если цель состоит в том, что после клонирования РЕПО проект может сразу же создавать и запускать, не имея CocoaPods, установленных на машине, вы либо добавляете весь каталог Pods в системе управления версиями или добавить Подфайл.блокировка, Манифест.блокировка, xcconfig файлов проекта и стручков xcconfig файлов в систему управления версиями.

Я не ставлю частная .xcconfig все это объединяет параметры сборки с конфигурацией CocoaPods по умолчанию для управления версиями.


Я создал несколько целей, прежде чем я когда-либо использовали стручки. Позже, когда я начал компилировать другие цели, мне пришлось добавить link_with со списком целей в моем Подфайле.


У меня была та же проблема. После повторения моих последних шагов, я обнаружил, что добавление объявления цели для новой цели с последующим запуском pod install, было причиной проблемы:

enter image description here

сброс моей ветви и очистка моего проекта не сработали, так как Cocoapods изменили хотя бы один файл, который не под управлением источником. Я знаю это, потому что как только я сброшу удаленную ветвь на фиксацию перед добавлением дополнительного цель и повторное клонирование РЕПО, проблема больше не существовала.


Если у вас есть цель watchOS: я обнаружил, что внезапно, имея стручки в часах расширение но не в самой цели часы сломал вещи с этой же ошибкой. Решение состояло в том, чтобы добавить стручки к цели watch.


gem install xcodeproj

может помочь вам.

посмотреть установка pod завершается с ошибкой-новый проект Swift.


Если вы добавили новую цель после создания Подфайла, просто удалите Подфайл, Подфайл.блокировка, папка Pods и рабочее пространство затем init стручки - >затем положить стручки РМО установить


после попытки выше, я понял, что я получаю ошибку на pod install

[!] CocoaPods не установил базовую конфигурацию вашего проекта потому что ваш проект уже имеет пользовательский набор настроек.

это вызвало ошибку, потому что cocoapods не добавлял .файл xcconfig для моего проекта.

чтобы решить эту проблему, я пошел в Info вкладка моего проекта. Установите my Based on Configuration File в None для всех схем и цели. Затем снова побежал pod install

смотрите эту ссылку для получения дополнительной информации. CocoaPods предупреждение-CocoaPods не установил базовую конфигурацию вашего проекта, потому что ваш проект уже имеет пользовательский набор настроек


Потратив часы, я нашел решение перейти к " этапам сборки" Затем " Проверьте Манифест Стручков.замок" Отметьте "запустить скрипт только при установке"

спасибо позже ;)enter image description here


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

если у вас есть такая же проблема, проверьте погоду ниже настройки присутствуют в Build Settings -> User-Defined settings или

1.PODS_ROOT 2.PODS_PODFILE_DIR_PATH

если нет, то добавьте ее,

PODS_ROOT = ${SRCROOT}/Pods

PODS_PODFILE_DIR_PATH = ${SRCROOT}/

это решит проблему, решение ссылке