Предварительные просмотры xcode 13 перестают работать, когда добавляется зависимость пакета
Я нашел этот хороший пакет, который предоставляет красивый выбор даты и времени для watchOS. Я добавил его в свой существующий проект, который представляет собой приложение для iOS с приложением-компаньоном для часов. Как только пакет был добавлен в проект, превью в Xcode перестали работать.
Есть сотни ошибок, в которых говорится, что определенные вещи (
Binding
,
some View
и т. д.) доступны только в iOS 13.0 или новее. Целями моего проекта являются iOS 15 и watchOS 8. Пакет добавляется только в приложение WatchKit Extension.
Пакет прекрасно работает при запуске в симуляторе или непосредственно на Apple Watch. Предварительный просмотр также отлично работает, если проект содержит только цель watchOS.
Я создал этот пример репозитория, который состоит из цели iOS, цели watchOS и пакета.
Одно из множества сообщений об ошибках:
SchemeBuildError: Failed to build the scheme "Package Test watchOS"
'some' return types are only available in iOS 13.0.0 or newer
Compile ButtonStyle+TimePickerView.swift (x86_64):
/Users/raywo/Library/Developer/Xcode/DerivedData/Package_Test_iOS-heeslxxfvaxzergfcrtdrlguftjn/SourcePackages/checkouts/watch-date-picker/Sources/WatchDatePicker/ButtonStyle+TimePickerView.swift:14:50: error: 'some' return types are only available in iOS 13.0.0 or newer
func makeBody(configuration: Configuration) -> some View {
Диагностика показывает, что превью на самом деле опробовано на симуляторе часов под управлением watchOS 8.0.
== SELECTED RUN DESTINATION:
Simulator - iOS 15.0 | iphonesimulator | x86_64 | iPhone 13 | Apple Watch Series 6 - 44mm
Destination Preferences {
platform: iphonesimulator
platformSpecifier: iphonesimulator
deviceName: iPhone 13
deviceSpecifier: com.apple.CoreSimulator.SimDeviceType.iPhone-13
deviceModel: iPhone 13
deviceIdentifier: 15453A84-68A7-4C62-BF92-F3269D9B9CE0
sdkVariant: iphonesimulator
architecture: x86_64
sdkSpecifier: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator15.0.sdk
sdkVersion: 15.0
runtimeVersion: 15.0
}
Proxy:
Destination Preferences {
platform: watchsimulator
platformSpecifier: watchsimulator
deviceName: Apple Watch Series 6 - 44mm
deviceSpecifier: 6484338A-3B17-4D28-B88A-2DB5C866DFC9
deviceModel: Apple Watch Series 6 - 44mm
architecture: x86_64
runtimeVersion: 8.0
}
== SESSION GROUP 2953:
workspace identifier: <IDEWorkspace:0x7fddb68dbcf0 path:'/Users/raywo/Dropbox/Projekte/iOS/Package Test iOS/Package Test iOS.xcodeproj/project.xcworkspace'>
providers: [
ContentView_Previews /Users/raywo/Dropbox/Projekte/iOS/Package Test iOS/Package Test watchOS WatchKit Extension/ContentView.swift
]
translation units: [
/Users/raywo/Dropbox/Projekte/iOS/Package Test iOS/Package Test watchOS WatchKit Extension/ContentView.swift
]
attributes: PreviewSettingsRegistry(defaultSettings: PreviewsPipeline.PreviewSettings(isInteractive: false, mirroredDeviceLocations: Set([])), storage: [:])
session: 2954
request sessions: [
Content View Previews | ContentView_Previews: not completed
]
== UPDATE SESSION 2954:
Start Date: Tuesday, 2. November 2021 at 12:58:38 Central European Standard Time
Preview Provider {
Simulator {
platform: watchsimulator
device: 6A6D8E9E-A528-4CD4-A98D-FE855ED7BAC0 Apple Watch Series 6 - 44mm
buildNumber: 19R345
runtimePath: /Applications/Xcode.app/Contents/Developer/Platforms/WatchOS.platform/Library/Developer/CoreSimulator/Profiles/Runtimes/watchOS.simruntime
}
}
Build Graph {
target app Package Test iOS.app (#1)
target watchKitApp Package Test watchOS.app (#2)
target watchKitExtension Package Test watchOS WatchKit Extension.appex (#3)
Preview Provider Content View Previews Content View Previews (#4)
translationUnit ContentView.swift (#5)
}
Update Plan {
watchOS [x86_64 iphonesimulator15.0 iphonesimulator w/ proxy] (iPhone 13, 15453A84-68A7-4C62-BF92-F3269D9B9CE0-iphonesimulator15.0-x86_64-iphonesimulator), [], thinning disabled) {
Destination: Apple Watch Series 6 - 44mm 6484338A-3B17-4D28-B88A-2DB5C866DFC9 | default device for watchsimulator [
Run Destination Properties {
platform: watchsimulator
architecture: x86_64
sdk:
SDK {
path: /Applications/Xcode.app/Contents/Developer/Platforms/WatchSimulator.platform/Developer/SDKs/WatchSimulator8.0.sdk
version: 8.0
}
runtimeVersion: 8.0
runtimeBuildNumber: 19R345
deviceIdentifier: 6484338A-3B17-4D28-B88A-2DB5C866DFC9
deviceModel: Apple Watch Series 6 - 44mm
deviceSpecifier: com.apple.CoreSimulator.SimDeviceType.Apple-Watch-Series-6-44mm
deviceName: Apple Watch Series 6 - 44mm
}
Package_Test_watchOS_WatchKit_Extension watchKitExtension {
execution points [
provider Package_Test_watchOS_WatchKit_Extension.ContentView_Previews
]
translation units [
ContentView.swift (in Package Test watchOS WatchKit Extension.appex)
]
modules [
Package Test watchOS WatchKit Extension.appex
]
}
]
}
}
Я не знаю, почему Xcode даже пытается запустить это на iOS. Пакет добавляется только в расширение WatchKit. Что сделать, чтобы превью снова заработали?