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)
Вот решение, которое сработало для меня.
- Попробуйте (Command + Shift + O) и найдите AppDelegate.
- Если вы обнаружите какие-либо AppDelegates в пакетах модулей, вам необходимо разблокировать их и удалить оттуда объявление AppDelegate.
- Вместо того, чтобы удалять его, вы также можете снять отметку с целевого членства для этого файла в меню Целевое членство справа.
Пока владелец пода не исправит проблему, вам может потребоваться разветвить репозиторий пода, вызывающий проблему, удалить AppDelegate из разветвленного экземпляра, а затем вместо этого использовать репо в своем подфиле.
пример:
pod 'PhoneNumberKit', :git => 'https://github.com/ameedsayeh/PhoneNumberKit.git'
Я также столкнулся с этой проблемой здесь, сторонняя библиотека POD имеет эту ошибку, независимо от того, как это сделать (очистить кеш, обновить Xcode до последней версии), я в основном обнаружил, что симулятор работает нормально, отладка и упаковка на реальной машине будут сообщить об этой ошибке. Targets->Build Settings- BBB>able Modules установлен на NO. Не знаю почему. Пожалуйста, дайте мне знать, если вы знаете какие-либо другие решения. Спасибо