Pod Update удаляет "файлы поддержки цели", но не обновляет настройки моего проекта

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

После запуска 'pod update' проект не будет компилироваться. Вот что я заметил. Само обновление, похоже, работает нормально, как обычно. Я заметил, что все файлы в файлах поддержки Pods/Target были удалены.

Когда я пытаюсь построить, я получаю ошибку, подобную этой, для большинства моих стручков:

lang: error: no such file or directory: '/Users/logan/development/ProjectNameRemoved/src/Pods/Target Support Files/Pods-AJNotificationView/Pods-AJNotificationView-dummy.m'

clang: error: no input files

Когда я перехожу к фазе сборки для контейнеров с этой ошибкой, я вижу, что файл фиктивного файла .m все еще там, хотя его нет: фиктивный файл

Удаление всех этих файлов, похоже, не помогает, так как я начинаю получать следующие ошибки:

вторая ошибка

Копаясь в целевые настройки, я вижу, что заголовок префикса GCC по-прежнему настроен на использование несуществующего файла pch:

заголовок префикса

Я не совсем уверен, куда идти отсюда. Кажется, что обновление pod удаляет определенные файлы, но мой pbxproj не обновляется, чтобы скорректировать эти изменения. Мне нужно выяснить, как это сделать вручную?

В настоящее время я запускаю XCode7 и CocoaPods 0.38.2

Ответы

Ответ 1

Я столкнулся с этой проблемой, когда был рефакторинг проекта. После удаления CocoaPod у меня были остатки, на которые были сделаны ссылки. Очистка кэшей и восстановление не помогли решить проблему.

Мне удалось разрешить его с помощью cocoapods-deintegrate, на который ссылается в комментарии пользователя выше.

Шаги для решения:

  • Закройте проект в Xcode, чтобы у вас не было предупреждений Xcode о различиях между версиями (при условии, что вы используете управление версиями, что неплохо, если вы возитесь с CocoaPods).

  • Установите cocoapods-deintegrate, введя Terminal:

    gem install cocoapods-deintegrate

  • Введите pod deintegrate из каталога вашего проекта.

  • Откройте проект в Xcode, очистите кеши и перестройте. Ваш Подфайл должен быть там... оставить его в покое. Мы доберемся до этого момента.

  • Закройте проект.

  • Тип pod install

  • Откройте проект, очистите кеши и перестройте.

Это шаги, которые я выполнил, чтобы решить эту проблему.

Update:

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

ошибка: команда компоновщика завершилась с кодом выхода 1 (используйте -v, чтобы увидеть Вызов)

Ответ 3

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