Ошибка SwiftUI ActivityKit `unsupportedTarget` при следовании руководству Фло на YouTubeIOS

Программируем под IOS
Ответить Пред. темаСлед. тема
Anonymous
 Ошибка SwiftUI ActivityKit `unsupportedTarget` при следовании руководству Фло на YouTube

Сообщение Anonymous »

В настоящий момент я слежу за видеороликом Фло на YouTube о наборе занятий и о том, как использовать его для создания живых занятий на экране блокировки (позже я рассмотрю возможность создания функции динамического острова, но сейчас мне просто нужно живое занятие).
Я создал действие следующим образом:

Код:
Файл виджета, содержащий виджет
Это находится внутри отдельной цели виджета.

Код: Выделить всё

import WidgetKit
import SwiftUI
import ActivityKit

struct TimerView : View {
let context: ActivityViewContext

var body: some View {
VStack {
Text(context.attributes.timerName)
.font(.headline)

Text(context.state.endTime, style: .timer)
}
.padding(.horizontal)
}
}

struct OfflineWidget: Widget {
let kind: String = "OfflineWidget"

var body: some WidgetConfiguration {
ActivityConfiguration(for: LiveActivityTimerAttributes.self) { context in

TimerView(context: context)

} dynamicIsland: { context in
DynamicIsland {
// Expanded
DynamicIslandExpandedRegion(.bottom) {
Text("Dynamic island isn't supported yet")
}
} compactLeading: {
Text("Dynamic island isn't supported yet")
} compactTrailing: {
Text("Dynamic island isn't supported yet")
} minimal: {
Text("Dynamic island isn't supported yet")
}

}

}
}
В моем основном представлении (внутри основной цели SwiftUI) У меня есть:

Код: Выделить всё

@State private var activity: Activity?
...

Код: Выделить всё

Button("Start live activity") {
// Create attributes
let attributes = LiveActivityTimerAttributes(timerName: "Dummy timer")

// Create initial state
let state = LiveActivityTimerAttributes.ContentState(endTime: Date().addingTimeInterval(60))

let content = ActivityContent(state: state, staleDate: nil)

// Request to start activity
do {
activity = try Activity.request(
attributes: attributes,
content: content,
pushType: nil // NEED to pass nil here. Defaut is to allow push notifications to update the live activity
)
} catch {
print("Error requesting live activity: \(error)")
}
}

Button("Stop live activity") {
// Update activity state
let state = LiveActivityTimerAttributes.ContentState(endTime: .now)

// Request activity to end
let content = ActivityContent(state: state, staleDate: nil)

Task {
await activity?.end(content, dismissalPolicy: .immediate)
}
}
Проблема:
Однако, когда я запускаю приложение в симуляторе iOS 18.1 > Я понимаю

Код: Выделить всё

ActivityKit.ActivityAuthorizationError.unsupportedTarget
[/b] выдает мне ошибку и, конечно же, никакой живой активности, даже мертвой. Я также получаю это при запуске на реальном устройстве.
Согласно документации Apple, ошибка unsupportedTarget возникает, когда...

приложение не имеет необходимых прав для запуска интерактивных действий.


< h3>Вопрос:
Что О правах здесь идет речь?
a. Речь идет о специальной цели Live Activity, но в моем Xcode я не вижу ничего подобного:
Изображение

b. Это потому, что я пользуюсь бесплатной учетной записью разработчика Apple? В таком случае, почему это должно меня ограничивать, поскольку я обязательно устанавливаю pushType: nil, когда запрашиваю живое действие.
Я был бы очень признателен за небольшую помощь , спасибо!

Подробнее здесь: https://stackoverflow.com/questions/792 ... tube-tutor
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «IOS»