Предварительные просмотры 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. Что сделать, чтобы превью снова заработали?

0 ответов

Другие вопросы по тегам