Я обновил 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. Затем вручную добавил эту библиотеку в библиотеки, запустил на устройстве, но все еще не работал.