Ошибки 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, похоже, работает нормально и добавляет Pods Проект в мою рабочую область. Я пробовал $ pod update, но это не помогает.

Похоже, что PODS_ROOT не ставится.

Подфайл:

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'

person Undistraction    schedule 12.06.2013    source источник
comment
Простая установка модуля исправит это :)   -  person onmyway133    schedule 06.10.2014
comment
Важный! [!] From now on use MyProject.xcworkspace. не старый `.xcodeproj '   -  person Dawid Drozd    schedule 30.11.2016
comment
Когда вы тестируете в эмуляторе, там просто белый экран.   -  person desigNerd    schedule 26.09.2018
comment
см. stackoverflow.com/a/65783259/5175709   -  person Honey    schedule 19.01.2021


Ответы (30)


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

rm -rf MyProject.xcworkspace
pod install
person asgoth    schedule 02.10.2013
comment
Значит, cocoapods не установлен должным образом. запустить sudo gem install cocoapods - person asgoth; 21.10.2013
comment
gem install cocoapods даже лучше. В большинстве случаев sudo не требуется с драгоценными камнями. - person PatrickNLT; 03.06.2014
comment
Ваш ответ сделал мой день. Я застрял в нем на несколько часов. сними шляпу - person shaikh; 21.07.2014
comment
Спасибо за это, он исправил ошибку. FWIW, я получил ошибку после выполнения gem update cocoapods - person rounak; 01.11.2014
comment
Исправленная проблема. Получена ошибка при обновлении модуля - person swebal; 11.09.2015
comment
Мне не помогло. Я удалил единственный модуль, который я установил, закомментировав его, затем установил модуль, после чего исчезла вся ошибка. - person Jonny; 18.11.2015

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


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

В информации о проекте все выглядит правильно:

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

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

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

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

Если вы перейдете к Настройки сборки цели и отфильтруете Все, вы увидите запись PODS_ROOT без ошибок:

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

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


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

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

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

person Senseful    schedule 15.03.2014
comment
Это оказалось для меня! Мой $ PODS_ROOT установлен неправильно - person Alex Ryan; 13.08.2014
comment
После долгих поисков исправления я смог справиться без ошибок благодаря вашему решению. Мне просто нужно было изменить Configurations на None и обратно на Pods - person Glogo; 26.08.2014
comment
Это ХОРОШО поставить НИЧЕГО не помогло. - person ; 05.02.2017

Перейдите к Build Settings цели и убедитесь, что значение PODS_ROOT равно ${SRCROOT}/Pods в разделе «Определено пользователем».

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

person Jagie    schedule 25.05.2014
comment
Работает отлично. Вот что было нужно. - person pr4n; 09.03.2016
comment
Мне пришлось добавить PODS_ROOT к моей цели с помощью этого пути и violá (я также добавил его в header search paths как $ (PODS_ROOT) рекурсивный - person Jacksonkr; 17.01.2017
comment
У меня НЕ РАБОТАЕТ. - person ; 05.02.2017

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


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

person abbood    schedule 08.10.2013
comment
Podfile.lock предназначен не для этого: прочтите документацию Cocoapods по работе с командами для получения дополнительной информации. об этом. - person cbowns; 11.10.2013
comment
@cbowns вы абсолютно правы, спасибо за комментарий. Я обновил свой ответ. - person abbood; 11.10.2013
comment
Я удалил свой файл xcworkspace и установил pod, но все равно получаю то же сообщение об ошибке. - person jowie; 17.12.2014
comment
@jowie, то же самое ... не могли бы вы помочь мне, если вы решили это. - person Bandish Dave; 13.10.2016

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

  1. Перетащите этот файл в мой проект Xcode в Xcode, не копируя.
  2. Теперь в нашем проекте есть ссылка, мы можем установить конфигурации: введите описание изображения здесь

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

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

Решено неправильно. Похоже, SRCROOT добавлял в путь дополнительный каталог, которого не было. Поэтому я жестко закодировал путь к папке Project.

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

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

Примечание. См. объяснение в ответе @abood.

person Undistraction    schedule 12.06.2013
comment
Если вы видите эту ошибку из-за того, что вы удалили все модули из цели, у вас больше не будет никаких скриптов модуля, но она все равно будет пытаться запустить ее. Вам нужно будет перейти к целевой фазе сборки и удалить фазы Copy Pods Manifest.lock и Copy Pods Resources. А также удалите libPods.a в Link Binary with Libraries. - person Hlung; 18.09.2013
comment
@Hlung отличный комментарий ... он фактически устраняет основную причину проблемы, я пробовал решения выше, и я все равно получил Podfile.lock (который большинство файлов .gitignore настроены на игнорирование ... и это правильно) .. этот файл не следует задерживаться ... Если бы вы написали это как ответ, я бы поставил вам +1! - person abbood; 08.10.2013
comment
@abbood Напиши это, и я дам тебе победу. - person Undistraction; 08.10.2013
comment
Просто хотел добавить, что эта проблема на странице CocoaPods Github упоминает проверку этапов сборки для вероятно, это точная проблема (даже более похожая, поскольку у меня несколько целей). Проблема заставила меня прокрутить здесь вниз .... - person DanBlakemore; 21.01.2015

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

  1. In Xcode:
    • Clean
    • Удалить производные данные в Xcode / Window / Organizer / Project / Your Project
    • Каталог Pod (он содержит файлы конфигурации, удаляйте файлы, а не только ссылки!)
    • Удалены все ссылки на файлы конфигурации модуля для каждой цели в Project / Configurations (debug / release).
    • Удалены «Цели / Фазы сборки / Ресурсы для копирования модулей» из всех Целей.
    • Удалены "Цели / Настройки сборки / Пользовательские / PODS_ROOT" из всех Целей.
  2. Выйти из Xcode
  3. In your project directory:
    • rm -rf Pods
    • (Необязательно) rm -rf YourProject.xcworkspace
    • rm -rf Podfile.lock
  4. установка стручка
  5. Откройте YourProject.xcworkspace в Xcode
person Tibidabo    schedule 25.11.2014
comment
Не удаляйте произвольно свое рабочее пространство - даже если ваше рабочее пространство было создано Cocoapods, оно поддерживается вами. - person Joseph DeCarlo; 29.07.2015
comment
Это сработало для меня, удалил все файлы, связанные с модулями, и переустановил модули. - person Leena; 23.11.2015

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

  • Xcode->Product->Clean Build Folder (удерживайте клавишу alt на Приборе, чтобы увидеть это)
  • Откройте Xcode->Window->Organizer и выберите вкладку Projects. Затем найдите свой проект и удалите derived data проект.
person Timuçin    schedule 07.01.2014
comment
Работал у меня. Был раздражен. Теперь счастлив. - person fresidue; 10.01.2014
comment
В моем случае у меня были проблемы с проектом на github. Поэтому мне пришлось полностью удалить каталог проекта (rm -rf), сделать все, что описано выше, затем разархивировать проект, установить pod и открыть xcworkspace и никаких ошибок! - person rharvey; 09.07.2014
comment
Работал у меня. Спасибо. - person xevser; 17.06.2016

Просто решите, выполнив следующие действия:

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

  • установка стручка

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

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

person Diego    schedule 06.10.2014
comment
Мне пришлось переустановить cocoapods И перезапустить XCode, чтобы решить эту проблему. - person The Camster; 16.10.2014
comment
Пришлось запустить gem install cocoapods, а затем pod install и все остальное, что упоминалось в этой ветке ... - person Echelon; 30.10.2014

  1. открыть файл .xcodeproj в возвышенном тексте
  2. удалите эти две строки, если у вас есть чистые папки с модулями, я имею в виду, если вы получили указанные выше ошибки после удаления папки с модулями.
person Ivan Zhang    schedule 13.05.2015
comment
дает мне ld: library not found for -lPods - / * My Project Name * / Tests - person SleepsOnNewspapers; 18.06.2015
comment
также приведет ли это к ошибкам при будущих установках модулей? - person SleepsOnNewspapers; 18.06.2015

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

Избавился от него, перейдя в target-> Build phase, а затем удалив этап сборки «Copy Pod Resources».

person roshi    schedule 09.04.2014
comment
классное исправление, но боюсь, после очистки проекта и производных данных вы можете заметить, зачем вам это нужно :) - person Julian; 13.11.2014
comment
Затем я получаю сообщение об ошибке .h file not found от fileName, которое использует Pod. - person coolcool1994; 24.11.2016

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

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

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

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

person Chiara    schedule 31.07.2015
comment
Это было единственное, что исправило это для меня. - person Charlie; 04.09.2015
comment
Я рад, что смог помочь Чарли - person Chiara; 09.10.2015

Эта проблема решена.

  1. Выберите Цель вашего проекта
  2. Выберите Настройки сборки.
  3. Откройте раскрывающийся список Определено пользователем.
  4. Измените значение ключа PODS_ROOT на $ {SRCROOT} / Pods

Снимок экрана для вышеуказанных шагов

person Jayprakash Dubey    schedule 06.08.2015
comment
Мне понравилось твое. Но я все равно получаю ту же дерьмовую ошибку. Что это!!! ни у кого нет правильного ответа на этот вопрос. - person ; 05.02.2017
comment
@YumYumYum: Тогда попробуйте переустановить модули. - person Jayprakash Dubey; 06.02.2017
comment
Пробовал все решения, но это сработало. В моем случае оставалось указать путь в выпуске. - person Ankit Kargathra; 17.08.2017

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

person Johnny    schedule 27.08.2015

Это было не очень интуитивно. Я перешел к настройкам базового проекта, а затем жестко запрограммировал пути к своим pod.lock и pod.manifest в разделе Check Pods 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
person Vladimir Stazhilov    schedule 13.01.2014
comment
Скрипт, кажется, сгенерирован CocoaPod. Куда вы положили этот скрипт? - person Nickolas; 22.01.2015

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

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

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

person MD Aslam Ansari    schedule 30.04.2016

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

  1. Перейдите на вкладку Build Phases в настройках проекта для цели, которая вызывает проблемы.

  2. Удалите разделы «Проверить манифест модулей» и «Копировать ресурсы модулей».

  3. Внутри «Связать двоичный файл с библиотеками» удалите libPods-YourTarget.a

  4. В настройках вашего проекта на вкладке «Информация» разверните «Конфигурации» и установите для конфигурации цели значение «Нет» как для отладки, так и для выпуска. (Это исправит пару предупреждений об отсутствующих файлах)

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

person shim    schedule 13.05.2016

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

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

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

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

1.PODS_ROOT 2.PODS_PODFILE_DIR_PATH

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

PODS_ROOT = ${SRCROOT}/Pods

PODS_PODFILE_DIR_PATH = ${SRCROOT}/

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

person Onkar    schedule 13.04.2018

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

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

person R00We    schedule 14.01.2014

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

Я исправил это, полностью удалив реализацию модуля и повторно реализовав его. Не забудьте удалить «Копировать ресурсы модулей» и «Проверить модули Manifest.lock» из «Фазы сборки» на всех целевых объектах, как указано здесь: Как удалить CocoaPods из проекта?

person dloomb    schedule 27.02.2014

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

person BlackHatSamurai    schedule 12.08.2015
comment
Я согласен с вами, я сделал все, что вы сделали, включая удаление файла рабочей области, и у меня это сработало. - person Alix; 11.04.2016

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

Поэтому, если цель состоит в том, чтобы после клонирования репозитория проект можно было сразу собрать и запустить, без установки CocoaPods на машине, вы либо добавляете весь каталог Pods в систему управления версиями, либо добавляете Podfile.lock, Manifest.lock, файлы xcconfig проекта и Помещает файлы xcconfig в систему управления версиями.

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

person Qiulang    schedule 14.03.2016

Потратив несколько часов, я нашел решение, перейдите в «Фазы сборки», затем «Проверьте Pods Manifest.lock» Отметьте «Запускать скрипт только при установке».

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

person Abdul Hadi Siraj    schedule 27.02.2018

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

person Vladimír Slavík    schedule 10.05.2015

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

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

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

person Sheamus    schedule 01.04.2016

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

person xaphod    schedule 15.07.2016

gem install xcodeproj

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

См. сбой установки модуля с прерыванием - новый проект Swift.

person Leo    schedule 12.03.2017

если вы добавили новую цель после создания Podfile, просто удалите Podfile, Podfile.lock, папку Pods и рабочую область, затем init pods -> затем установите pod pod install.

person mohammad alabid    schedule 18.07.2017

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

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

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

Чтобы решить эту проблему, я перешел на вкладку Info своего проекта. Установите для моего «На основе файла конфигурации» значение None для всех схем и целей. Затем перезапустил pod install

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

person Matt Hudson    schedule 20.01.2018

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

person Jidong Chen    schedule 24.04.2019