#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. да, спасибо. потратил несколько дней на поиск этого.