Использование ошибок сборки Xcode 12 для целевой macOS 10.15

#xcode #macos #swiftui

#xcode #macos #swiftui

Вопрос:

Начиная с Xcode 12.3, при создании нового проекта SwiftUI с целью macOS, Xcode по умолчанию использует значение 11.0 (Big Sur). Без изменения строки кода в приложении «hello world», созданном по умолчанию по умолчанию, я затем меняю цель на macOS 10.15 (которую я все еще использую) Файл проекта swift по умолчанию больше не будет создаваться.:-

 
@main
struct catalinaApp: App {
    var body: some Scene {
        WindowGroup {
            ContentView()
        }
    }
}```

3 Errors: @main, 'Scene' and WindowGroup is only available in macOS 11.0 or newer

How can I alter the project/above file to correctly build the default app on Catalina? (10.15) ?

thanks in advance!
 

Комментарии:

1. Проверьте это : developer.apple.com/documentation/swiftui/windowgroup . Для WindowGroup требуется минимум Mac OS 11, поэтому установите для вашего проекта целевой минимум 11

2. Спасибо — приведенная выше документация подтверждает, что WindowGroup требует macOS 11. Вопрос в том, что эквивалентно macOS 10.15? Какой код использовался для приложений macOS до выхода macOS 11?

3. Используйте старый жизненный цикл — AppDelegate. Опция доступна при создании нового проекта.

4. Отлично — спасибо! Я не знал о опции жизненного цикла. Использование опции AppDelegate также устанавливает macOS 10.15 в качестве цели по умолчанию, и она отлично компилируется. (Интересно отметить, что в версии Hello World для делегирования приложений используется .frame() , тогда как в новом жизненном цикле SwiftUI используется .padding() . )

Ответ №1:

Благодаря @Raja Kishan, ответ заключается в том, чтобы просто выбрать опцию делегирования приложения в выборе жизненного цикла при создании нового проекта.

Комментарии:

1. Можете ли вы пометить это как решение? Может сэкономить другим некоторое время. Спасибо!

2. Вау — два дня поиска в Интернете и полная переустановка, и это ВСЕ, что мне было нужно — спасибо …! Хотел бы я дать этому 10.

3. да, спасибо. потратил несколько дней на поиск этого.