Работал на Xcode 10. Теперь в бета-версии я не могу собрать, я продолжаю получать эту ошибку:
«WatchKit» недоступен при сборке для симулятора iOS. Рассмотрите возможность использования
#if !os(iOS)
для условного импорта этой платформы.
Работал на Xcode 10. Теперь в бета-версии я не могу собрать, я продолжаю получать эту ошибку:
«WatchKit» недоступен при сборке для симулятора iOS. Рассмотрите возможность использования
#if !os(iOS)
для условного импорта этой платформы.
У меня была такая же проблема для одного быстрого файла в расширении WatchKit. Выяснилось, что он является членом как приложения для iOS, так и расширения WatchKit. Я снял отметку с приложения iOS в разделе целевого членства для файла, чтобы оно принадлежало только целевому расширению WatchKit. Теперь проект успешно строится.
Некоторые функции для связи Apple Watch с iPhone/iPad раньше были реализованы в рамках WatchKit. Но в какой-то момент его перенесли во фреймворк WatchKitConnectivity.
Если вы посмотрите в разделе «Фаза сборки» -> «Связать двоичный файл с библиотеками» вашей цели, вы увидите «WatchKit.framework» со статусом «Необязательно». iOS13+ стала более «строгой», поэтому она не будет собрана, пока я полностью не удалю «WatchKit.framework» и вместо этого не добавлю «WatchConnectivity.framework».
Также убедитесь, что ваш код iPhone/iPad использует «import WatchConnectivity» вместо «import WatchKit».
Нам нужно использовать «Условный импорт», чтобы решить эту проблему.
Замените заголовок import WatchKit
кодом ниже:
#if !os(iOS)
import WatchKit
#endif
Это решило мою проблему и успешно выполнило сборку в iOS 13.
Xcode 11 удаляет WatchKit из iOS SDK. Из примечаний к выпуску:
Платформа WatchKit больше не входит в iOS SDK. Если вы используете API WatchKit из iOS, вам необходимо удалить это использование. Платформа WatchKit остается доступной в watchOS. Если вы используете API WatchKit из iOS, чтобы сделать вывод о доступности функций на сопряженных Apple Watch, включите информацию о своем примере использования при отправке отзыва на Помощник по обратной связи. (49707950)
Сюда входят плагины Cordova, которые ссылаются на WatchKit в plugin.xml:
<framework src="WatchKit.framework" />
Приведенная выше строка добавит WatchKit в качестве платформы для целевого приложения iOS. Вам нужно будет удалить это и добавить WatchKit только в цель просмотра вашего приложения.