Неопределенный символ: _OBJC_CLASS _ $ _ WKInterfaceController ошибка после обновления XCode до версии 11.1 - PullRequest
2 голосов
/ 22 октября 2019

Я обновил Xcode до версии 11.1 и получил ожидаемую ошибку:

WatchKit недоступен при сборке для iOS Simulator.

Затем я удалил WatchKit из приложения iOSцель как предложено. С тех пор у меня возникает эта ошибка:

Неопределенные символы для архитектуры x86_64:
"_OBJC_CLASS _ $ _ WKInterfaceController", ссылка на которую: objc-class-ref в INFOnlineLibrary (IOLWatchKitHelper.o) ld: symbolне найдены для архитектуры x86_64 clang: ошибка: сбой команды компоновщика с кодом выхода 1 (используйте -v для просмотра вызова)

Неопределенный символ: _OBJC_CLASS _ $ _ WKInterfaceController

PS:Часть x86_64 зависит от выбора устройства / симулятора. Если я выбираю реальное устройство, оно выдает ту же ошибку для arm64. Поэтому я не думаю, что это проблема архитектуры также из-за того факта, что фреймворк, который включает в себя WKInterfaceController, является просто стандартной платформой watchOS, которая является Watchkit.

PS_2: WKInterfaceController или даже WatchKit не используются вприложение для iOS. Он используется только в части WatchAppExtension

То, что я пробовал до сих пор:

  • Первым делом было добавить каркас WatchKit к целям WatchApp и WatchAppExtension.
  • Когда яискал неопределенные символы для архитектуры x86_64 тип ошибок в общем было много разных предложений. Хотя я думаю, что это не зависит от архитектуры, я попытался настроить только активную архитектуру для всех целей. Наиболее рекомендуемое размещение $ (унаследованного) в путях поиска уже было сделано ранее.
  • Проверено назначение файлов .m. Они все в порядке.
  • Я даже пошел далеко и прокомментировал весь код, который использует WKInterfaceController. Ничего не изменилось после. Я также удалил приложение watch, оно все еще искало _OBJC_CLASS _ $ _ WKInterfaceController, но я не уверен, что оно правильно выполнило.
  • Я проверил файлы поддержки устройства WatchKit.framework с помощью команды file WatchKit.framework и увидел, что он поддерживает arm64. Затем вручную добавил эту библиотеку в библиотеки, запустил на устройстве, но все еще не работал.
...