Ошибки 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
.
все отображается правильно в информации о проекте:
однако, когда я иду к пользовательским настройкам сборки цели, запись PODS_ROOT либо полностью отсутствует, либо пуста для одной или нескольких конфигураций. Что вызывает следующую ошибку при построении:
самое простое исправление -закрыть проект в Xcode и откройте его.
если вы идете к цели Параметры Построения и фильтров на все, теперь вы увидите PODS_ROOT
запись без ошибок:
теперь он должен строить без ошибки.
Примечание: даже официальный пример AFNetworking iOS Cocoa Pods имеет эту проблему, что заставляет меня полагать, что это ошибка с Xcode.
альтернативное исправление-вручную изменить конфигурацию на None
, затем обратно к исходному значению:
на цели Build Settings
и убедитесь, что значение PODS_ROOT
равна ${SRCROOT}/Pods
в разделе" определяемый пользователем".
обновление: 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
. Чтобы заставить это работать, я должен был сделать следующее:
- перетащить этот файл в мой проект Xcode в Xcode, выбрав не копировать.
- теперь ссылка в нашем проекте, мы можем установить конфигурации:
у меня тогда была другая ошибка сборки, которая может быть или не быть связана. Этот путь к сценарию оболочки, определенному в Copy Pods Resources
был неверным.
"${SRCROOT}/Pods/Pods-resources.sh"
неправильно решен. Казалось, что SRCROOT добавлял дополнительный dir, который не существовал в пути. Поэтому я жестко путь к папке проекта.
Это позволило мне построить.
Почему так много вещей, которые должны сохранить вам время в конечном итоге едят его?
Примечание: пожалуйста, см. ответ @abood для объяснения.
У меня аналогичная проблема, это то, что сработало:
- В Xcode:
- очистить
- удалить производные данные в Xcode / Window / Organizer / Project / Your Project
- Pod каталог (он содержит файлы конфигурации, удалять файлы не только ссылки!)
- удалены все ссылки на файлы конфигурации pod для каждой цели в проекте / конфигурациях (debug/release)
- удалены "целевые объекты / фазы сборки / копировать стручки ресурсов" из всех Цели
- удалены "цели / настройки сборки / определяемые пользователем / PODS_ROOT" из всех целей
- Выйти Из Xcode
- В папке проекта:
- rm-rf стручки
- (необязательно) rm-rf YourProject.xcworkspace все
- rm-rf Podfile.lock
- установка pod
- Откройте YourProject.xcworkspace в Xcode
Я избавился от такой же проблемы, выполнив следующие действия:
-
Xcode->Product->Clean Build Folder
(hold клавиша alt на продукт, чтобы увидеть его) - открыть
Xcode->Window->Organizer
и выберитеProjects
tab. Затем найдите свой проект и удалитьderived data
проекта.
просто решается, делая следующее:
(sudo) gem установить cocoapods
установка pod
"очистить и построить"
кажется, проблема была вызвана одним из наших членов команды, имеющих более недавнюю установку cocoapods gem.
- открыть .xcodeproj файл в возвышенном тексте
- удалите эти две строки, Если у вас есть чистые папки стручков, я имею в виду, если у вас есть ошибки выше после удаления папки стручков
была такая же проблема говорят /Pods/Pods-resources.sh: нет такого файла или каталога даже после удаления файлов и т. д., связанных с pods.
избавился от него, перейдя в target - >Build phases, а затем удалив фазу сборки "Copy Pod Resources".
недавно у меня была такая же проблема. Я пробовал все возможные советы, ничего, кроме этого плагина, не сработало для меня:
https://github.com/kylef/cocoapods-deintegrate
после очистки текущей интеграции cocoapods то, что осталось удалить, - это Podfile, Podfile.замок и .xcworkspace все. Затем просто установите все заново.
надеюсь, я помогу кому-нибудь с этим.
этот вопрос получил его решена.
- выберите цель проекта
- выберите Настройки Сборки
- открыть Пользовательские выпадающий список
- изменить значение ключа PODS_ROOT to ${SRCROOT} / Pods
Я думаю, что здесь есть ошибка.
Для меня я удаляю и 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
вы можете попробовать следующие. Он починил меня.
- установить gem установить cocoapods-deintegrate
- установить gem установить cocoapods-clean
- goto pod deintegrate
- под чистые
- установка pod
плагины будут удалены из cocoapods для вашего проекта и заново установить.
в моем случае это была тестовая цель, которую я удалил все стручки из своего подфайла (потому что я добавил стручки, которые, как я позже понял, мне не нужны в этой цели). Ни одно из других решений здесь не сработало для меня.
перейдите на вкладку этапы сборки в настройках проекта для целевого объекта это создает проблемы.
удалить раздел с именем "проверить стручки Манифеста" и " копировать стручки Ресурсы"
Внутри Ссылка " Двоичный файл с библиотеками " удалить libPods-YourTarget.а
в настройках Вашего проекта на вкладке Информация разверните "конфигурации" и установите для целевого объекта значение None для отладки и освобождать. (Это исправит пару отсутствующих предупреждений файла)
удалить производные данные проекта (Окно > проекты > удалить [далее в ваш проект) и перезапустите Xcode. Построить / запустить цель.
Это сделало мой день!
- удаление Подфайла.lock-файл в папке проекта
- Удаление папки Pods в папке проекта
- выполнить
pod install
в папке проекта - сделайте "чистый" в Xcode
- перестроить проект
в моем случае проблема была в неправильном пути. решение здесь http://guides.cocoapods.org/using/troubleshooting.html
Если что-то не работает, прежде всего убедитесь, что вы не полностью переопределяя любые параметры, установленные из стручков.файл xcconfig в настройках сборки проекта. Чтобы добавить значения в параметры из вашего настройки сборки проекта, добавьте список значений с $(по наследству).
У меня была эта проблема.
то, как я это исправил, было полностью удалением реализации Pod и ее повторной реализацией. Обязательно удалите "копировать ресурсы стручков" и " проверить Манифест стручков.блокировка " от "фазы сборки" по всем целям, как указано здесь:Как удалить CocoaPods из проекта?
в моем случае я поставил Podfile.блокировка и Манифест.блокировка управления версиями, но я забыл добавить Pods-Project.отладка (выпуск).xcconfig файлы в систему управления версиями (по ошибке добавив *.xcconfig все для .gitignore), то я получил те же ошибки компиляции с точно такой же причиной, PODS_ROOT не устанавливается.
поэтому, если цель состоит в том, что после клонирования РЕПО проект может сразу же создавать и запускать, не имея CocoaPods, установленных на машине, вы либо добавляете весь каталог Pods в системе управления версиями или добавить Подфайл.блокировка, Манифест.блокировка, xcconfig файлов проекта и стручков xcconfig файлов в систему управления версиями.
Я не ставлю частная .xcconfig все это объединяет параметры сборки с конфигурацией CocoaPods по умолчанию для управления версиями.
Я создал несколько целей, прежде чем я когда-либо использовали стручки. Позже, когда я начал компилировать другие цели, мне пришлось добавить link_with со списком целей в моем Подфайле.
У меня была та же проблема. После повторения моих последних шагов, я обнаружил, что добавление объявления цели для новой цели с последующим запуском pod install,
было причиной проблемы:
сброс моей ветви и очистка моего проекта не сработали, так как 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 не установил базовую конфигурацию вашего проекта, потому что ваш проект уже имеет пользовательский набор настроек
Потратив часы, я нашел решение перейти к " этапам сборки" Затем " Проверьте Манифест Стручков.замок" Отметьте "запустить скрипт только при установке"
у меня была такая же проблема с моим ионных проект, я пробовал прежде всего решения, но не повезло.
если у вас есть такая же проблема, проверьте погоду ниже настройки присутствуют в Build Settings -> User-Defined settings
или
1.PODS_ROOT
2.PODS_PODFILE_DIR_PATH
если нет, то добавьте ее,
PODS_ROOT = ${SRCROOT}/Pods
PODS_PODFILE_DIR_PATH = ${SRCROOT}/
это решит проблему, решение ссылке