Xcode 12 Beta 6: AppDelegate имеет разные определения в разных модулях

При запуске моего существующего проекта с Xcode 12 Beta 6 - он не позволяет скомпилировать, говоря:

AST Deserialization Issue:

'AppDelegate' has different definitions in different modules; first difference is defined here found 2 referenced protocols

Я подтвердил, что - @interface AppDelegate существуют только один раз в моей рабочей области, так где же нам найти второе определение AppDelegate?

Кто-нибудь еще сталкивался с этим или с каким-либо намеком на это?

2 ответа

Эта проблема возникла у меня недавно после обновления до Xcode 12.

Проблема вызвана дублированием файла AppDelegate в проекте (обычно Pods)

Вот решение, которое сработало для меня.

  1. Попробуйте (Command + Shift + O) и найдите AppDelegate.
  2. Если вы обнаружите какие-либо AppDelegates в пакетах модулей, вам необходимо разблокировать их и удалить оттуда объявление AppDelegate.
  3. Вместо того, чтобы удалять его, вы также можете снять отметку с целевого членства для этого файла в меню Целевое членство справа.

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

пример:

pod 'PhoneNumberKit', :git => 'https://github.com/ameedsayeh/PhoneNumberKit.git'

Я также столкнулся с этой проблемой здесь, сторонняя библиотека POD имеет эту ошибку, независимо от того, как это сделать (очистить кеш, обновить Xcode до последней версии), я в основном обнаружил, что симулятор работает нормально, отладка и упаковка на реальной машине будут сообщить об этой ошибке. Targets->Build Settings- BBB>able Modules установлен на NO. Не знаю почему. Пожалуйста, дайте мне знать, если вы знаете какие-либо другие решения. Спасибо

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