Подтвердить что ты не робот

100+ "Класс, реализованный в обоих MapKit и VectorKit" с помощью Xcode 9.0.1 и выше

При запуске моего проекта (который даже не использует MapKit) моя консоль получает спам с более чем сотней повторяющихся предупреждений:

objc [6377]: класс ___MKPlaceBusinessInfoItemAccessibility_super реализован как в /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot/System/Library/AccessibilityBundles/MapKit.axbundle/MapKit (0x12f128f00) и /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot/System/Library/AccessibilityBundles/VectorKit.axbundle/VectorKit (0x12f2187b0). Один из двух будет использован. Какой из них undefined.

Эти предупреждения были не представлены с Xcode 9.0.0, я испытываю это только на Xcode 9.0.1 и выше.. p >

Я знаю, что это ошибка и Я нашел радар, который касается этой проблемы. Есть ли способ отключить эти предупреждения, не влияя на видимость других предупреждений SDK?

4b9b3361

Ответ 1

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

  • Инспектор доступности доступен
  • Инструментальное тестирование UI
  • VoiceOver для OSX включен (другие AT также)

Чтобы убрать это, вы должны:

  • Выйти из инспектора доступности (если он включен)
  • Open Simulator
  • Оборудование → "Стереть все содержимое и настройки"
  • Запустите приложение.
  • Буквально НИКОГДА не запускайте этот симулятор с помощью инспектора доступности.
  • Буквально НИКОГДА не запускайте тесты пользовательского интерфейса на этом симуляторе, которые также полагаются на уровень доступности, чтобы выполнять свою работу, хотя я не думаю, что это приведет к тому, что ошибка будет зависеть, пока вы снова не удалите все.... ", он просто будет присутствовать для этого тестового прогона.

Каждый раз, когда вы делаете одну из двух последних точек, вам придется снова очистить данные...

Основная проблема заключается в том, что MapKit и VectorKit соединяются с базовыми пакетами доступности, но, по-видимому, так не динамически, поэтому эти пакеты включены в оба модуля. Такие предупреждения очень безопасно игнорируются, хотя и весьма подробные и разочаровывающие.

К сожалению, для этого нет другого исправления... возможно, вы могли бы загрузить старую версию симулятора, если вам не нужны функции iOS 11. Или просто не запускайте контрольно-измерительные тесты/Инспектор доступности/VoiceOver/Я НАДЕЮСЬ ОНИ УБЕДИТЕСЬ СЕЙЧАС!

Ответ 2

Получена та же проблема 9.0.1.

  • Вы должны выйти из Xcode и всех симуляторов.
  • Запустите rm -rf ~/Library/Developer/Xcode/DerivedData/ModuleCache.
  • Запустите Xcode снова.

Эта проблема была решена для меня.

Ответ 3

Мне наплевать на доступность в симуляторе, поэтому я просто переименовал один из дубликатов файлов, чтобы он не был найден:

mv /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot/System/Library/AccessibilityBundles/MapKit.axbundle/MapKit /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot/System/Library/AccessibilityBundles/MapKit.axbundle/MapKit_

лол

Ответ 4

Сброс iOS-симулятора исправил это для меня. Симулятор → Оборудование → Стереть все содержимое и настройки...

Ответ 5

Точно такая же проблема, в моем случае, я попытался удалить все файлы в папке DerivedData, но все равно не работаю.

И позже я обнаружил, что если я переключусь на другой тип симулятора, например, переключись с "iPhone 8" на "iPhone 8 плюс", предупреждение исчезнет.

Итак, просто удалите симулятор "iPhone 8" из списка симуляторов, а затем снова добавьте симулятор "iPhone 8" , он работает.

Не уверен, что проблема снова наступит, так как это также мое третье дело с этим.

Ответ 6

Как вы можете видеть, что-то не так с CoreSimulator от /Applications/Xcode.app. Apple Xcode Developer определил этот символ как в MapKit, так и в VectorKit, что является основной ошибкой.

Вы не можете изменять Xcode, поэтому только Apple Staff может его решить.

Просто перестаньте тратить свое время, кроме , возвращающегося к Xcode 9.0

Ответ 7

Эта проблема разрешена в Xcode 9.2. Обновляйте и наблюдайте, как ваши проблемы уходят.

Ответ 8

Решено!

-О симуляторе --hardware ----Стереть все содержимое и настройки -Закрыть xcode и симуляторы -изменить содержимое ~/Library/Developer/Xcode/DerivedData/ModuleCache -Start xcode...

Ответ 9

Мое дело немного другое: я столкнулся с этой проблемой при запуске XCUITest. После запуска процесса XCUITest целевое приложение вылетает при запуске. Однако после удаления всех прокси-серверов в Интернете эта проблема исправлена!

Ответ 10

Следующие работы для меня

  • xCode > Продукт > Очистить
  • Симулятоp > Оборудование > Стереть все содержимое и настройки
  • Выход и перезапуск