Обновление Pod фатально изменило приложение

В моем прекрасно работающем приложении раньше был Xcode Project Navigator, как показано ниже.

Проект Навигатор Старый

Требования iOS 10 означали, что мне пришлось обновить Xcode до 8.1, что означало обновление всей Mac OS до Sierra, а также перевод всего приложения на Swift 2.3.

Излишне говорить, что это вызвало ошибки, одна из которых была проблема с PubNub. Однако, кроме этой новой ошибки сборки, структура приложения была такой же, и все казалось нормальным после решения всех проблем с макетом.

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

  1. Установите все симуляторы iOS после обновления Xcode
  2. Откройте настройки XCode (Cmd+,) и перейдите на вкладку "Местоположения", где будет показан путь к папке "DerivedData"
  3. Нажмите на маленький кружок со стрелкой на правой стороне показанного пути ”DerivedData”, чтобы открыть его в Finder
  4. Выйти из Xcode
  5. Удалить папку "DerivedData"
  6. Очистите кэши CocoaPods (если они интегрированы с ним), введя это в Терминале: rm -rf ~/Library/Caches/CocoaPods
  7. Из корня проекта (где находится Podfile) запустите это в Терминале: pod deintegrate MyApp.xcodeproj
  8. Удалить из корня проекта (где находится Podfile) файл Podfile.lock
  9. Из корня проекта (где находится Podfile) запустите это в Терминале: обновление pod
  10. Запустите Xcode (на всякий случай нажмите Shift + Cmd + K)
  11. Попробуй построить проект

После всего этого мой Project Navigator теперь выглядит следующим образом.

Project Navigator Новый

Как вы можете видеть, я потерял кучу вещей, включая файл pod и т. Д. Как и предполагалось, мое приложение теперь смертельно ранено.

Мой соединительный заголовок красный, Restkit.h красный, и все ссылки на стручки исчезли.

В корне моего проекта в Finder есть папка Pods, файл pod и т. Д., Однако, если я пытаюсь перетащить папки в проект из Finder, они не отображаются так, как раньше - например, папки имеют синий цвет, а не желтый.

Я на Xcode 8.1 и Cocoapods 1.1.1.

Как я могу восстановить свое приложение?

РЕДАКТИРОВАТЬ: Если это поможет, вот ссылка на мой нерешенный вопрос в январе, который был последний раз, когда я осмелился коснуться файла pod до сих пор. Последствия этой ситуации такие же, как и раньше - разница в том, что в январе я отказывался от двухнедельной работы, теперь я смотрю на отказ от десятимесячной работы.

RestKit.h не найден в проекте Xcode

Podfile:

pod 'RestKit', '~> 0.24.0'
pod 'SimpleKeychain'
pod 'AWSS3'
pod 'VideoCore'
pod 'SDWebImage', '~>3.7'
pod 'SVPullToRefresh'
pod 'PubNub', '~> 3.7.11'
pod 'MZFormSheetController'

Результат обновления модуля в Терминале:

Обновление всех модулей. Обновление локальных репозиториев спецификаций. master репозиторий specs для улучшения будущего предупреждения о производительности: неточное обнаружение переименования было пропущено из-за слишком большого количества файлов. CocoaPods 1.2.0.beta.1 доступен. Для обновления используйте: sudo gem install cocoapods --pre[!] Это тестовая версия, которую мы хотели бы попробовать. Для получения дополнительной информации см. https://blog.cocoapods.org/ и CHANGELOG для этой версии по адресу https://github.com/CocoaPods/CocoaPods/releases/tag/1.2.0.beta.1

Анализ зависимостей [!] Зависимость RestKit (~> 0.24.0) не используется ни в какой конкретной цели. Зависимость SimpleKeychain не используется ни в какой конкретной цели. Зависимость AWSS3 не используется ни в какой конкретной цели. Зависимость VideoCore не используется ни в какой конкретной цели. Зависимость SDWebImage (~> 3.7) не используется ни в какой конкретной цели. Зависимость SVPullToRefresh не используется ни в какой конкретной цели. Зависимость PubNub (~> 3.7.11) не используется ни в какой конкретной цели. Зависимость MZFormSheetController не используется ни в какой конкретной цели.

1 ответ

Решение

От pod update Похоже, что журналы CocoaPods не могут найти цель, к которой должны применяться библиотеки.

Можете ли вы попробовать что-то подобное в вашем Podfile?

target 'YOUR_TARGET_NAME' do
    pod 'RestKit', '~> 0.24.0'
    pod 'SimpleKeychain'
    pod 'AWSS3'
    pod 'VideoCore'
    pod 'SDWebImage', '~>3.7'
    pod 'SVPullToRefresh'
    pod 'PubNub', '~> 3.7.11'
    pod 'MZFormSheetController'
end

Не уверен, что это исправит вашу ошибку.

Другие вопросы по тегам