У меня были проблемы с .backgroundtask (.apprefresh ()), вызывая прерывистый сбой при запуске моего приложения. Когда происходит сбой, приложение мигает затемненного экрана с информацией о домашнем экране (время дня, срока службы батареи и т. Д.) Странно поворачиваемый ландшафт и право-оборудованный. Этот экран показывает для разделенной секунды, исчезает, а приложение не запускается. Повторное поступление значка приложения часто заново заново запускает приложение без инцидентов. После долгих сбоев с ошибкой я обнаружил, что комментирует либо @environment (\. Scenephase) Private var phase или .backgroundtask (.apprefresh ()) {} код устраняет сбой, так что Это как -то вызвано тем, что оба присутствуют одновременно. Как вы можете видеть в примере ниже, даже не нужно использовать. Создайте сбой на реальном устройстве, хотя вам может потребоваться запустить и покинуть приложение в быстром последовательности 10-20 раз, чтобы увидеть сбой. (Я понимаю, что большинство пользователей вряд ли это сделают - иногда сбой происходит в фактическом приложении при первом запуске. Но это прерывистая проблема, поэтому может потребоваться несколько раундов тестирования.) < /P>
В дополнение к коду, показанному здесь, я добавил возможность «фоновых режимов» с «фоновым избранием» в «Подписание и возможности» и добавил задачу «UpdateBadge» в «Информации» как «разрешенное планирование фоновой задачи. идентификатор ".struct ToyBackgroundTasksApp: App {
@Environment(\.scenePhase) private var phase
var sharedModelContainer: ModelContainer = {
let schema = Schema([
Item.self,
])
let modelConfiguration = ModelConfiguration(schema: schema, isStoredInMemoryOnly: false)
do {
return try ModelContainer(for: schema, configurations: [modelConfiguration])
} catch {
fatalError("Could not create ModelContainer: \(error)")
}
}()
var body: some Scene {
WindowGroup {
ContentView()
}
.modelContainer(sharedModelContainer)
.backgroundTask(.appRefresh("UpdateBadge")) {
print("background task")
}
}
}
Подробнее здесь: https://stackoverflow.com/questions/794 ... n-app-file
Сбой приложения iOS, когда оба .backgroundTask () и .Scenephase в файле приложения ⇐ IOS
Программируем под IOS
1740420159
Anonymous
У меня были проблемы с .backgroundtask (.apprefresh ()), вызывая прерывистый сбой при запуске моего приложения. Когда происходит сбой, приложение мигает затемненного экрана с информацией о домашнем экране (время дня, срока службы батареи и т. Д.) Странно поворачиваемый ландшафт и право-оборудованный. Этот экран показывает для разделенной секунды, исчезает, а приложение не запускается. Повторное поступление значка приложения часто заново заново запускает приложение без инцидентов. После долгих сбоев с ошибкой я обнаружил, что комментирует либо @environment (\. Scenephase) Private var phase или .backgroundtask (.apprefresh ()) {} код устраняет сбой, так что Это как -то вызвано тем, что оба присутствуют одновременно. Как вы можете видеть в примере ниже, даже не нужно использовать. Создайте сбой на реальном устройстве, хотя вам может потребоваться запустить и покинуть приложение в быстром последовательности 10-20 раз, чтобы увидеть сбой. (Я понимаю, что большинство пользователей вряд ли это сделают - иногда сбой происходит в фактическом приложении при первом запуске. Но это прерывистая проблема, поэтому может потребоваться несколько раундов тестирования.) < /P>
В дополнение к коду, показанному здесь, я добавил возможность «фоновых режимов» с «фоновым избранием» в «Подписание и возможности» и добавил задачу «UpdateBadge» в «Информации» как «разрешенное планирование фоновой задачи. идентификатор ".struct ToyBackgroundTasksApp: App {
@Environment(\.scenePhase) private var phase
var sharedModelContainer: ModelContainer = {
let schema = Schema([
Item.self,
])
let modelConfiguration = ModelConfiguration(schema: schema, isStoredInMemoryOnly: false)
do {
return try ModelContainer(for: schema, configurations: [modelConfiguration])
} catch {
fatalError("Could not create ModelContainer: \(error)")
}
}()
var body: some Scene {
WindowGroup {
ContentView()
}
.modelContainer(sharedModelContainer)
.backgroundTask(.appRefresh("UpdateBadge")) {
print("background task")
}
}
}
Подробнее здесь: [url]https://stackoverflow.com/questions/79464453/ios-app-crash-when-both-backgroundtask-and-scenephase-in-app-file[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия