메인 타겟의 Info.plist에서 Supports Live Activities 키를 Boolean으로 추가하고 YES로 설정합니다.
Info에 Supports Live Activities 키를 추가하고 값을 Boolean YES로 설정합니다
프로그래밍 방식으로 설정하는 경우 다음과 같아야 합니다:
info.plist
<key>NSSupportsLiveActivities</key><true/>
Live Activities를 업데이트할 때 Apple이 업데이트의 긴급성을 결정하는 데 사용하는 “priority”를 설정할 수 있는 옵션이 있습니다. Apple에는 높은 우선 순위 플래그를 너무 자주 사용하는 요청을 조절하는 내부 임계값이 있습니다.Live Activities 사용 사례가 더 자주 높은 우선 순위 업데이트에 의존하는 경우 Apple의 개발자 문서에 따라 Info.plist에 NSSupportsLiveActivitiesFrequentUpdates 키를 Boolean 유형으로 YES로 설정하여 추가할 수 있습니다. Live Activity가 푸시 예산을 초과하면 사용자에게 대화 상자가 표시되며, Live Activity를 계속 허용하면 원활한 사용자 경험을 위해 예산이 자동으로 증가합니다.
래퍼 SDK(예: Flutter)에서 SPM이 활성화된 경우 이 단계를 건너뛸 수 있습니다. OneSignal 패키지는 이미 해결되어 모든 타겟에서 사용할 수 있습니다.
Widget Extension 타겟에서 일반 > 프레임워크, 라이브러리 및 임베디드 콘텐츠 아래에 OneSignalFramework를 추가합니다:
Widget Extension 타겟에 OneSignalFramework를 추가합니다
프로젝트의 타겟 목록에서 위젯 확장 타겟의 이름을 찾습니다. 예시 이름은 OneSignalWidgetExtension입니다.
위젯 확장 타겟의 이름을 찾습니다
Podfile을 열고 다음 코드를 추가합니다. OneSignalWidgetExtension을 위젯 확장 타겟의 이름으로 바꿉니다.
target 'OneSignalWidgetExtension' do use_frameworks! pod 'OneSignal/OneSignal', '>= 5.0.0', '< 6.0'end
# Uncomment the next line to define a global platform for your project# platform :ios, '9.0'target 'Demo Momenta' do # Comment the next line if you don't want to use dynamic frameworks use_frameworks! pod 'OneSignal/OneSignal', '>= 5.0.0', '< 6.0' pod 'OneSignal/OneSignalInAppMessages', '>= 5.0.0', '< 6.0'endtarget 'OneSignalNotificationServiceExtension' do use_frameworks! pod 'OneSignal/OneSignal', '>= 5.0.0', '< 6.0'endtarget 'OneSignalWidgetExtension' do use_frameworks! pod 'OneSignal/OneSignal', '>= 5.0.0', '< 6.0'end
Xcode를 닫고 pod repo update && pod install을 실행하여 OneSignalLiveActivities pod를 설치합니다.이 작업을 수행한 후에도 “No such module ‘OneSignalLiveActivities’” 오류가 계속 표시되면 “Widget Extension 타겟” > 일반 > 프레임워크 및 라이브러리 > + 아이콘으로 이동하여 종속성을 수동으로 추가할 수 있습니다. OneSignalLiveActivities 프레임워크를 선택합니다:
your-nameLiveActivity.swift 파일(예: OneSignalWidgetLiveActivity.swift)을 열어 구조체의 속성을 정의하고 위젯 UI를 변경합니다.
your-nameAttributes는 Live Activity의 정적 콘텐츠를 설명합니다.
ContentState는 Live Activity의 동적 콘텐츠를 설명합니다.
예시를 따르는 경우 아래 코드를 OneSignalWidgetLiveActivity.swift 파일에 복사하여 붙여넣습니다.
your-nameLiveActivity.swift
import ActivityKitimport WidgetKitimport SwiftUI// Import the OneSignalLiveActivities module// If you get an error about the module not being found, return to step 3 and ensure you have added the OneSignalLiveActivities pod correctly.import OneSignalLiveActivities// Update to inherit from OneSignalLiveActivityAttributes// This will be used in your API requests to start a Live Activitystruct OneSignalWidgetAttributes: OneSignalLiveActivityAttributes { // Update to inherit from OneSignalLiveActivityContentState public struct ContentState: OneSignalLiveActivityContentState { // Dynamic stateful properties about your activity go here! var emoji: String // Add a reference to OneSignalLiveActivityContentStateData? var onesignal: OneSignalLiveActivityContentStateData? } // Fixed non-changing properties about your activity go here! var name: String // Add a reference to OneSignalLiveActivityAttributeData var onesignal: OneSignalLiveActivityAttributeData}struct OneSignalWidgetLiveActivity: Widget { var body: some WidgetConfiguration { // Update to use `for: the-name-of-your-attributes-struct` // This will be used in your API requests to start a Live Activity ActivityConfiguration(for: OneSignalWidgetAttributes.self) { context in // Lock screen/banner UI goes here // Update to show the attributes sent via the payload VStack { Text("Hello \(context.attributes.name) \(context.state.emoji)") } .activityBackgroundTint(Color.cyan) .activitySystemActionForegroundColor(Color.black) } dynamicIsland: { context in DynamicIsland { // Expanded UI goes here. Compose the expanded UI through // various regions, like leading/trailing/center/bottom DynamicIslandExpandedRegion(.leading) { Text("Leading") } DynamicIslandExpandedRegion(.trailing) { Text("Trailing") } DynamicIslandExpandedRegion(.bottom) { Text("Bottom \(context.state.emoji)") // more content } } compactLeading: { Text("L") } compactTrailing: { Text("T \(context.state.emoji)") } minimal: { Text(context.state.emoji) } .widgetURL(URL(string: "http://www.apple.com")) .keylineTint(Color.red) } }}
이 단계는 사용자 정의 속성(예: OneSignalWidgetAttributes)을 사용할 때만 필요합니다. DefaultLiveActivityAttributes를 사용하는 경우 이 단계를 건너뛰세요 — 해당 타입은 OneSignal SDK에서 제공되며 메인 앱 타겟에서 이미 접근 가능합니다.
your-nameLiveActivity.swift 파일의 Target Membership 목록에 메인 앱 타겟을 추가합니다. 이는 메인 앱 타겟이 설정 호출(6단계)에서 사용자 정의 속성 구조체를 참조할 수 있도록 하기 위해 필요합니다.Xcode에서 화면 오른쪽의 인스펙터 패널을 엽니다. Target Membership 내에서 + 버튼을 클릭하고 ContentView 및 OneSignal 초기화 코드가 포함된 메인 앱 타겟을 선택합니다.
OneSignal SDK 초기화 후 AppDelegate에서 OneSignal.LiveActivities.setup을 호출합니다.OneSignalWidgetAttributes를 Live Activity 속성 구조체의 이름으로 바꿉니다.
AppDelegate
// Import the OneSignalLiveActivities moduleimport OneSignalLiveActivities// This should be added after initializing the OneSignal SDKif #available(iOS 16.1, *) { OneSignal.LiveActivities.setup(OneSignalWidgetAttributes.self) // If you have multiple Live Activities, you can add them here with the setup method // OneSignal.LiveActivities.setup(LiveActivityWidgetAttributes-2.self)}
이는 ActivityKit 비동기 시퀀스를 사용하여 업데이트를 관리하고 보고합니다.
앱에서 다음 시퀀스 중 하나를 직접 소비하는 경우 OneSignal Live Activity 동작을 방해할 수 있습니다:
Push To Start API 요청을 보냅니다. 모든 이름과 ID가 위젯 구성과 정확히 일치하는지 확인합니다(매개변수는 대소문자를 구분함). 누락되거나 잘못 추가된 것이 있으면 위젯을 실행하려고 할 때 문제가 발생할 수 있습니다.위의 예시에서 작동하는 요청 예시는 다음과 같습니다.바꾸기:
YOUR_APP_ID를 OneSignal 앱 ID로 바꿉니다.
YOUR_APP_API_KEY를 OneSignal API 키로 바꿉니다.
OneSignalWidgetAttributes를 Widget Attributes 구조체의 이름으로 바꿉니다.
제공된 예시 코드를 따르는 경우 기기의 잠금 화면에 Live Activity가 표시됩니다.
잠금 화면의 Live Activity
push-to-start로 Live Activity를 성공적으로 시작했습니다!사용자는 계속 업데이트를 받으려면 “허용”을 선택해야 합니다.
사용자가 앱과 상호 작용하는 동안 Live Activity를 트리거하도록 할 수 있습니다.예를 들어 사용자에게 활성 이벤트가 진행 중일 때(주문을 했거나, 게임이 진행 중이거나, 이벤트가 곧 시작될 예정 등) 앱을 열면 Live Activity를 자동으로 표시할 수 있습니다.이 예시에서는 버튼을 사용하여 Live Activity를 수동으로 시작합니다.
import SwiftUIimport ActivityKitimport OneSignalFrameworkimport OneSignalLiveActivitiesstruct ContentView: View { @StateObject private var viewModel = LiveActivityViewModel() var body: some View { VStack { Button("Start Live Activity") { viewModel.startLiveActivity() } } }}class LiveActivityViewModel: ObservableObject { func startLiveActivity() { let osAttributes = OneSignalLiveActivityAttributeData.create(activityId: "click-to-start") let attributes = OneSignalWidgetAttributes(name: "OneSignal", onesignal: osAttributes) let contentState = OneSignalWidgetAttributes.ContentState(emoji:"🤩", onesignal: nil) do { let activity = try Activity<OneSignalWidgetAttributes>.request( attributes: attributes, contentState: contentState, pushType: .token) } catch { print(error.localizedDescription) } }}
Live Activity 업데이트 API를 사용하여 활성 위젯을 업데이트합니다.활동을 시작할 때 사용한 activity_id와 일치시킵니다.이 예시 요청은 정의한 push-to-start라는 activity_id가 있으므로 push-to-start 위젯을 업데이트합니다.
click-to-start 위젯을 업데이트하려면 요청 경로를 push-to-start 대신 click-to-start를 사용하도록 업데이트합니다.
Live Activity가 시작된 후 사용자가 업데이트를 받을 수 없는 경우, 앱을 열면 활동이 새로고침됩니다. 첫 번째 업데이트를 보낸 것으로 예상되는 시점 이후의 미래 날짜와 시간으로 stale date를 설정합니다. 업데이트를 받지 못한 사용자에게는 대신 대체 메시지가 표시됩니다.위젯 UI에서 이 “stale” 상태를 수신 대기하여 대체 메시지를 표시할 수 있습니다:
Live Activity가 stale 상태가 될 때 표시되는 대체 메시지.
struct ptsLiveActivity: Widget { var body: some WidgetConfiguration { ActivityConfiguration(for: ptsAttributes.self) { context in //This will flip to true after the stale date let isStale = context.isStale if !isStale{ VStack { Text("\(context.attributes.name) \(context.state.emoji)") .activityBackgroundTint(Color.cyan) .activitySystemActionForegroundColor(Color.black) } } else { //If the message is stale, we request the user clicks the widget to open the app VStack { Text("Something went wrong, please click to refresh") } } // ... Rest of the widget UI } }}
Apple은 높은 우선 순위(priority: 10) 업데이트에 대한 고정된 제한을 제공하지 않지만 동적 시스템 수준 예산을 시행합니다. 짧은 기간 동안 너무 많은 높은 우선 순위 업데이트를 보내면 업데이트가 지연되거나 삭제되는 조절이 발생할 수 있습니다.조절 위험을 줄이려면:
우선 순위 수준을 혼합하여 사용합니다: Apple은 균형을 위해 priority: 5(표준) 및 priority: 10(높음)을 모두 사용할 것을 권장합니다.
priority: 10은 시간에 민감하거나 중요한 업데이트(예: 주문 상태 변경, 게임 점수)에만 예약합니다.
사용 사례에 빈번한 업데이트가 필요한 경우:
앱의 Info.plist 파일에 NSSupportsLiveActivitiesFrequentUpdates 키를 Boolean YES로 설정하여 추가합니다.
이 예산이 초과되면 iOS가 사용자에게 추가 업데이트를 허용하라는 메시지를 표시할 수 있습니다. 사용자가 동의하면 Apple이 자동으로 허용된 업데이트 제한을 확장하여 원활한 경험을 유지합니다.
Task { for await content in activity.contentUpdates { print("LA activity id: \(activity.id), content update: \(content.state)") }}// Example output:// LA activity id: EFE6D54D-F7E1-45EF-9514-4C2598F8DED2, content update: ContentState(message: "My message from payload")
수명 주기 변경 사항을 추적합니다:
Task { for await state in activity.activityStateUpdates { print("LA state update: \(state)") //If you wanted to do something based on the state, you would use this: if state != ActivityState.active { //Do something here } }}// Example output 1 - LA ended, but still visible// LA state update: active/* State can be equal to 4 possible values on the ActivityState enumactive, dismissed, ended, and stale*/
애플리케이션이 이미 일련의 푸시 알림을 보낼 수 있으며, 설계된 Live Activity가 이러한 푸시 알림의 필요성을 대체합니다. 예를 들어 푸시를 통해 점수 업데이트를 보내는 경우 Live Activity를 통해 이를 대체할 수 있습니다.사용자가 너무 많은 메시지를 받지 않도록 하려면 사용자가 Live Activity를 선택할 때 데이터 태그를 추가하는 것이 좋습니다. 이 데이터 태그를 추가하면 동일하거나 유사한 콘텐츠를 포함할 수 있는 푸시 메시지에서 이 데이터 태그가 있는 사용자를 제외할 수 있습니다. 데이터 태그 및 세그먼트에 대해 자세히 알아보세요.
요청이 올바르게 형식화되었는지 확인합니다. 위젯에서 사용되는 필드가 생략되면 활동이 예상대로 실행되거나 업데이트되지 않을 수 있습니다.
API 요청에서 설정하는 priority 수준을 결정합니다. 이를 10(최고 우선 순위)으로 설정하는 경우 5로 낮추고 다시 테스트하세요. Apple은 자체 내부 속도 제한에 따라 너무 자주 전송되는 요청을 조절합니다.
사용 사례가 더 자주 업데이트에 의존하는 경우 Apple의 개발자 문서에 따라 Info.plist에 NSSupportsLiveActivitiesFrequentUpdates 키를 Boolean 유형으로 YES로 설정하여 추가합니다. Live Activity가 푸시 예산을 초과하면 사용자에게 대화 상자가 표시되며, Live Activity를 계속 허용하면 원활한 사용자 경험을 위해 예산이 자동으로 증가합니다.
도움이 필요하신가요?지원 팀과 채팅하거나 support@onesignal.com으로 이메일을 보내주세요.다음을 포함해 주세요:
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"OneSignal Documentation","description":"OneSignal is a platform for sending push notifications, emails, in-app messages, and SMS campaigns via a single API, Journey Builder, and a dashboard.","colors":{"primary":"#3A3DB3","light":"#E54B4D","dark":"#3A3DB3"},"logo":{"light":"https://mintcdn.com/onesignal/yJcueeDCO7UpHnnY/logo/OneSignal-Logo.svg?fit=max\u0026auto=format\u0026n=yJcueeDCO7UpHnnY\u0026q=85\u0026s=1fcfb6fef6d820fd9d99c74850711107","dark":"https://mintcdn.com/onesignal/s4WC_KzLxf8ornqq/logo/OneSignal-Logo-White.svg?fit=max\u0026auto=format\u0026n=s4WC_KzLxf8ornqq\u0026q=85\u0026s=2573a53b5aea961e18c82b3af8f31925"},"favicon":"https://mintcdn.com/onesignal/SGduBFHpiRdg5l6h/favicon.ico?fit=max\u0026auto=format\u0026n=SGduBFHpiRdg5l6h\u0026q=85\u0026s=c0a99fadc0553c658a83741c5611cef4","api":{"examples":{"languages":["curl","typescript","python","php","go","ruby","java","csharp","rust"],"autogenerate":true}},"navbar":{"links":[{"href":"mailto:support@onesignal.com","label":"Support"}],"primary":{"type":"button","label":"Dashboard","href":"https://dashboard.onesignal.com"}},"footer":{"socials":{"github":"https://github.com/OneSignal","linkedin":"https://linkedin.com/company/onesignal","youtube":"https://www.youtube.com/@onesignalofficial/playlists"}},"seo":{"metatags":{"apple-mobile-web-app-title":"OneSignal Docs"}},"fonts":{"family":"Nunito Sans"},"styling":{"eyebrows":"breadcrumbs","latex":true},"integrations":{"ga4":{"measurementId":"G-2DGWL0VYP5"},"posthog":{"apiKey":"phc_vZpvE0f5eyzcOt30FHer34yddVmNdo9kmlMVRBzLMtn","apiHost":"https://eu.i.posthog.com","sessionRecording":true}},"contextual":{"options":["copy","view","chatgpt","claude"],"display":"header"},"navigation":{"languages":[{"language":"en","href":"docs/en/home"},{"language":"cn","href":"docs/cn/home"},{"language":"ko","href":"docs/ko/home"},{"language":"ja","href":"docs/ja/home"},{"language":"tr","href":"docs/tr/home"},{"language":"pt-BR","href":"docs/pt-BR/home"},{"language":"es","href":"docs/es/home"},{"language":"fr","href":"docs/fr/home"}]}},"deployment":{"deploymentMetadataValue":{"subdomain":"onesignal","hasAudioNarration":false,"actualSubdomain":"onesignal","customDomains":["documentation.onesignal.com"],"gitSource":{"type":"github","owner":"onesignal","repo":"mintlify-docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"feedback":{"thumbs":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6af263cb6575a850b3cad407","clientVersion":"0.0.4094","searchFilterCounts":[{"language":"en","tag":"User Guides","count":203},{"language":"es","tag":"Guías del Usuario","count":178},{"language":"fr","tag":"Guides utilisateur","count":178},{"language":"ja","tag":"ユーザーガイド","count":178},{"language":"ko","tag":"사용자 가이드","count":178},{"language":"pt-BR","tag":"Guia do Usuário","count":178},{"language":"tr","tag":"Kullanıcı Kılavuzları","count":178},{"language":"cn","tag":"用户指南","count":176},{"language":"en","tag":"Message channels","count":90},{"language":"es","tag":"Canales de mensajería","count":84},{"language":"fr","tag":"Canaux de messagerie","count":84},{"language":"ja","tag":"メッセージングチャネル","count":84},{"language":"ko","tag":"메시지 채널","count":84},{"language":"pt-BR","tag":"Canais de mensagem","count":84},{"language":"tr","tag":"Mesaj kanalları","count":84},{"language":"cn","tag":"消息渠道","count":83},{"language":"default","tag":"API Reference","count":68},{"language":"default","tag":"API reference","count":64},{"language":"en","tag":"Analytics \u0026 Integrations","count":53},{"language":"es","tag":"Analítica \u0026 Integraciones","count":52},{"language":"fr","tag":"Analyses et intégrations","count":52},{"language":"ja","tag":"分析 \u0026 統合","count":52},{"language":"ko","tag":"분석 \u0026 통합","count":52},{"language":"pt-BR","tag":"Análises \u0026 Integrações","count":52},{"language":"tr","tag":"Analitik ve Entegrasyonlar","count":52},{"language":"cn","tag":"分析和集成","count":51},{"language":"cn","tag":"开发者指南","count":48},{"language":"es","tag":"Guías del desarrollador","count":48},{"language":"fr","tag":"Guides développeur","count":48},{"language":"ja","tag":"開発者ガイド","count":48},{"language":"ko","tag":"개발자 가이드","count":48},{"language":"tr","tag":"Geliştirici Kılavuzları","count":48},{"language":"en","tag":"Developer Guides","count":47},{"language":"pt-BR","tag":"Guia de desenvolvedor","count":47},{"language":"en","tag":"Integrations","count":37},{"language":"es","tag":"Integraciones","count":37},{"language":"fr","tag":"Intégrations","count":37},{"language":"ja","tag":"統合","count":37},{"language":"ko","tag":"통합","count":37},{"language":"pt-BR","tag":"Integrações","count":37},{"language":"tr","tag":"Entegrasyonlar","count":37},{"language":"cn","tag":"集成","count":36},{"language":"en","tag":"Tutorials","count":35},{"language":"cn","tag":"推送通知","count":31},{"language":"cn","tag":"OneSignal 作为目的地","count":31},{"language":"en","tag":"Push","count":31},{"language":"en","tag":"OneSignal as destination","count":31},{"language":"es","tag":"Push notificaciones","count":31},{"language":"es","tag":"OneSignal como destino","count":31},{"language":"fr","tag":"Push","count":31},{"language":"fr","tag":"OneSignal comme destination","count":31},{"language":"ja","tag":"プッシュ通知","count":31},{"language":"ja","tag":"OneSignal as 宛先","count":31},{"language":"ko","tag":"푸시","count":31},{"language":"ko","tag":"OneSignal을 데이터 목적지로 사용","count":31},{"language":"pt-BR","tag":"Push notificações","count":31},{"language":"pt-BR","tag":"OneSignal como destino","count":31},{"language":"tr","tag":"Anlık bildirimler","count":31},{"language":"tr","tag":"OneSignal hedef","count":31},{"language":"en","tag":"Mobile SDKs","count":26},{"language":"cn","tag":"移动SDK","count":25},{"language":"es","tag":"SDKs móviles","count":25},{"language":"fr","tag":"SDK mobiles","count":25},{"language":"ja","tag":"モバイルSDK","count":25},{"language":"ko","tag":"모바일 SDKs","count":25},{"language":"pt-BR","tag":"SDKs móveis","count":25},{"language":"tr","tag":"Mobil SDK'lar","count":25},{"language":"cn","tag":"教程","count":24},{"language":"es","tag":"Tutoriales","count":24},{"language":"fr","tag":"Tutoriels","count":24},{"language":"ja","tag":"チュートリアル","count":24},{"language":"ko","tag":"튜토리얼","count":24},{"language":"pt-BR","tag":"Tutoriais","count":24},{"language":"tr","tag":"Eğitimler","count":24},{"language":"en","tag":"Mobile SDK setup","count":19},{"language":"cn","tag":"移动SDK设置","count":18},{"language":"es","tag":"Configuración del SDK móvil","count":18},{"language":"fr","tag":"Configuration SDK mobile","count":18},{"language":"ja","tag":"モバイルSDKセットアップ","count":18},{"language":"ko","tag":"모바일 SDK 설정","count":18},{"language":"pt-BR","tag":"Configuração do SDK móvel","count":18},{"language":"tr","tag":"Mobil SDK kurulumu","count":18},{"language":"default","tag":"Messages","count":9},{"language":"default","tag":"Users","count":9},{"language":"default","tag":"Organization","count":9},{"language":"default","tag":"Journeys","count":8},{"language":"default","tag":"Deprecated","count":6},{"language":"default","tag":"Templates","count":6},{"language":"default","tag":"Subscriptions","count":6},{"language":"default","tag":"Segments","count":5}]},"assistantConfig":{"enableStarterQuestions":false,"deflection":{"enabled":true,"email":"support@onesignal.com","showHelpButton":true}},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":true},"customCss":[],"page":{"pagePath":"docs/ko/live-activities-developer-setup","slug":"/docs/ko/live-activities-developer-setup","pageMetadata":{"title":"Live Activities 개발자 설정","description":"OneSignal을 사용하여 iOS 앱에서 Live Activities를 설정하여 잠금 화면과 Dynamic Island에 실시간 업데이트를 표시합니다.","keywords":["Live Activities","Dynamic Island","push-to-start","ActivityKit","실시간 업데이트"],"href":"/docs/ko/live-activities-developer-setup"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"OneSignal을 사용하여 iOS 앱에서 Live Activities를 설정하여 잠금 화면과 Dynamic Island에 실시간 업데이트를 표시합니다.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,hr:`hr`,li:`li`,ol:`ol`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,ul:`ul`,..._provideComponents(),...props.components},{Check,CodeBlock,CodeGroup,Frame,Heading,Info,Note,OptimizedImage,Tab,Tabs,Warning}=_components;if(!Check)_missingMdxReference(`Check`,true);if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!CodeGroup)_missingMdxReference(`CodeGroup`,true);if(!Frame)_missingMdxReference(`Frame`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Info)_missingMdxReference(`Info`,true);if(!Note)_missingMdxReference(`Note`,true);if(!OptimizedImage)_missingMdxReference(`OptimizedImage`,true);if(!Tab)_missingMdxReference(`Tab`,true);if(!Tabs)_missingMdxReference(`Tabs`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`Live Activities를 사용하면 iOS 앱이 잠금 화면 및 Dynamic Island에 직접 실시간 업데이트를 표시할 수 있습니다. 배송 추적, 스포츠 점수 또는 시간에 민감한 트랜잭션 업데이트에 이상적이며 앱을 열지 않고도 사용자에게 정보를 제공합니다.`}),`\n`,_jsxs(Note,{children:[` Android에는 `,_jsx(_components.a,{href:`/docs/ko/android-live-notifications`,children:`Android 라이브 알림`}),`이라는 유사한 기능이 있습니다. `]}),`\n`,_jsx(Heading,{level:`2`,id:`요구-사항`,children:`요구 사항`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`네이티브 iOS(Swift/Objective-C)를 사용하는 경우 `,_jsx(_components.a,{href:`/docs/ko/ios-sdk-setup`,children:`iOS SDK 설정`}),`을 따르세요.`,`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`래퍼 SDK(React Native, Flutter, Unity 등)를 사용하는 경우 `,_jsx(_components.a,{href:`/docs/ko/mobile-sdk-setup`,children:`모바일 SDK 설정`}),`을 따른 다음 `,_jsx(_components.a,{href:`/docs/ko/cross-platform-live-activity-setup`,children:`크로스 플랫폼 Live Activity SDK 설정`}),`을 따르세요.`]}),`\n`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`push-to-start`}),` 지원을 위한 OneSignal iOS SDK 버전 5.2.0+ (`,_jsx(_components.a,{href:`https://github.com/OneSignal/OneSignal-iOS-SDK/releases/tag/5.2.0`,children:`릴리스 노트 참조`}),`).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`클릭 추적`}),` 및 `,_jsx(_components.strong,{children:`확인된 전달`}),`을 위한 OneSignal iOS SDK 버전 5.2.15+`]}),`\n`,_jsx(_components.li,{children:`iOS 16.1+ 및 iPadOS 17+`}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.a,{href:`/docs/ko/ios-p8-token-based-connection-to-apns`,children:`.p8 APNs 키`}),`를 사용합니다. Apple은 Live Activities에서 p12 인증서를 지원하지 않습니다.`]}),`\n`,_jsx(_components.li,{children:`Xcode 14 이상`}),`\n`]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`설정`,children:`설정`}),`\n`,_jsxs(_components.p,{children:[`다음 단계에서는 Live Activities를 빠르게 설정하는 방법을 안내합니다. 자세한 내용 및 디자인 사용자 지정에 대해서는 `,_jsx(_components.a,{href:`https://developer.apple.com/design/human-interface-guidelines/live-activities`,children:`Apple의 Live Activities 개발자 문서`}),`를 참조하세요.`]}),`\n`,_jsx(Heading,{level:`3`,id:`1-widget-extension-추가`,children:`1. Widget Extension 추가`}),`\n`,_jsxs(_components.p,{children:[`Xcode에서 `,_jsx(_components.strong,{children:`파일 > 새로 만들기 > 타겟… > Widget Extension`}),`으로 이동합니다.`]}),`\n`,_jsx(Frame,{caption:`Xcode에서 앱에 새 Widget Extension 타겟을 추가합니다.`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/onesignal/FXJz6yFfOqztaEND/images/live-activities/live-activity-widget-extension.png?fit=max\u0026auto=format\u0026n=FXJz6yFfOqztaEND\u0026q=85\u0026s=60a52d6484203c4d6af21bc3a7da5e62`,\"data-og-width\":`2166`,width:`2166`,\"data-og-height\":`1488`,height:`1488`,\"data-path\":`images/live-activities/live-activity-widget-extension.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/onesignal/FXJz6yFfOqztaEND/images/live-activities/live-activity-widget-extension.png?w=280\u0026fit=max\u0026auto=format\u0026n=FXJz6yFfOqztaEND\u0026q=85\u0026s=7734e51fe182e520ef707fc84805e330 280w, https://mintcdn.com/onesignal/FXJz6yFfOqztaEND/images/live-activities/live-activity-widget-extension.png?w=560\u0026fit=max\u0026auto=format\u0026n=FXJz6yFfOqztaEND\u0026q=85\u0026s=ea2e9c52d07f2400e7cf96ba232f8d05 560w, https://mintcdn.com/onesignal/FXJz6yFfOqztaEND/images/live-activities/live-activity-widget-extension.png?w=840\u0026fit=max\u0026auto=format\u0026n=FXJz6yFfOqztaEND\u0026q=85\u0026s=62c298e70b912848e4ab074355faa8be 840w, https://mintcdn.com/onesignal/FXJz6yFfOqztaEND/images/live-activities/live-activity-widget-extension.png?w=1100\u0026fit=max\u0026auto=format\u0026n=FXJz6yFfOqztaEND\u0026q=85\u0026s=5a4438048a2645baaf94b009918ad108 1100w, https://mintcdn.com/onesignal/FXJz6yFfOqztaEND/images/live-activities/live-activity-widget-extension.png?w=1650\u0026fit=max\u0026auto=format\u0026n=FXJz6yFfOqztaEND\u0026q=85\u0026s=a8b1e965b8edaa1799ecff2bc51f6c57 1650w, https://mintcdn.com/onesignal/FXJz6yFfOqztaEND/images/live-activities/live-activity-widget-extension.png?w=2500\u0026fit=max\u0026auto=format\u0026n=FXJz6yFfOqztaEND\u0026q=85\u0026s=46516a93b04fb624896dc4b07e2b5920 2500w`})}),`\n`,_jsxs(_components.p,{children:[`선택하고 `,_jsx(_components.strong,{children:`다음`}),`을 누릅니다.`]}),`\n`,_jsxs(_components.p,{children:[`이름(예: `,_jsx(_components.code,{children:`OneSignalWidget`}),`)을 제공하고 `,_jsx(_components.strong,{children:`Include Live Activity`}),`가 선택되어 있는지 확인하여 Widget Extension을 구성합니다. 그런 다음 `,_jsx(_components.strong,{children:`완료`}),`를 클릭합니다.`]}),`\n`,_jsx(Frame,{caption:`Live Activity를 위한 Widget Extension 옵션.`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/onesignal/yt4lRKoquAlWvRvF/images/live-activities/OneSignalWidget.png?fit=max\u0026auto=format\u0026n=yt4lRKoquAlWvRvF\u0026q=85\u0026s=47412314963f6fbd58fd2c7d3a529322`,\"data-og-width\":`2166`,width:`2166`,\"data-og-height\":`1488`,height:`1488`,\"data-path\":`images/live-activities/OneSignalWidget.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/onesignal/yt4lRKoquAlWvRvF/images/live-activities/OneSignalWidget.png?w=280\u0026fit=max\u0026auto=format\u0026n=yt4lRKoquAlWvRvF\u0026q=85\u0026s=ef993b569b830f2a77509699787c84f3 280w, https://mintcdn.com/onesignal/yt4lRKoquAlWvRvF/images/live-activities/OneSignalWidget.png?w=560\u0026fit=max\u0026auto=format\u0026n=yt4lRKoquAlWvRvF\u0026q=85\u0026s=5bbd60e73edf594fc31b9933e9c4ca63 560w, https://mintcdn.com/onesignal/yt4lRKoquAlWvRvF/images/live-activities/OneSignalWidget.png?w=840\u0026fit=max\u0026auto=format\u0026n=yt4lRKoquAlWvRvF\u0026q=85\u0026s=7f52b76734b0b4d94d3331261e85f686 840w, https://mintcdn.com/onesignal/yt4lRKoquAlWvRvF/images/live-activities/OneSignalWidget.png?w=1100\u0026fit=max\u0026auto=format\u0026n=yt4lRKoquAlWvRvF\u0026q=85\u0026s=56381c3503cab8ba30cb7a82a7897b3f 1100w, https://mintcdn.com/onesignal/yt4lRKoquAlWvRvF/images/live-activities/OneSignalWidget.png?w=1650\u0026fit=max\u0026auto=format\u0026n=yt4lRKoquAlWvRvF\u0026q=85\u0026s=d2508e05fefab44562250579c108295a 1650w, https://mintcdn.com/onesignal/yt4lRKoquAlWvRvF/images/live-activities/OneSignalWidget.png?w=2500\u0026fit=max\u0026auto=format\u0026n=yt4lRKoquAlWvRvF\u0026q=85\u0026s=eff0518cf89418d3f47a2bcea9ebf615 2500w`})}),`\n`,_jsxs(_components.p,{children:[`스킴을 활성화하라는 메시지가 표시되면 `,_jsx(_components.strong,{children:`활성화하지 않음`}),`을 클릭합니다.`]}),`\n`,_jsx(Frame,{caption:`스킴 활성화 프롬프트 — 활성화하지 않음을 선택합니다.`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/onesignal/yt4lRKoquAlWvRvF/images/live-activities/la-scheme-activation.png?fit=max\u0026auto=format\u0026n=yt4lRKoquAlWvRvF\u0026q=85\u0026s=d3a2207ff2b5988c63c2abd631a72541`,\"data-og-width\":`2166`,width:`2166`,\"data-og-height\":`1488`,height:`1488`,\"data-path\":`images/live-activities/la-scheme-activation.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/onesignal/yt4lRKoquAlWvRvF/images/live-activities/la-scheme-activation.png?w=280\u0026fit=max\u0026auto=format\u0026n=yt4lRKoquAlWvRvF\u0026q=85\u0026s=8edccba41db5b10ac61bb97eedb062ed 280w, https://mintcdn.com/onesignal/yt4lRKoquAlWvRvF/images/live-activities/la-scheme-activation.png?w=560\u0026fit=max\u0026auto=format\u0026n=yt4lRKoquAlWvRvF\u0026q=85\u0026s=8b73a2e42688e0264570371aa0e80704 560w, https://mintcdn.com/onesignal/yt4lRKoquAlWvRvF/images/live-activities/la-scheme-activation.png?w=840\u0026fit=max\u0026auto=format\u0026n=yt4lRKoquAlWvRvF\u0026q=85\u0026s=8ba9a1355aac7d7cfd33060e9813c5fe 840w, https://mintcdn.com/onesignal/yt4lRKoquAlWvRvF/images/live-activities/la-scheme-activation.png?w=1100\u0026fit=max\u0026auto=format\u0026n=yt4lRKoquAlWvRvF\u0026q=85\u0026s=859166fbf8418aa259e3dd308db81330 1100w, https://mintcdn.com/onesignal/yt4lRKoquAlWvRvF/images/live-activities/la-scheme-activation.png?w=1650\u0026fit=max\u0026auto=format\u0026n=yt4lRKoquAlWvRvF\u0026q=85\u0026s=21fd1a5785ff48714634f3593eb88889 1650w, https://mintcdn.com/onesignal/yt4lRKoquAlWvRvF/images/live-activities/la-scheme-activation.png?w=2500\u0026fit=max\u0026auto=format\u0026n=yt4lRKoquAlWvRvF\u0026q=85\u0026s=6b341c365558b2b75bf69302e67ac880 2500w`})}),`\n`,_jsxs(Heading,{level:`3`,id:`2-info-plist-업데이트`,children:[`2. `,_jsx(_components.code,{children:`Info.plist`}),` 업데이트`]}),`\n`,_jsxs(_components.p,{children:[`메인 타겟의 `,_jsx(_components.code,{children:`Info.plist`}),`에서 `,_jsx(_components.code,{children:`Supports Live Activities`}),` 키를 `,_jsx(_components.strong,{children:`Boolean`}),`으로 추가하고 `,_jsx(_components.code,{children:`YES`}),`로 설정합니다.`]}),`\n`,_jsx(Frame,{caption:`Info에 Supports Live Activities 키를 추가하고 값을 Boolean YES로 설정합니다`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/onesignal/yt4lRKoquAlWvRvF/images/live-activities/info-la-setting.png?fit=max\u0026auto=format\u0026n=yt4lRKoquAlWvRvF\u0026q=85\u0026s=e839231401651b71d0ae8d48614ec130`,\"data-og-width\":`2166`,width:`2166`,\"data-og-height\":`1488`,height:`1488`,\"data-path\":`images/live-activities/info-la-setting.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/onesignal/yt4lRKoquAlWvRvF/images/live-activities/info-la-setting.png?w=280\u0026fit=max\u0026auto=format\u0026n=yt4lRKoquAlWvRvF\u0026q=85\u0026s=59527bff3058731c36ceaad7bcaed65e 280w, https://mintcdn.com/onesignal/yt4lRKoquAlWvRvF/images/live-activities/info-la-setting.png?w=560\u0026fit=max\u0026auto=format\u0026n=yt4lRKoquAlWvRvF\u0026q=85\u0026s=8575197ad4391b79436cfb1cbc602e1f 560w, https://mintcdn.com/onesignal/yt4lRKoquAlWvRvF/images/live-activities/info-la-setting.png?w=840\u0026fit=max\u0026auto=format\u0026n=yt4lRKoquAlWvRvF\u0026q=85\u0026s=b5cce70d9794d902c4fee944dc10e14c 840w, https://mintcdn.com/onesignal/yt4lRKoquAlWvRvF/images/live-activities/info-la-setting.png?w=1100\u0026fit=max\u0026auto=format\u0026n=yt4lRKoquAlWvRvF\u0026q=85\u0026s=39e11f4b24f22cfc1d05f18b951d752f 1100w, https://mintcdn.com/onesignal/yt4lRKoquAlWvRvF/images/live-activities/info-la-setting.png?w=1650\u0026fit=max\u0026auto=format\u0026n=yt4lRKoquAlWvRvF\u0026q=85\u0026s=363bddd54c390ffce897e6af8d3b5b18 1650w, https://mintcdn.com/onesignal/yt4lRKoquAlWvRvF/images/live-activities/info-la-setting.png?w=2500\u0026fit=max\u0026auto=format\u0026n=yt4lRKoquAlWvRvF\u0026q=85\u0026s=b06979691801e405d5ff4990bb2a9b39 2500w`})}),`\n`,_jsx(_components.p,{children:`프로그래밍 방식으로 설정하는 경우 다음과 같아야 합니다:`}),`\n`,_jsx(CodeBlock,{filename:`info.plist`,numberOfLines:`2`,language:`xml`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`xml`,children:_jsxs(_components.code,{language:`xml`,numberOfLines:`2`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`\u003c`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`key`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`NSSupportsLiveActivities`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`\u003c/`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`key`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`\u003c`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`true`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`/>`})]}),`\n`]})})}),`\n`,_jsxs(Note,{children:[_jsx(_components.p,{children:`Live Activities를 업데이트할 때 Apple이 업데이트의 긴급성을 결정하는 데 사용하는 “priority”를 설정할 수 있는 옵션이 있습니다. Apple에는 높은 우선 순위 플래그를 너무 자주 사용하는 요청을 조절하는 내부 임계값이 있습니다.`}),_jsxs(_components.p,{children:[`Live Activities 사용 사례가 더 자주 높은 우선 순위 업데이트에 의존하는 경우 `,_jsx(_components.a,{href:`https://developer.apple.com/documentation/activitykit/starting-and-updating-live-activities-with-activitykit-push-notifications#Determine-the-update-frequency`,children:`Apple의 개발자 문서`}),`에 따라 Info.plist에 `,_jsx(_components.code,{children:`NSSupportsLiveActivitiesFrequentUpdates`}),` 키를 Boolean 유형으로 YES로 설정하여 추가할 수 있습니다. Live Activity가 푸시 예산을 초과하면 사용자에게 대화 상자가 표시되며, Live Activity를 계속 허용하면 원활한 사용자 경험을 위해 예산이 자동으로 증가합니다.`]})]}),`\n`,_jsx(Heading,{level:`3`,id:`3-sdk-추가`,children:`3. SDK 추가`}),`\n`,_jsxs(Tabs,{children:[_jsxs(Tab,{title:`Package Manager`,id:`package-manager`,children:[_jsx(Note,{children:_jsxs(_components.p,{children:[`래퍼 SDK(예: `,_jsx(_components.strong,{children:`Flutter`}),`)에서 SPM이 활성화된 경우 이 단계를 건너뛸 수 있습니다. OneSignal 패키지는 이미 해결되어 모든 타겟에서 사용할 수 있습니다.`]})}),_jsxs(_components.p,{children:[`Widget Extension 타겟에서 `,_jsx(_components.strong,{children:`일반 > 프레임워크, 라이브러리 및 임베디드 콘텐츠`}),` 아래에 `,_jsx(_components.code,{children:`OneSignalFramework`}),`를 추가합니다:`]}),_jsx(Frame,{caption:`Widget Extension 타겟에 OneSignalFramework를 추가합니다`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/onesignal/yt4lRKoquAlWvRvF/images/live-activities/add-one-signal-framework.png?fit=max\u0026auto=format\u0026n=yt4lRKoquAlWvRvF\u0026q=85\u0026s=386781616958e5a80a5cfec5ee143dcb`,\"data-og-width\":`2392`,width:`2392`,\"data-og-height\":`1488`,height:`1488`,\"data-path\":`images/live-activities/add-one-signal-framework.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/onesignal/yt4lRKoquAlWvRvF/images/live-activities/add-one-signal-framework.png?w=280\u0026fit=max\u0026auto=format\u0026n=yt4lRKoquAlWvRvF\u0026q=85\u0026s=2b5347bf2bc26b4f21c35464914474c9 280w, https://mintcdn.com/onesignal/yt4lRKoquAlWvRvF/images/live-activities/add-one-signal-framework.png?w=560\u0026fit=max\u0026auto=format\u0026n=yt4lRKoquAlWvRvF\u0026q=85\u0026s=e07ee4b6734ea8bad33e4cfac5ab6b20 560w, https://mintcdn.com/onesignal/yt4lRKoquAlWvRvF/images/live-activities/add-one-signal-framework.png?w=840\u0026fit=max\u0026auto=format\u0026n=yt4lRKoquAlWvRvF\u0026q=85\u0026s=8e2b3aa37c42579f1f879f6c6da4f1fa 840w, https://mintcdn.com/onesignal/yt4lRKoquAlWvRvF/images/live-activities/add-one-signal-framework.png?w=1100\u0026fit=max\u0026auto=format\u0026n=yt4lRKoquAlWvRvF\u0026q=85\u0026s=56c5bbe8d11837455ac8eca7eac664b7 1100w, https://mintcdn.com/onesignal/yt4lRKoquAlWvRvF/images/live-activities/add-one-signal-framework.png?w=1650\u0026fit=max\u0026auto=format\u0026n=yt4lRKoquAlWvRvF\u0026q=85\u0026s=79a8b9689eed005708a8036226d29162 1650w, https://mintcdn.com/onesignal/yt4lRKoquAlWvRvF/images/live-activities/add-one-signal-framework.png?w=2500\u0026fit=max\u0026auto=format\u0026n=yt4lRKoquAlWvRvF\u0026q=85\u0026s=61296892ce7eb8fc027e22d9e8929c23 2500w`})})]}),_jsxs(Tab,{title:`Cocoapods`,id:`cocoapods`,children:[_jsxs(_components.p,{children:[`프로젝트의 타겟 목록에서 위젯 확장 타겟의 이름을 찾습니다. 예시 이름은 `,_jsx(_components.code,{children:`OneSignalWidgetExtension`}),`입니다.`]}),_jsx(Frame,{caption:`위젯 확장 타겟의 이름을 찾습니다`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/onesignal/yt4lRKoquAlWvRvF/images/live-activities/cocoapods-la-extension-name.png?fit=max\u0026auto=format\u0026n=yt4lRKoquAlWvRvF\u0026q=85\u0026s=850a91387539587802306a66771435eb`,\"data-og-width\":`2166`,width:`2166`,\"data-og-height\":`1488`,height:`1488`,\"data-path\":`images/live-activities/cocoapods-la-extension-name.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/onesignal/yt4lRKoquAlWvRvF/images/live-activities/cocoapods-la-extension-name.png?w=280\u0026fit=max\u0026auto=format\u0026n=yt4lRKoquAlWvRvF\u0026q=85\u0026s=161537f084e2ed4f836142758e0a80f8 280w, https://mintcdn.com/onesignal/yt4lRKoquAlWvRvF/images/live-activities/cocoapods-la-extension-name.png?w=560\u0026fit=max\u0026auto=format\u0026n=yt4lRKoquAlWvRvF\u0026q=85\u0026s=d5eb1d35b518355a0943b5845e4a4b76 560w, https://mintcdn.com/onesignal/yt4lRKoquAlWvRvF/images/live-activities/cocoapods-la-extension-name.png?w=840\u0026fit=max\u0026auto=format\u0026n=yt4lRKoquAlWvRvF\u0026q=85\u0026s=7e7915b07fdd07ad790b7131de3bbc12 840w, https://mintcdn.com/onesignal/yt4lRKoquAlWvRvF/images/live-activities/cocoapods-la-extension-name.png?w=1100\u0026fit=max\u0026auto=format\u0026n=yt4lRKoquAlWvRvF\u0026q=85\u0026s=63947c2fc06df4205f1ce379b1e2b3be 1100w, https://mintcdn.com/onesignal/yt4lRKoquAlWvRvF/images/live-activities/cocoapods-la-extension-name.png?w=1650\u0026fit=max\u0026auto=format\u0026n=yt4lRKoquAlWvRvF\u0026q=85\u0026s=ad8a4e8913e1a1ac402c0e1a3ed07f2f 1650w, https://mintcdn.com/onesignal/yt4lRKoquAlWvRvF/images/live-activities/cocoapods-la-extension-name.png?w=2500\u0026fit=max\u0026auto=format\u0026n=yt4lRKoquAlWvRvF\u0026q=85\u0026s=810c7d2026b940854d16c1aa73011309 2500w`})}),_jsxs(_components.p,{children:[_jsx(_components.code,{children:`Podfile`}),`을 열고 다음 코드를 추가합니다. `,_jsx(_components.code,{children:`OneSignalWidgetExtension`}),`을 위젯 확장 타겟의 이름으로 바꿉니다.`]}),_jsxs(CodeGroup,{children:[_jsx(CodeBlock,{filename:`Podfile`,numberOfLines:`4`,language:`ruby`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`ruby`,children:_jsxs(_components.code,{language:`ruby`,numberOfLines:`4`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`target `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'OneSignalWidgetExtension'`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` do`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` use_frameworks!`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` pod `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'OneSignal/OneSignal'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'>= 5.0.0'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'\u003c 6.0'`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`end`})}),`\n`]})})}),_jsx(CodeBlock,{filename:`Full Podfile example`,numberOfLines:`19`,language:`ruby`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`ruby`,children:_jsxs(_components.code,{language:`ruby`,numberOfLines:`19`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# Uncomment the next line to define a global platform for your project`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# platform :ios, '9.0'`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`target `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'Demo Momenta'`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` do`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # Comment the next line if you don't want to use dynamic frameworks`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` use_frameworks!`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` pod `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'OneSignal/OneSignal'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'>= 5.0.0'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'\u003c 6.0'`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` pod `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'OneSignal/OneSignalInAppMessages'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'>= 5.0.0'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'\u003c 6.0'`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`end`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`target `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'OneSignalNotificationServiceExtension'`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` do`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` use_frameworks!`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` pod `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'OneSignal/OneSignal'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'>= 5.0.0'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'\u003c 6.0'`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`end`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`target `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'OneSignalWidgetExtension'`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` do`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` use_frameworks!`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` pod `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'OneSignal/OneSignal'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'>= 5.0.0'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'\u003c 6.0'`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`end`})}),`\n`]})})})]}),_jsxs(_components.p,{children:[`Xcode를 닫고 `,_jsx(_components.code,{children:`pod repo update \u0026\u0026 pod install`}),`을 실행하여 `,_jsx(_components.code,{children:`OneSignalLiveActivities`}),` pod를 설치합니다.`]}),_jsxs(_components.p,{children:[`이 작업을 수행한 후에도 “No such module ‘OneSignalLiveActivities’” 오류가 계속 표시되면 `,_jsx(_components.strong,{children:`“Widget Extension 타겟” > 일반 > 프레임워크 및 라이브러리 > + 아이콘`}),`으로 이동하여 종속성을 수동으로 추가할 수 있습니다. `,_jsx(_components.code,{children:`OneSignalLiveActivities`}),` 프레임워크를 선택합니다:`]}),_jsx(Frame,{caption:`종속성을 수동으로 추가합니다`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/onesignal/YOTSrtBSoqdrJ37A/images/docs/427d54ef84e97edaf0a7c3b158b48b3bec7305fb1764db9dd4ef7c340d77bc6c-image.png?fit=max\u0026auto=format\u0026n=YOTSrtBSoqdrJ37A\u0026q=85\u0026s=f7ba0aa4234ef69ebd7820ef5e50a18b`,\"data-og-width\":`1273`,width:`1273`,\"data-og-height\":`881`,height:`881`,\"data-path\":`images/docs/427d54ef84e97edaf0a7c3b158b48b3bec7305fb1764db9dd4ef7c340d77bc6c-image.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/onesignal/YOTSrtBSoqdrJ37A/images/docs/427d54ef84e97edaf0a7c3b158b48b3bec7305fb1764db9dd4ef7c340d77bc6c-image.png?w=280\u0026fit=max\u0026auto=format\u0026n=YOTSrtBSoqdrJ37A\u0026q=85\u0026s=a9a691f2c90a60e99d2e9cd8383c4607 280w, https://mintcdn.com/onesignal/YOTSrtBSoqdrJ37A/images/docs/427d54ef84e97edaf0a7c3b158b48b3bec7305fb1764db9dd4ef7c340d77bc6c-image.png?w=560\u0026fit=max\u0026auto=format\u0026n=YOTSrtBSoqdrJ37A\u0026q=85\u0026s=413e82478f2cad77cc3dee6c47689e5d 560w, https://mintcdn.com/onesignal/YOTSrtBSoqdrJ37A/images/docs/427d54ef84e97edaf0a7c3b158b48b3bec7305fb1764db9dd4ef7c340d77bc6c-image.png?w=840\u0026fit=max\u0026auto=format\u0026n=YOTSrtBSoqdrJ37A\u0026q=85\u0026s=6eda4b6f7cbaa88305863b1dc3e43078 840w, https://mintcdn.com/onesignal/YOTSrtBSoqdrJ37A/images/docs/427d54ef84e97edaf0a7c3b158b48b3bec7305fb1764db9dd4ef7c340d77bc6c-image.png?w=1100\u0026fit=max\u0026auto=format\u0026n=YOTSrtBSoqdrJ37A\u0026q=85\u0026s=2b6afb996f44e2ebb815e5a9192219d5 1100w, https://mintcdn.com/onesignal/YOTSrtBSoqdrJ37A/images/docs/427d54ef84e97edaf0a7c3b158b48b3bec7305fb1764db9dd4ef7c340d77bc6c-image.png?w=1650\u0026fit=max\u0026auto=format\u0026n=YOTSrtBSoqdrJ37A\u0026q=85\u0026s=60e6183971a874c9cb6ec012d0bd536b 1650w, https://mintcdn.com/onesignal/YOTSrtBSoqdrJ37A/images/docs/427d54ef84e97edaf0a7c3b158b48b3bec7305fb1764db9dd4ef7c340d77bc6c-image.png?w=2500\u0026fit=max\u0026auto=format\u0026n=YOTSrtBSoqdrJ37A\u0026q=85\u0026s=969c21e5a9215bb51aeb3cdf4ef4db20 2500w`})})]})]}),`\n`,_jsx(Heading,{level:`3`,id:`4-위젯-속성-및-ui-정의`,children:`4. 위젯 속성 및 UI 정의`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`your-nameLiveActivity.swift`}),` 파일(예: `,_jsx(_components.code,{children:`OneSignalWidgetLiveActivity.swift`}),`)을 열어 구조체의 속성을 정의하고 위젯 UI를 변경합니다.`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`your-nameAttributes`}),`는 Live Activity의 정적 콘텐츠를 설명합니다.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`ContentState`}),`는 Live Activity의 동적 콘텐츠를 설명합니다.`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`예시를 따르는 경우 아래 코드를 `,_jsx(_components.code,{children:`OneSignalWidgetLiveActivity.swift`}),` 파일에 복사하여 붙여넣습니다.`]}),`\n`,_jsx(CodeBlock,{filename:`your-nameLiveActivity.swift`,numberOfLines:`62`,language:`swift`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`swift`,children:_jsxs(_components.code,{language:`swift`,numberOfLines:`62`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:` ActivityKit`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:` WidgetKit`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:` SwiftUI`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// Import the OneSignalLiveActivities module`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// If you get an error about the module not being found, return to step 3 and ensure you have added the OneSignalLiveActivities pod correctly.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:` OneSignalLiveActivities`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// Update to inherit from OneSignalLiveActivityAttributes`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// This will be used in your API requests to start a Live Activity`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`struct`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:` OneSignalWidgetAttributes`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:`OneSignalLiveActivityAttributes `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` // Update to inherit from OneSignalLiveActivityContentState`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` public`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` struct`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:` ContentState`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:`OneSignalLiveActivityContentState `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` // Dynamic stateful properties about your activity go here!`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` var`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` emoji: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:`String`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` // Add a reference to OneSignalLiveActivityContentStateData?`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` var`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` onesignal: OneSignalLiveActivityContentStateData`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`?`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` // Fixed non-changing properties about your activity go here!`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` var`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` name: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:`String`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` // Add a reference to OneSignalLiveActivityAttributeData`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` var`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` onesignal: OneSignalLiveActivityAttributeData`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`struct`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:` OneSignalWidgetLiveActivity`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:`Widget `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` var`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` body: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`some`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` WidgetConfiguration {`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:\" // Update to use `for: the-name-of-your-attributes-struct`\"})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` // This will be used in your API requests to start a Live Activity`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:` ActivityConfiguration`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:`for`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: OneSignalWidgetAttributes.`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`self`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) { context `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`in`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` // Lock screen/banner UI goes here`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` // Update to show the attributes sent via the payload`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:` VStack`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:` Text`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Hello `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`\\\\(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#D4D4D4`},children:`context.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`attributes`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`name`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`)`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` \\\\(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#D4D4D4`},children:`context.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`state`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`emoji`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`)`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` .`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:`activityBackgroundTint`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(Color.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`cyan`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` .`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:`activitySystemActionForegroundColor`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(Color.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`black`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` } `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:`dynamicIsland`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: { context `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`in`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:` DynamicIsland`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` // Expanded UI goes here. Compose the expanded UI through`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` // various regions, like leading/trailing/center/bottom`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:` DynamicIslandExpandedRegion`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`leading`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:` Text`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Leading\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:` DynamicIslandExpandedRegion`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`trailing`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:` Text`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Trailing\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:` DynamicIslandExpandedRegion`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`bottom`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:` Text`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Bottom `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`\\\\(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#D4D4D4`},children:`context.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`state`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`emoji`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`)`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` // more content`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` } `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:`compactLeading`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:` Text`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"L\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` } `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:`compactTrailing`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:` Text`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"T `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`\\\\(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#D4D4D4`},children:`context.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`state`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`emoji`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`)`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` } `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:`minimal`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:` Text`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(context.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`state`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`emoji`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` .`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:`widgetURL`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:`URL`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:`string`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"http://www.apple.com\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`))`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` .`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:`keylineTint`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(Color.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`red`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsx(Heading,{level:`3`,id:`5-메인-타겟-멤버십-허용`,children:`5. 메인 타겟 멤버십 허용`}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[`이 단계는 사용자 정의 속성(예: `,_jsx(_components.code,{children:`OneSignalWidgetAttributes`}),`)을 사용할 때만 필요합니다. `,_jsx(_components.code,{children:`DefaultLiveActivityAttributes`}),`를 사용하는 경우 이 단계를 건너뛰세요 — 해당 타입은 OneSignal SDK에서 제공되며 메인 앱 타겟에서 이미 접근 가능합니다.`]})}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`your-nameLiveActivity.swift`}),` 파일의 `,_jsx(_components.strong,{children:`Target Membership`}),` 목록에 메인 앱 타겟을 추가합니다. 이는 메인 앱 타겟이 설정 호출(6단계)에서 사용자 정의 속성 구조체를 참조할 수 있도록 하기 위해 필요합니다.`]}),`\n`,_jsxs(_components.p,{children:[`Xcode에서 화면 오른쪽의 인스펙터 패널을 엽니다. `,_jsx(_components.strong,{children:`Target Membership`}),` 내에서 `,_jsx(_components.strong,{children:`+`}),` 버튼을 클릭하고 `,_jsx(_components.code,{children:`ContentView`}),` 및 OneSignal 초기화 코드가 포함된 메인 앱 타겟을 선택합니다.`]}),`\n`,_jsx(Frame,{caption:`메인 타겟 멤버십을 허용합니다`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/onesignal/FXJz6yFfOqztaEND/images/live-activities/target-membership.png?fit=max\u0026auto=format\u0026n=FXJz6yFfOqztaEND\u0026q=85\u0026s=3315253623dfec6c13a56ff30a156772`,\"data-og-width\":`2392`,width:`2392`,\"data-og-height\":`1488`,height:`1488`,\"data-path\":`images/live-activities/target-membership.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/onesignal/FXJz6yFfOqztaEND/images/live-activities/target-membership.png?w=280\u0026fit=max\u0026auto=format\u0026n=FXJz6yFfOqztaEND\u0026q=85\u0026s=b6be39d136a1ca35145d6459a87010b7 280w, https://mintcdn.com/onesignal/FXJz6yFfOqztaEND/images/live-activities/target-membership.png?w=560\u0026fit=max\u0026auto=format\u0026n=FXJz6yFfOqztaEND\u0026q=85\u0026s=ec69693a8bf53a4c0ecd5f94f2a42b09 560w, https://mintcdn.com/onesignal/FXJz6yFfOqztaEND/images/live-activities/target-membership.png?w=840\u0026fit=max\u0026auto=format\u0026n=FXJz6yFfOqztaEND\u0026q=85\u0026s=b066175a23cae2fd728336bd0d97e6f7 840w, https://mintcdn.com/onesignal/FXJz6yFfOqztaEND/images/live-activities/target-membership.png?w=1100\u0026fit=max\u0026auto=format\u0026n=FXJz6yFfOqztaEND\u0026q=85\u0026s=32e622e4a6fbc032a27e10c6e29f8a4f 1100w, https://mintcdn.com/onesignal/FXJz6yFfOqztaEND/images/live-activities/target-membership.png?w=1650\u0026fit=max\u0026auto=format\u0026n=FXJz6yFfOqztaEND\u0026q=85\u0026s=5c890709f9beb0bacf22c0e2fe832461 1650w, https://mintcdn.com/onesignal/FXJz6yFfOqztaEND/images/live-activities/target-membership.png?w=2500\u0026fit=max\u0026auto=format\u0026n=FXJz6yFfOqztaEND\u0026q=85\u0026s=3e4ab98cc4ea58fd89ab3447081366e1 2500w`})}),`\n`,_jsx(Heading,{level:`3`,id:`6-appdelegate에-설정-메서드-추가`,children:`6. AppDelegate에 설정 메서드 추가`}),`\n`,_jsxs(_components.p,{children:[`OneSignal SDK 초기화 후 `,_jsx(_components.code,{children:`AppDelegate`}),`에서 `,_jsx(_components.code,{children:`OneSignal.LiveActivities.setup`}),`을 호출합니다.`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`OneSignalWidgetAttributes`}),`를 Live Activity 속성 구조체의 이름으로 바꿉니다.`]}),`\n`,_jsx(CodeBlock,{filename:`AppDelegate`,numberOfLines:`9`,language:`swift`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`swift`,children:_jsxs(_components.code,{language:`swift`,numberOfLines:`9`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// Import the OneSignalLiveActivities module`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:` OneSignalLiveActivities`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// This should be added after initializing the OneSignal SDK`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`if`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:` #available`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`iOS`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:` 16.1`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`*`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`\tOneSignal.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`LiveActivities`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:`setup`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(OneSignalWidgetAttributes.`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`self`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` // If you have multiple Live Activities, you can add them here with the setup method`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` // OneSignal.LiveActivities.setup(LiveActivityWidgetAttributes-2.self)`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsx(_components.p,{children:`이는 ActivityKit 비동기 시퀀스를 사용하여 업데이트를 관리하고 보고합니다.`}),`\n`,_jsxs(Warning,{children:[_jsx(_components.p,{children:`앱에서 다음 시퀀스 중 하나를 직접 소비하는 경우 OneSignal Live Activity 동작을 방해할 수 있습니다:`}),_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`activityStateUpdates`}),`\n`,_jsx(_components.li,{children:`pushTokenUpdates`}),`\n`,_jsx(_components.li,{children:`pushToStartTokenUpdates`}),`\n`,_jsx(_components.li,{children:`activityUpdates`}),`\n`]})]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`live-activity-시작`,children:`Live Activity 시작`}),`\n`,_jsx(_components.p,{children:`기기에서 Live Activity를 시작하는 두 가지 옵션이 있습니다:`}),`\n`,_jsxs(Tabs,{children:[_jsxs(Tab,{title:`Push-to-start`,id:`push-to-start`,children:[_jsxs(_components.p,{children:[_jsx(_components.a,{href:`/reference/start-live-activity`,children:`Push To Start API 요청`}),`을 보냅니다. 모든 이름과 ID가 위젯 구성과 정확히 일치하는지 확인합니다(매개변수는 대소문자를 구분함). 누락되거나 잘못 추가된 것이 있으면 위젯을 실행하려고 할 때 문제가 발생할 수 있습니다.`]}),_jsx(_components.p,{children:`위의 예시에서 작동하는 요청 예시는 다음과 같습니다.`}),_jsx(_components.p,{children:`바꾸기:`}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`YOUR_APP_ID`}),`를 OneSignal 앱 ID로 바꿉니다.`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`YOUR_APP_API_KEY`}),`를 OneSignal API 키로 바꿉니다.`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`OneSignalWidgetAttributes`}),`를 Widget Attributes 구조체의 이름으로 바꿉니다.`]}),`\n`,_jsx(CodeBlock,{filename:`curl`,numberOfLines:`24`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`24`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`curl --location 'https://api.onesignal.com/apps/YOUR_APP_ID/activities/activity/OneSignalWidgetAttributes' \\\\`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`--header 'Authorization: key YOUR_APP_API_KEY' \\\\`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`--header 'Content-Type: application/json' \\\\`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`--data '{`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` \"event\": \"start\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` \"activity_id\": \"push-to-start\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` \"included_segments\": [`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` \"Subscribed Users\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` ],`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` \"event_attributes\": {`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` \"name\": \"World\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` },`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` \"event_updates\": {`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` \"emoji\":\"🤩\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` },`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` \"name\": \"Live Activities Test\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` \"contents\": {`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` \"en\": \"A push started this Live Activity\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` },`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` \"headings\": {`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` \"en\": \"Live Activity Started\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` }'`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`]}),`\n`]}),_jsx(_components.p,{children:`제공된 예시 코드를 따르는 경우 기기의 잠금 화면에 Live Activity가 표시됩니다.`}),_jsx(Frame,{caption:`잠금 화면의 Live Activity`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/onesignal/FXJz6yFfOqztaEND/images/live-activities/live-activity-lock-screen.jpg?fit=max\u0026auto=format\u0026n=FXJz6yFfOqztaEND\u0026q=85\u0026s=8abc098ce8772b1c457e5f1effc8c14e`,\"data-og-width\":`900`,width:`900`,\"data-og-height\":`385`,height:`385`,\"data-path\":`images/live-activities/live-activity-lock-screen.jpg`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/onesignal/FXJz6yFfOqztaEND/images/live-activities/live-activity-lock-screen.jpg?w=280\u0026fit=max\u0026auto=format\u0026n=FXJz6yFfOqztaEND\u0026q=85\u0026s=ca9b673966074c5bca80560cb4f6224a 280w, https://mintcdn.com/onesignal/FXJz6yFfOqztaEND/images/live-activities/live-activity-lock-screen.jpg?w=560\u0026fit=max\u0026auto=format\u0026n=FXJz6yFfOqztaEND\u0026q=85\u0026s=62509d25d35ed81d8b2d915637fe9c87 560w, https://mintcdn.com/onesignal/FXJz6yFfOqztaEND/images/live-activities/live-activity-lock-screen.jpg?w=840\u0026fit=max\u0026auto=format\u0026n=FXJz6yFfOqztaEND\u0026q=85\u0026s=3d5d4c0f8730c73d0c0962c315e2acd1 840w, https://mintcdn.com/onesignal/FXJz6yFfOqztaEND/images/live-activities/live-activity-lock-screen.jpg?w=1100\u0026fit=max\u0026auto=format\u0026n=FXJz6yFfOqztaEND\u0026q=85\u0026s=9a10b47a7a1dbf4ad7f87a5bf64cf13c 1100w, https://mintcdn.com/onesignal/FXJz6yFfOqztaEND/images/live-activities/live-activity-lock-screen.jpg?w=1650\u0026fit=max\u0026auto=format\u0026n=FXJz6yFfOqztaEND\u0026q=85\u0026s=a41277d04f324417a4690c6c3be09757 1650w, https://mintcdn.com/onesignal/FXJz6yFfOqztaEND/images/live-activities/live-activity-lock-screen.jpg?w=2500\u0026fit=max\u0026auto=format\u0026n=FXJz6yFfOqztaEND\u0026q=85\u0026s=3bff4107ccfce8856035aba24f1caf5e 2500w`})}),_jsxs(Check,{children:[_jsx(_components.p,{children:`push-to-start로 Live Activity를 성공적으로 시작했습니다!`}),_jsx(_components.p,{children:`사용자는 계속 업데이트를 받으려면 “허용”을 선택해야 합니다.`})]})]}),_jsxs(Tab,{title:`Trigger-in-app`,id:`trigger-in-app`,children:[_jsx(_components.p,{children:`사용자가 앱과 상호 작용하는 동안 Live Activity를 트리거하도록 할 수 있습니다.`}),_jsx(_components.p,{children:`예를 들어 사용자에게 활성 이벤트가 진행 중일 때(주문을 했거나, 게임이 진행 중이거나, 이벤트가 곧 시작될 예정 등) 앱을 열면 Live Activity를 자동으로 표시할 수 있습니다.`}),_jsx(_components.p,{children:`이 예시에서는 버튼을 사용하여 Live Activity를 수동으로 시작합니다.`}),_jsx(CodeBlock,{filename:``,numberOfLines:`33`,language:`swift`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`swift`,children:_jsxs(_components.code,{language:`swift`,numberOfLines:`33`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:` SwiftUI`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:` ActivityKit`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:` OneSignalFramework`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:` OneSignalLiveActivities`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`struct`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:` ContentView`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:`View `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` @StateObject`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` private`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` var`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` viewModel `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:` LiveActivityViewModel`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`()`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` var`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` body: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`some`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` View {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:` VStack`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:` Button`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Start Live Activity\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` viewModel.`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:`startLiveActivity`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`()`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`class`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:` LiveActivityViewModel`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:`ObservableObject `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` func`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` startLiveActivity`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`() {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` let`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` osAttributes `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` OneSignalLiveActivityAttributeData.`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:`create`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:`activityId`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"click-to-start\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` let`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` attributes `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:` OneSignalWidgetAttributes`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"OneSignal\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:`onesignal`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: osAttributes)`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` let`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` contentState `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` OneSignalWidgetAttributes.`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:`ContentState`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:`emoji`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"🤩\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:`onesignal`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`nil`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` do`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` let`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` activity `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` try`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` Activity`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`\u003c`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`OneSignalWidgetAttributes`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`>`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:`request`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:` attributes`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: attributes,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:` contentState`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: contentState,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:` pushType`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: .`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`token`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` } `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`catch`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:` print`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(error.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`localizedDescription`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),_jsx(_components.p,{children:`버튼을 클릭하면 Live Activity가 실행됩니다.`})]})]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`live-activity-클릭-추적`,children:`Live Activity 클릭 추적`}),`\n`,_jsx(_components.p,{children:`OneSignal의 클릭 추적을 구현하여 사용자가 Live Activities와 Dynamic Islands를 탭할 때를 추적합니다. 이를 통해 참여도를 측정하고 선택적으로 사용자를 앱의 특정 콘텐츠로 딥 링크할 수 있습니다.`}),`\n`,_jsx(Heading,{level:`3`,id:`1단계-위젯에-클릭-추적-추가`,children:`1단계: 위젯에 클릭 추적 추가`}),`\n`,_jsxs(_components.p,{children:[`Live Activity 위젯에서 클릭을 추적하려는 UI 컴포넌트에 `,_jsx(_components.code,{children:`.onesignalWidgetURL()`}),` 수정자를 추가합니다:`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`30`,language:`swift`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`swift`,children:_jsxs(_components.code,{language:`swift`,numberOfLines:`30`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:` OneSignalLiveActivities`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`struct`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:` ExampleAppFirstWidget`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:`Widget `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` var`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` body: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`some`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` WidgetConfiguration {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:` ActivityConfiguration`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:`for`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: ExampleAppFirstWidgetAttributes.`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`self`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) { context `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`in`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:` VStack`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:` Spacer`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`()`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:` Text`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Sample Text \"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` +`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` context.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`attributes`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`title`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`).`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:`font`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`headline`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` // Other UI code`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` .`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:`onesignalWidgetURL`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:`URL`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:`string`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"myapp://settings\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`), `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:`context`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: context)`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` // Pass nil if you don't need deep linking: .onesignalWidgetURL(nil, context: context)`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` } `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:`dynamicIsland`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: { context `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`in`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:` DynamicIsland`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:` DynamicIslandExpandedRegion`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`leading`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:` Text`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Leading\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` // Other Dynamic Island regions`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` } `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:`compactLeading`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:` Text`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"L\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` } `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:`compactTrailing`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:` Text`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"T\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` } `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:`minimal`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:` Text`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Min\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` .`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:`onesignalWidgetURL`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:`URL`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:`string`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"myapp://settings\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`), `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:`context`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: context)`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` // Optional: Track Dynamic Island clicks separately`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`중요 고려 사항:`})}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`딥 링크용 URL을 전달하거나 내비게이션 없이 클릭 추적만 원하는 경우 `,_jsx(_components.code,{children:`nil`}),`을 전달할 수 있습니다`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`.onesignalWidgetURL()`}),`을 사용하는 경우 뷰 계층 구조에 Apple의 `,_jsx(_components.code,{children:`.widgetURL()`}),` 수정자를 `,_jsx(_components.strong,{children:`포함할 수 없습니다`})]}),`\n`,_jsx(_components.li,{children:`두 클릭을 모두 추적하려면 메인 Live Activity 뷰와 Dynamic Island 모두에 수정자를 적용합니다`}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`2단계-앱에서-url-처리`,children:`2단계: 앱에서 URL 처리`}),`\n`,_jsx(_components.p,{children:`클릭을 추적하고 사용자를 적절히 라우팅하기 위해 앱에 URL 처리를 추가합니다:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`35`,language:`swift`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`swift`,children:_jsxs(_components.code,{language:`swift`,numberOfLines:`35`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:` OneSignalLiveActivities`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// AppDelegate 예시:`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`func`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` application`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`_`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` app`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: UIApplication, `}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`open`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` url`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: URL, `}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`options`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [UIApplication.OpenURLOptionsKey : `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:`Any`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`] `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` [`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`]) `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`->`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:` Bool`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` let`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` originalURL `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` OneSignal.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`LiveActivities`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:`trackClickAndReturnOriginal`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(url)`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` // 원본 URL을 처리하여 사용자 내비게이트`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` if`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` let`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` url `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` originalURL {`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` // 커스텀 URL 라우팅 로직`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` return`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:` handleDeepLink`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(url)`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` return`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` false`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// SceneDelegate 예시:`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`func`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` scene`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`_`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` scene`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: UIScene, `}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`openURLContexts`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` URLContexts`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:`Set`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` guard`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` let`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` url `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` URLContexts.`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:`first`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`?`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:`url`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` else`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` { `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`return`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` let`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` originalURL `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` OneSignal.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`LiveActivities`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:`trackClickAndReturnOriginal`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(url)`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` if`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` let`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` url `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` originalURL {`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` // 커스텀 URL 라우팅 로직`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:` handleDeepLink`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(url)`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// SwiftUI 예시:`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:`onOpenURL`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` { url `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`in`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` let`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` originalURL `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` OneSignal.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`LiveActivities`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:`trackClickAndReturnOriginal`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(url)`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` if`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` let`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` url `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` originalURL {`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` // 커스텀 URL 라우팅 로직`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:` handleDeepLink`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(url)`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`trackClickAndReturnOriginal()`}),` 메서드는 OneSignal로 클릭을 자동으로 추적하고 앱이 처리할 위젯에서 지정한 원본 URL을 반환합니다.`]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`live-activity-업데이트`,children:`Live Activity 업데이트`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.a,{href:`/reference/update-live-activity-api`,children:`Live Activity 업데이트 API`}),`를 사용하여 활성 위젯을 업데이트합니다.`]}),`\n`,_jsxs(_components.p,{children:[`활동을 시작할 때 사용한 `,_jsx(_components.code,{children:`activity_id`}),`와 일치시킵니다.`]}),`\n`,_jsxs(_components.p,{children:[`이 예시 요청은 정의한 `,_jsx(_components.code,{children:`push-to-start`}),`라는 `,_jsx(_components.code,{children:`activity_id`}),`가 있으므로 push-to-start 위젯을 업데이트합니다.\nclick-to-start 위젯을 업데이트하려면 요청 경로를 `,_jsx(_components.code,{children:`push-to-start`}),` 대신 `,_jsx(_components.code,{children:`click-to-start`}),`를 사용하도록 업데이트합니다.`]}),`\n`,_jsx(CodeBlock,{filename:`curl`,numberOfLines:`15`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`15`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`curl --location 'https://api.onesignal.com/apps/YOUR_APP_ID/live_activities/push-to-start/notifications' \\\\`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`--header 'Content-Type: application/json' \\\\`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`--header 'Accept: application/json' \\\\`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`--header 'Authorization: key YOUR_API_KEY' \\\\`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`--data '{`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` \"event\": \"update\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` \"event_updates\": {`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` \"emoji\": \"😎\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` },`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` \"contents\": {`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` \"en\": \"A push updated this Live Activity\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` },`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` \"name\": \"Live Activity Updated\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`}'`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsx(Frame,{caption:`Live Activity가 업데이트되었습니다`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/onesignal/FXJz6yFfOqztaEND/images/live-activities/live-activity-updated.jpg?fit=max\u0026auto=format\u0026n=FXJz6yFfOqztaEND\u0026q=85\u0026s=729ab3b33c297c15e52617ebd065b293`,\"data-og-width\":`895`,width:`895`,\"data-og-height\":`152`,height:`152`,\"data-path\":`images/live-activities/live-activity-updated.jpg`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/onesignal/FXJz6yFfOqztaEND/images/live-activities/live-activity-updated.jpg?w=280\u0026fit=max\u0026auto=format\u0026n=FXJz6yFfOqztaEND\u0026q=85\u0026s=e8b80568c502b000003f99840330efd6 280w, https://mintcdn.com/onesignal/FXJz6yFfOqztaEND/images/live-activities/live-activity-updated.jpg?w=560\u0026fit=max\u0026auto=format\u0026n=FXJz6yFfOqztaEND\u0026q=85\u0026s=6873a054faeb5d63522c237cff6b1a1e 560w, https://mintcdn.com/onesignal/FXJz6yFfOqztaEND/images/live-activities/live-activity-updated.jpg?w=840\u0026fit=max\u0026auto=format\u0026n=FXJz6yFfOqztaEND\u0026q=85\u0026s=184a30ef6d596d03f6843c4a1b2e894c 840w, https://mintcdn.com/onesignal/FXJz6yFfOqztaEND/images/live-activities/live-activity-updated.jpg?w=1100\u0026fit=max\u0026auto=format\u0026n=FXJz6yFfOqztaEND\u0026q=85\u0026s=81088dcd27e1a605999d9586f11e1b0d 1100w, https://mintcdn.com/onesignal/FXJz6yFfOqztaEND/images/live-activities/live-activity-updated.jpg?w=1650\u0026fit=max\u0026auto=format\u0026n=FXJz6yFfOqztaEND\u0026q=85\u0026s=420b64eefeac5a84794130aae2e70788 1650w, https://mintcdn.com/onesignal/FXJz6yFfOqztaEND/images/live-activities/live-activity-updated.jpg?w=2500\u0026fit=max\u0026auto=format\u0026n=FXJz6yFfOqztaEND\u0026q=85\u0026s=e6d90ceb36c5e83f472521b51a3d70e0 2500w`})}),`\n`,_jsxs(Check,{children:[_jsx(_components.p,{children:`Live Activity를 성공적으로 업데이트했습니다!`}),_jsxs(_components.p,{children:[`Live Activity 업데이트에 대한 자세한 내용은 `,_jsx(_components.a,{href:`/reference/update-live-activity-api`,children:`Live Activity 업데이트 API`}),`를 확인하세요.`]})]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`live-activity-종료`,children:`Live Activity 종료`}),`\n`,_jsxs(_components.p,{children:[`동일한 `,_jsx(_components.a,{href:`/reference/update-live-activity-api`,children:`Live Activity 업데이트 API`}),`를 사용하여 `,_jsx(_components.code,{children:`\"event\": \"end\"`}),`를 설정하여 Live Activity를 종료할 수 있습니다.`]}),`\n`,_jsx(CodeBlock,{filename:`curl`,numberOfLines:`15`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`15`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`curl --location 'https://api.onesignal.com/apps/YOUR_APP_ID/live_activities/my_activity_id/notifications' \\\\`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`--header 'Content-Type: application/json' \\\\`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`--header 'Accept: application/json' \\\\`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`--header 'Authorization: key YOUR_API_KEY' \\\\`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`--data '{`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` \"event\": \"end\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` \"event_updates\": {`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` \"emoji\": \"👋\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` },`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` \"contents\": {`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` \"en\": \"A push ended this Live Activity\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` },`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` \"name\": \"Live Activity Ended\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`}'`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsx(_components.p,{children:`Live Activity가 종료될 수 있는 다른 방법:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`SDK `,_jsxs(_components.a,{href:`/docs/ko/mobile-sdk-reference#exit`,children:[_jsx(_components.code,{children:`exit()`}),` 메서드`]}),`를 사용합니다.`]}),`\n`,_jsx(_components.li,{children:`사용자가 Live Activity를 수동으로 스와이프하여 제거합니다.`}),`\n`,_jsx(_components.li,{children:`사용자가 iOS 설정에서 Live Activities에 대한 권한을 취소합니다.`}),`\n`]}),`\n`,_jsx(Frame,{caption:`Live Activity가 종료되었습니다`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/onesignal/FXJz6yFfOqztaEND/images/live-activities/live-activity-ended.jpg?fit=max\u0026auto=format\u0026n=FXJz6yFfOqztaEND\u0026q=85\u0026s=734a62b67cb2fe989203087a22945448`,\"data-og-width\":`1218`,width:`1218`,\"data-og-height\":`200`,height:`200`,\"data-path\":`images/live-activities/live-activity-ended.jpg`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/onesignal/FXJz6yFfOqztaEND/images/live-activities/live-activity-ended.jpg?w=280\u0026fit=max\u0026auto=format\u0026n=FXJz6yFfOqztaEND\u0026q=85\u0026s=7a8e87bb568ae4ac38d54dead1f45d60 280w, https://mintcdn.com/onesignal/FXJz6yFfOqztaEND/images/live-activities/live-activity-ended.jpg?w=560\u0026fit=max\u0026auto=format\u0026n=FXJz6yFfOqztaEND\u0026q=85\u0026s=fd3737b978fa8d7706ee829a8666e485 560w, https://mintcdn.com/onesignal/FXJz6yFfOqztaEND/images/live-activities/live-activity-ended.jpg?w=840\u0026fit=max\u0026auto=format\u0026n=FXJz6yFfOqztaEND\u0026q=85\u0026s=c0103d174f157b91baf4e9bbd5bc3b5a 840w, https://mintcdn.com/onesignal/FXJz6yFfOqztaEND/images/live-activities/live-activity-ended.jpg?w=1100\u0026fit=max\u0026auto=format\u0026n=FXJz6yFfOqztaEND\u0026q=85\u0026s=16c85de7c3ea651a144e5d386b1a366c 1100w, https://mintcdn.com/onesignal/FXJz6yFfOqztaEND/images/live-activities/live-activity-ended.jpg?w=1650\u0026fit=max\u0026auto=format\u0026n=FXJz6yFfOqztaEND\u0026q=85\u0026s=6b82d18ccc342405eb6234689b8908ae 1650w, https://mintcdn.com/onesignal/FXJz6yFfOqztaEND/images/live-activities/live-activity-ended.jpg?w=2500\u0026fit=max\u0026auto=format\u0026n=FXJz6yFfOqztaEND\u0026q=85\u0026s=1959d2d82fc11cea15f4d2e96a04850a 2500w`})}),`\n`,_jsx(Check,{children:_jsx(_components.p,{children:`Live Activity를 성공적으로 종료하고 예시를 완료했습니다!`})}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`모범-사례-및-권장-사항`,children:`모범 사례 및 권장 사항`}),`\n`,_jsx(Heading,{level:`3`,id:`디자인-고려-사항`,children:`디자인 고려 사항`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`Apple의 `,_jsx(_components.a,{href:`https://developer.apple.com/design/human-interface-guidelines/live-activities`,children:`Live Activities 휴먼 인터페이스 가이드라인`}),`을 따르세요.`,`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`중요한 정보를 우선순위로 지정하여 빠르게 이해하기 쉽게 만듭니다.`}),`\n`,_jsx(_components.li,{children:`Dynamic Island에 주의를 끄는 요소를 앱에 추가하지 마세요.`}),`\n`,_jsx(_components.li,{children:`여백을 사용하고 요소 간 간격을 유지합니다.`}),`\n`,_jsx(_components.li,{children:`배경에 굵은 색상을 사용합니다. 라이트 및 다크 모드 모두에 대해 디자인합니다.`}),`\n`]}),`\n`]}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`기능`,children:`기능`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`Apple은 각 `,_jsx(_components.a,{href:`https://developer.apple.com/documentation/activitykit/displaying-live-data-with-live-activities#Review-Live-Activity-presentations`,children:`Live Activity 프레젠테이션`}),`을 지원해야 합니다.`,`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`https://developer.apple.com/design/human-interface-guidelines/live-activities#Compact-presentation`,children:`컴팩트`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`https://developer.apple.com/design/human-interface-guidelines/live-activities#Minimal-presentation`,children:`최소`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`https://developer.apple.com/design/human-interface-guidelines/live-activities#Expanded-presentation`,children:`확장`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`https://developer.apple.com/design/human-interface-guidelines/live-activities#The-Lock-Screen`,children:`잠금 화면`})}),`\n`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.a,{href:`https://developer.apple.com/design/human-interface-guidelines/live-activities#Offering-interactivity`,children:`딥 링크`}),`를 테스트합니다.`]}),`\n`,_jsxs(_components.li,{children:[`Apple의 `,_jsx(_components.a,{href:`https://developer.apple.com/documentation/activitykit/displaying-live-data-with-live-activities`,children:`Live Activities로 라이브 데이터 표시`}),` 가이드를 검토합니다.`]}),`\n`,_jsx(_components.li,{children:`Live Activity에 민감한 정보를 표시하지 마세요.`}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`대체-메시지-설정`,children:`대체 메시지 설정`}),`\n`,_jsxs(_components.p,{children:[`Live Activity가 시작된 후 사용자가 업데이트를 받을 수 없는 경우, 앱을 열면 활동이 새로고침됩니다. 첫 번째 업데이트를 보낸 것으로 예상되는 시점 이후의 미래 날짜와 시간으로 `,_jsx(_components.a,{href:`/reference/start-live-activity#body-stale-date`,children:`stale date`}),`를 설정합니다. 업데이트를 받지 못한 사용자에게는 대신 대체 메시지가 표시됩니다.`]}),`\n`,_jsx(_components.p,{children:`위젯 UI에서 이 “stale” 상태를 수신 대기하여 대체 메시지를 표시할 수 있습니다:`}),`\n`,_jsx(Frame,{caption:`Live Activity가 stale 상태가 될 때 표시되는 대체 메시지.`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/onesignal/CKWnlQN-faoVTpm2/images/live-activities/live-activity-refresh.png?fit=max\u0026auto=format\u0026n=CKWnlQN-faoVTpm2\u0026q=85\u0026s=180ef1cc07313ef04361fbd45e2fec24`,alt:`대체 메시지를 표시하는 Live Activity 위젯`,\"data-og-width\":`509`,width:`509`,\"data-og-height\":`181`,height:`181`,\"data-path\":`images/live-activities/live-activity-refresh.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/onesignal/CKWnlQN-faoVTpm2/images/live-activities/live-activity-refresh.png?w=280\u0026fit=max\u0026auto=format\u0026n=CKWnlQN-faoVTpm2\u0026q=85\u0026s=cc33640c692e9515c3b01eed8e3a6212 280w, https://mintcdn.com/onesignal/CKWnlQN-faoVTpm2/images/live-activities/live-activity-refresh.png?w=560\u0026fit=max\u0026auto=format\u0026n=CKWnlQN-faoVTpm2\u0026q=85\u0026s=cdef564afb6fb1de2a9f65525d552adb 560w, https://mintcdn.com/onesignal/CKWnlQN-faoVTpm2/images/live-activities/live-activity-refresh.png?w=840\u0026fit=max\u0026auto=format\u0026n=CKWnlQN-faoVTpm2\u0026q=85\u0026s=0501a6d61b92469956b5791fd9861a50 840w, https://mintcdn.com/onesignal/CKWnlQN-faoVTpm2/images/live-activities/live-activity-refresh.png?w=1100\u0026fit=max\u0026auto=format\u0026n=CKWnlQN-faoVTpm2\u0026q=85\u0026s=65432dedb1f739a4893c9e05b5481b56 1100w, https://mintcdn.com/onesignal/CKWnlQN-faoVTpm2/images/live-activities/live-activity-refresh.png?w=1650\u0026fit=max\u0026auto=format\u0026n=CKWnlQN-faoVTpm2\u0026q=85\u0026s=24ceb33f618184e8d0d35deb731bcef6 1650w, https://mintcdn.com/onesignal/CKWnlQN-faoVTpm2/images/live-activities/live-activity-refresh.png?w=2500\u0026fit=max\u0026auto=format\u0026n=CKWnlQN-faoVTpm2\u0026q=85\u0026s=5d4119e51aeb2f9f7de45138347b3ad6 2500w`})}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`21`,language:`swift`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`swift`,children:_jsxs(_components.code,{language:`swift`,numberOfLines:`21`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`struct`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:` ptsLiveActivity`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:`Widget `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` var`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` body: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`some`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` WidgetConfiguration {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:` ActivityConfiguration`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:`for`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: ptsAttributes.`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`self`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) { context `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`in`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` //This will flip to true after the stale date`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` let`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` isStale `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` context.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`isStale`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` if`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` !`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`isStale{`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:` VStack`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:` Text`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`\\\\(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#D4D4D4`},children:`context.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`attributes`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`name`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`)`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` \\\\(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#D4D4D4`},children:`context.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`state`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`emoji`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`)`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` .`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:`activityBackgroundTint`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(Color.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`cyan`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` .`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:`activitySystemActionForegroundColor`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(Color.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`black`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` } `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`else`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` //If the message is stale, we request the user clicks the widget to open the app`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:` VStack`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:` Text`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Something went wrong, please click to refresh\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` // ... Rest of the widget UI`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`faq`,children:`FAQ`}),`\n`,_jsx(Heading,{level:`3`,id:`높은-우선-순위-업데이트에-대한-예산은-얼마입니까`,children:`높은 우선 순위 업데이트에 대한 예산은 얼마입니까?`}),`\n`,_jsxs(_components.p,{children:[`Apple은 높은 우선 순위(`,_jsx(_components.code,{children:`priority: 10`}),`) 업데이트에 대한 고정된 제한을 제공하지 않지만 동적 시스템 수준 예산을 시행합니다. 짧은 기간 동안 너무 많은 높은 우선 순위 업데이트를 보내면 업데이트가 지연되거나 삭제되는 조절이 발생할 수 있습니다.`]}),`\n`,_jsx(_components.p,{children:`조절 위험을 줄이려면:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`우선 순위 수준을 혼합하여 사용합니다: Apple은 균형을 위해 `,_jsx(_components.code,{children:`priority: 5`}),`(표준) 및 `,_jsx(_components.code,{children:`priority: 10`}),`(높음)을 모두 사용할 것을 권장합니다.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`priority: 10`}),`은 시간에 민감하거나 중요한 업데이트(예: 주문 상태 변경, 게임 점수)에만 예약합니다.`]}),`\n`]}),`\n`,_jsx(_components.p,{children:`사용 사례에 빈번한 업데이트가 필요한 경우:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`앱의 `,_jsx(_components.code,{children:`Info.plist`}),` 파일에 `,_jsx(_components.code,{children:`NSSupportsLiveActivitiesFrequentUpdates`}),` 키를 Boolean `,_jsx(_components.code,{children:`YES`}),`로 설정하여 추가합니다.`]}),`\n`,_jsx(_components.li,{children:`이 예산이 초과되면 iOS가 사용자에게 추가 업데이트를 허용하라는 메시지를 표시할 수 있습니다. 사용자가 동의하면 Apple이 자동으로 허용된 업데이트 제한을 확장하여 원활한 경험을 유지합니다.`}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`자세한 내용은 `,_jsx(_components.a,{href:`https://developer.apple.com/documentation/activitykit/starting-and-updating-live-activities-with-activitykit-push-notifications#Determine-the-update-frequency`,children:`Apple의 개발자 문서`}),`를 참조하세요.`]}),`\n`,_jsx(Heading,{level:`3`,id:`메인-앱에서-live-activity-업데이트를-읽을-수-있습니까`,children:`메인 앱에서 Live Activity 업데이트를 읽을 수 있습니까?`}),`\n`,_jsx(_components.p,{children:`예. 디버깅 또는 UI 동기화를 위해 업데이트를 관찰할 수 있습니다:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`7`,language:`swift`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`swift`,children:_jsxs(_components.code,{language:`swift`,numberOfLines:`7`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:`Task`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` for`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` await`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` content `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`in`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` activity.contentUpdates {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:` print`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"LA activity id: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`\\\\(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#D4D4D4`},children:`activity.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`id`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`)`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`, content update: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`\\\\(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#D4D4D4`},children:`content.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`state`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`)`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// Example output:`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// LA activity id: EFE6D54D-F7E1-45EF-9514-4C2598F8DED2, content update: ContentState(message: \"My message from payload\")`})}),`\n`]})})}),`\n`,_jsx(_components.p,{children:`수명 주기 변경 사항을 추적합니다:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`16`,language:`swift`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`swift`,children:_jsxs(_components.code,{language:`swift`,numberOfLines:`16`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:`Task`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` for`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` await`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` state `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`in`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` activity.activityStateUpdates {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:` print`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"LA state update: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`\\\\(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#D4D4D4`},children:`state`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`)`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` //If you wanted to do something based on the state, you would use this:`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` \tif`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` state `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`!=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` ActivityState.active {`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` //Do something here`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// Example output 1 - LA ended, but still visible`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// LA state update: active`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`/* State can be equal to 4 possible values on the ActivityState enum`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`active, dismissed, ended, and stale`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`*/`})}),`\n`]})})}),`\n`,_jsx(Heading,{level:`3`,id:`api가-구독자-제한을-초과했다는-오류-메시지와-함께-400을-반환했습니다-어떻게-해야-합니까`,children:`API가 구독자 제한을 초과했다는 오류 메시지와 함께 400을 반환했습니다. 어떻게 해야 합니까?`}),`\n`,_jsxs(_components.p,{children:[`푸시 구독자 수가 플랜의 푸시 구독자보다 많은 경우 다음 플랜으로 계정을 업그레이드하거나 `,_jsx(_components.code,{children:`support@onesignal.com`}),`으로 문의하세요. 최신 플랜 세부 정보는 `,_jsx(_components.a,{href:`https://onesignal.com/pricing`,children:`여기를 참조하세요`}),`.`]}),`\n`,_jsx(Heading,{level:`3`,id:`푸시-및-live-activities를-모두-보내는-것을-피하려면-어떻게-해야-합니까`,children:`푸시 및 Live Activities를 모두 보내는 것을 피하려면 어떻게 해야 합니까?`}),`\n`,_jsx(_components.p,{children:`애플리케이션이 이미 일련의 푸시 알림을 보낼 수 있으며, 설계된 Live Activity가 이러한 푸시 알림의 필요성을 대체합니다. 예를 들어 푸시를 통해 점수 업데이트를 보내는 경우 Live Activity를 통해 이를 대체할 수 있습니다.`}),`\n`,_jsxs(_components.p,{children:[`사용자가 너무 많은 메시지를 받지 않도록 하려면 사용자가 Live Activity를 선택할 때 데이터 태그를 추가하는 것이 좋습니다. 이 데이터 태그를 추가하면 동일하거나 유사한 콘텐츠를 포함할 수 있는 푸시 메시지에서 이 데이터 태그가 있는 사용자를 제외할 수 있습니다. `,_jsx(_components.a,{href:`/docs/ko/add-user-data-tags`,children:`데이터 태그`}),` 및 `,_jsx(_components.a,{href:`/docs/ko/segmentation`,children:`세그먼트`}),`에 대해 자세히 알아보세요.`]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`문제-해결`,children:`문제 해결`}),`\n`,_jsx(Heading,{level:`3`,id:`수신자-없음`,children:`수신자 없음`}),`\n`,_jsx(_components.p,{children:`Live Activity를 시작하거나 업데이트하려고 할 때 사용자를 찾으려면 활동 유형, 위젯 및 cURL 요청이 모두 일치하는 값을 갖도록 해야 합니다.`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[`요청의 경로 매개변수를 확인하여 올바르게 형식화된 요청을 서버에 보내고 있는지 확인합니다. 앱 ID는 `,_jsx(_components.code,{children:`OneSignal.Initialize`}),` 메서드에 사용된 앱 ID와 일치해야 하며 활동 유형은 Live Activity 파일에서 정의한 유형과 일치해야 합니다.`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[_jsx(_components.a,{href:`/reference/start-live-activity`,children:`Push To Start API 요청`}),`의 본문에 다음 매개변수가 있어야 합니다:`]}),`\n`]}),`\n`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`event`}),`: `,_jsx(_components.code,{children:`\"start\"`})]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`event_updates`}),`: 활동 유형 아래의 구조체에서 정의하고 위젯에서 사용하는 동적 데이터입니다. 요청, 유형 및 위젯 간에 문자 대소문자 및 변수가 모두 일치하는지 확인합니다.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`event_attributes`}),`: 정적 데이터는 Event Updates와 동일한 논리를 따르며 사용 중인 모든 변수를 포함해야 하며 라이브 활동 및 요청의 모든 부분에서 일치해야 합니다`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`activity_id`}),`: 위젯에 ID를 할당하며 사용자의 기기에서 실행된 후 활동을 업데이트하는 데 사용됩니다.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`name`}),`: Live Activity 이름.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`contents`}),`: 푸시 전송에 필요한 메시지 콘텐츠.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`headings`}),`: 푸시 전송에 필요한 메시지 제목.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`included_segments`}),`와 같은 타겟팅 매개변수. `,_jsx(_components.a,{href:`/reference/create-message`,children:`사용 가능한 옵션`}),`.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`활동이-전송되었지만-수신되지-않음`,children:`활동이 전송되었지만 수신되지 않음`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`\n`,_jsx(_components.p,{children:`요청이 올바르게 형식화되었는지 확인합니다. 위젯에서 사용되는 필드가 생략되면 활동이 예상대로 실행되거나 업데이트되지 않을 수 있습니다.`}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[`API 요청에서 설정하는 `,_jsx(_components.code,{children:`priority`}),` 수준을 결정합니다. 이를 `,_jsx(_components.code,{children:`10`}),`(최고 우선 순위)으로 설정하는 경우 `,_jsx(_components.code,{children:`5`}),`로 낮추고 다시 테스트하세요. Apple은 자체 내부 속도 제한에 따라 너무 자주 전송되는 요청을 조절합니다.`]}),`\n`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`사용 사례가 더 자주 업데이트에 의존하는 경우 `,_jsx(_components.a,{href:`https://developer.apple.com/documentation/activitykit/starting-and-updating-live-activities-with-activitykit-push-notifications#Determine-the-update-frequency`,children:`Apple의 개발자 문서`}),`에 따라 Info.plist에 `,_jsx(_components.code,{children:`NSSupportsLiveActivitiesFrequentUpdates`}),` 키를 Boolean 유형으로 YES로 설정하여 추가합니다. Live Activity가 푸시 예산을 초과하면 사용자에게 대화 상자가 표시되며, Live Activity를 계속 허용하면 원활한 사용자 경험을 위해 예산이 자동으로 증가합니다.`]}),`\n`,_jsxs(Info,{children:[_jsx(_components.p,{children:`도움이 필요하신가요?`}),_jsxs(_components.p,{children:[`지원 팀과 채팅하거나 `,_jsx(_components.code,{children:`support@onesignal.com`}),`으로 이메일을 보내주세요.`]}),_jsx(_components.p,{children:`다음을 포함해 주세요:`}),_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`발생한 문제의 세부 정보 및 재현 단계(가능한 경우)`}),`\n`,_jsx(_components.li,{children:`OneSignal 앱 ID`}),`\n`,_jsx(_components.li,{children:`External ID 또는 Subscription ID(해당하는 경우)`}),`\n`,_jsx(_components.li,{children:`OneSignal 대시보드에서 테스트한 메시지의 URL(해당하는 경우)`}),`\n`,_jsxs(_components.li,{children:[`관련 `,_jsx(_components.a,{href:`/docs/ko/capturing-a-debug-log`,children:`로그 또는 오류 메시지`})]}),`\n`]}),_jsx(_components.p,{children:`기꺼이 도와드리겠습니다!`})]}),`\n`,_jsx(_components.hr,{})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Live Activities 개발자 설정","description":"OneSignal을 사용하여 iOS 앱에서 Live Activities를 설정하여 잠금 화면과 Dynamic Island에 실시간 업데이트를 표시합니다.","keywords":["Live Activities","Dynamic Island","push-to-start","ActivityKit","실시간 업데이트"],"href":"/docs/ko/live-activities-developer-setup"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"요구 사항","slug":"요구-사항","depth":2,"children":[]},{"title":"설정","slug":"설정","depth":2,"children":[{"title":"1. Widget Extension 추가","slug":"1-widget-extension-추가","depth":3,"children":[]},{"title":"2. Info.plist 업데이트","slug":"2-info-plist-업데이트","depth":3,"children":[]},{"title":"3. SDK 추가","slug":"3-sdk-추가","depth":3,"children":[]},{"title":"4. 위젯 속성 및 UI 정의","slug":"4-위젯-속성-및-ui-정의","depth":3,"children":[]},{"title":"5. 메인 타겟 멤버십 허용","slug":"5-메인-타겟-멤버십-허용","depth":3,"children":[]},{"title":"6. AppDelegate에 설정 메서드 추가","slug":"6-appdelegate에-설정-메서드-추가","depth":3,"children":[]}]},{"title":"Live Activity 시작","slug":"live-activity-시작","depth":2,"children":[]},{"title":"Live Activity 클릭 추적","slug":"live-activity-클릭-추적","depth":2,"children":[{"title":"1단계: 위젯에 클릭 추적 추가","slug":"1단계-위젯에-클릭-추적-추가","depth":3,"children":[]},{"title":"2단계: 앱에서 URL 처리","slug":"2단계-앱에서-url-처리","depth":3,"children":[]}]},{"title":"Live Activity 업데이트","slug":"live-activity-업데이트","depth":2,"children":[]},{"title":"Live Activity 종료","slug":"live-activity-종료","depth":2,"children":[]},{"title":"모범 사례 및 권장 사항","slug":"모범-사례-및-권장-사항","depth":2,"children":[{"title":"디자인 고려 사항","slug":"디자인-고려-사항","depth":3,"children":[]},{"title":"기능","slug":"기능","depth":3,"children":[]},{"title":"대체 메시지 설정","slug":"대체-메시지-설정","depth":3,"children":[]}]},{"title":"FAQ","slug":"faq","depth":2,"children":[{"title":"높은 우선 순위 업데이트에 대한 예산은 얼마입니까?","slug":"높은-우선-순위-업데이트에-대한-예산은-얼마입니까","depth":3,"children":[]},{"title":"메인 앱에서 Live Activity 업데이트를 읽을 수 있습니까?","slug":"메인-앱에서-live-activity-업데이트를-읽을-수-있습니까","depth":3,"children":[]},{"title":"API가 구독자 제한을 초과했다는 오류 메시지와 함께 400을 반환했습니다. 어떻게 해야 합니까?","slug":"api가-구독자-제한을-초과했다는-오류-메시지와-함께-400을-반환했습니다-어떻게-해야-합니까","depth":3,"children":[]},{"title":"푸시 및 Live Activities를 모두 보내는 것을 피하려면 어떻게 해야 합니까?","slug":"푸시-및-live-activities를-모두-보내는-것을-피하려면-어떻게-해야-합니까","depth":3,"children":[]}]},{"title":"문제 해결","slug":"문제-해결","depth":2,"children":[{"title":"수신자 없음","slug":"수신자-없음","depth":3,"children":[]},{"title":"활동이 전송되었지만 수신되지 않음","slug":"활동이-전송되었지만-수신되지-않음","depth":3,"children":[]}]}],"codeExamples":{}},"jsLinks":["/_mintlify/custom/onesignal/e069c1b9f3157e14/hotjar-koala.js","/_mintlify/custom/onesignal/3e5d03885ab32f49/intercom.js","/_mintlify/custom/onesignal/dbb7af4794d1b586/munchkin-marketo.js"],"subdomain":"onesignal","siteName":"OneSignal Documentation","title":"Live Activities 개발자 설정 - OneSignal Documentation","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{"en":{"href":"/docs/en/live-activities-developer-setup","matchLevel":1},"cn":{"href":"/docs/cn/live-activities-developer-setup","matchLevel":1},"ko":{"href":"/docs/ko/live-activities-developer-setup","matchLevel":0},"ja":{"href":"/docs/ja/live-activities-developer-setup","matchLevel":1},"tr":{"href":"/docs/tr/live-activities-developer-setup","matchLevel":1},"pt-BR":{"href":"/docs/pt-BR/live-activities-developer-setup","matchLevel":1},"es":{"href":"/docs/es/live-activities-developer-setup","matchLevel":1},"fr":{"href":"/docs/fr/live-activities-developer-setup","matchLevel":1}}},"lastModified":"2026-04-02T19:56:38.831Z","originalFileLocation":"docs/ko/live-activities-developer-setup.mdx","locale":"ko"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"OneSignal을 사용하여 iOS 앱에서 Live Activities를 설정하여 잠금 화면과 Dynamic Island에 실시간 업데이트를 표시합니다.\">\u003cmeta data-mint-head name=\"application-name\" content=\"OneSignal Documentation\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/onesignal/eCiRydtW5fLfLRWp/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/onesignal/eCiRydtW5fLfLRWp/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/onesignal/eCiRydtW5fLfLRWp/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/onesignal/eCiRydtW5fLfLRWp/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/onesignal/eCiRydtW5fLfLRWp/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/onesignal/eCiRydtW5fLfLRWp/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/onesignal/eCiRydtW5fLfLRWp/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/onesignal/eCiRydtW5fLfLRWp/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/onesignal/eCiRydtW5fLfLRWp/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Live Activities 개발자 설정 - OneSignal Documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"OneSignal을 사용하여 iOS 앱에서 Live Activities를 설정하여 잠금 화면과 Dynamic Island에 실시간 업데이트를 표시합니다.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"OneSignal Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://documentation.onesignal.com/docs/ko/live-activities-developer-setup\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://onesignal.mintlify.site/_mintlify/api/og/v2?division=%EC%8B%A4%EC%8B%9C%EA%B0%84+%ED%98%84%ED%99%A9\u0026amp;title=Live+Activities+%EA%B0%9C%EB%B0%9C%EC%9E%90+%EC%84%A4%EC%A0%95\u0026amp;description=OneSignal%EC%9D%84+%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC+iOS+%EC%95%B1%EC%97%90%EC%84%9C+Live+Activities%EB%A5%BC+%EC%84%A4%EC%A0%95%ED%95%98%EC%97%AC+%EC%9E%A0%EA%B8%88+%ED%99%94%EB%A9%B4%EA%B3%BC+Dynamic+Island%EC%97%90+%EC%8B%A4%EC%8B%9C%EA%B0%84+%EC%97%85%EB%8D%B0%EC%9D%B4%ED%8A%B8%EB%A5%BC+%ED%91%9C%EC%8B%9C%ED%95%A9%EB%8B%88%EB%8B%A4.\u0026amp;theme=12e705baa88dc8cc6d7a9877\u0026amp;signature=ebfba920a187ad47b96a4f1a72b6cdbe4ce27eb7fcd4b0c4f7eca52fdb6e0a05\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Live Activities 개발자 설정 - OneSignal Documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"OneSignal을 사용하여 iOS 앱에서 Live Activities를 설정하여 잠금 화면과 Dynamic Island에 실시간 업데이트를 표시합니다.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://onesignal.mintlify.site/_mintlify/api/og/v2?division=%EC%8B%A4%EC%8B%9C%EA%B0%84+%ED%98%84%ED%99%A9\u0026amp;title=Live+Activities+%EA%B0%9C%EB%B0%9C%EC%9E%90+%EC%84%A4%EC%A0%95\u0026amp;description=OneSignal%EC%9D%84+%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC+iOS+%EC%95%B1%EC%97%90%EC%84%9C+Live+Activities%EB%A5%BC+%EC%84%A4%EC%A0%95%ED%95%98%EC%97%AC+%EC%9E%A0%EA%B8%88+%ED%99%94%EB%A9%B4%EA%B3%BC+Dynamic+Island%EC%97%90+%EC%8B%A4%EC%8B%9C%EA%B0%84+%EC%97%85%EB%8D%B0%EC%9D%B4%ED%8A%B8%EB%A5%BC+%ED%91%9C%EC%8B%9C%ED%95%A9%EB%8B%88%EB%8B%A4.\u0026amp;theme=12e705baa88dc8cc6d7a9877\u0026amp;signature=ebfba920a187ad47b96a4f1a72b6cdbe4ce27eb7fcd4b0c4f7eca52fdb6e0a05\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/onesignal/eCiRydtW5fLfLRWp/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"OneSignal Docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#3A3DB3\">\u003clink data-mint-head rel=\"canonical\" href=\"https://documentation.onesignal.com/docs/ko/live-activities-developer-setup\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/docs/ko/live-activities-developer-setup.md\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"ko\" href=\"https://documentation.onesignal.com/docs/ko/live-activities-developer-setup\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"en\" href=\"https://documentation.onesignal.com/docs/en/live-activities-developer-setup\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"zh\" href=\"https://documentation.onesignal.com/docs/cn/live-activities-developer-setup\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"ja\" href=\"https://documentation.onesignal.com/docs/ja/live-activities-developer-setup\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"tr\" href=\"https://documentation.onesignal.com/docs/tr/live-activities-developer-setup\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"pt-BR\" href=\"https://documentation.onesignal.com/docs/pt-BR/live-activities-developer-setup\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"es\" href=\"https://documentation.onesignal.com/docs/es/live-activities-developer-setup\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"fr\" href=\"https://documentation.onesignal.com/docs/fr/live-activities-developer-setup\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"x-default\" href=\"https://documentation.onesignal.com/docs/en/live-activities-developer-setup\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://documentation.onesignal.com/#organization\",\"name\":\"OneSignal Documentation\",\"url\":\"https://documentation.onesignal.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/onesignal/yJcueeDCO7UpHnnY/logo/OneSignal-Logo.svg?fit=max\u0026auto=format\u0026n=yJcueeDCO7UpHnnY\u0026q=85\u0026s=1fcfb6fef6d820fd9d99c74850711107\"}},{\"@type\":\"WebSite\",\"@id\":\"https://documentation.onesignal.com#website\",\"name\":\"OneSignal Documentation\",\"url\":\"https://documentation.onesignal.com\",\"publisher\":{\"@id\":\"https://documentation.onesignal.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://documentation.onesignal.com/docs/ko/live-activities-developer-setup#webpage\",\"url\":\"https://documentation.onesignal.com/docs/ko/live-activities-developer-setup\",\"name\":\"Live Activities 개발자 설정\",\"description\":\"OneSignal을 사용하여 iOS 앱에서 Live Activities를 설정하여 잠금 화면과 Dynamic Island에 실시간 업데이트를 표시합니다.\",\"dateModified\":\"2026-04-02T19:56:38.831Z\",\"isPartOf\":{\"@id\":\"https://documentation.onesignal.com#website\"},\"breadcrumb\":{\"@id\":\"https://documentation.onesignal.com/docs/ko/live-activities-developer-setup#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://documentation.onesignal.com/docs/ko/live-activities-developer-setup#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"OneSignal Documentation\",\"item\":\"https://documentation.onesignal.com\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Live Activities 개발자 설정\",\"item\":\"https://documentation.onesignal.com/docs/ko/live-activities-developer-setup\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://documentation.onesignal.com/docs/ko/live-activities-developer-setup#article\",\"headline\":\"Live Activities 개발자 설정\",\"name\":\"Live Activities 개발자 설정\",\"description\":\"OneSignal을 사용하여 iOS 앱에서 Live Activities를 설정하여 잠금 화면과 Dynamic Island에 실시간 업데이트를 표시합니다.\",\"url\":\"https://documentation.onesignal.com/docs/ko/live-activities-developer-setup\",\"mainEntityOfPage\":{\"@id\":\"https://documentation.onesignal.com/docs/ko/live-activities-developer-setup#webpage\"},\"dateModified\":\"2026-04-02T19:56:38.831Z\",\"keywords\":\"Live Activities, Dynamic Island, push-to-start, ActivityKit, 실시간 업데이트\",\"publisher\":{\"@id\":\"https://documentation.onesignal.com/#organization\"},\"isPartOf\":{\"@id\":\"https://documentation.onesignal.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"OneSignal Documentation\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"OneSignal Documentation","nav":{"global":null,"languages":[{"language":"en","pages":[{"title":"en","href":"/docs/en/live-activities-developer-setup"}]},{"language":"cn","pages":[{"title":"cn","href":"/docs/cn/live-activities-developer-setup"}]},{"language":"ko","tabs":[{"tab":"홈","pages":[{"title":"홈","href":"/docs/ko/home"}]},{"tab":"사용자 가이드","pages":[{"title":"사용자 가이드","href":"/docs/ko/quickstart-guide"}]},{"tab":"개발자 가이드","groups":[{"group":"개발자 문서","pages":[{"title":"개발자","href":"/docs/ko/developers"},{"title":"신원 확인","href":"/docs/ko/identity-verification"},{"group":"사용자 모델","pages":[{"title":"사용자 모델 및 마이그레이션 가이드","href":"/docs/ko/user-model-migration-guide"},{"title":"모바일 SDK 매핑","href":"/docs/ko/device-user-model-mobile-sdk-mapping"},{"title":"웹 SDK 매핑","href":"/docs/ko/device-user-model-web-sdk-mapping"}]}]},{"group":"모바일 SDKs","pages":[{"group":"모바일 SDK 설정","pages":[{"title":"모바일 SDK 설정","href":"/docs/ko/mobile-sdk-setup"},{"group":"플랫폼 자격 증명 설정","pages":[{"title":"Android Firebase 자격 증명","href":"/docs/ko/android-firebase-credentials"},{"title":"iOS p8 토큰 기반 APNs 연결","href":"/docs/ko/ios-p8-token-based-connection-to-apns"},{"title":"iOS p12 인증서 생성","href":"/docs/ko/ios-p12-generate-certificates"},{"title":"Amazon API 키 생성","href":"/docs/ko/generate-an-amazon-api-key"},{"title":"Huawei 승인","href":"/docs/ko/authorize-onesignal-to-send-huawei-push"}]},{"title":"iOS SDK 설정","href":"/docs/ko/ios-sdk-setup"},{"title":"Android SDK 설정","href":"/docs/ko/android-sdk-setup"},{"title":"Unity SDK 설정","href":"/docs/ko/unity-sdk-setup"},{"title":"React Native SDK 설정","href":"/docs/ko/react-native-sdk-setup"},{"title":"Expo SDK 설정","href":"/docs/ko/react-native-expo-sdk-setup"},{"title":"Flutter SDK 설정","href":"/docs/ko/flutter-sdk-setup"},{"title":"Flutterflow SDK 설정","href":"/docs/ko/flutterflow-sdk-setup"},{"title":"Cordova SDK 설정","href":"/docs/ko/cordova-sdk-setup"},{"title":"Capacitor SDK 설정","href":"/docs/ko/capacitor-sdk-setup"},{"title":".NET MAUI SDK 설정","href":"/docs/ko/net-sdk-setup"},{"title":"Amazon SDK 설정","href":"/docs/ko/amazon-sdk-setup"},{"title":"Huawei SDK 설정","href":"/docs/ko/huawei-sdk-setup"}]},{"group":"모바일 SDK 참조","pages":[{"title":"모바일 SDK 레퍼런스","href":"/docs/ko/mobile-sdk-reference"},{"title":"Mobile Service Extensions","href":"/docs/ko/service-extensions"},{"title":"알림 트레이 관리","href":"/docs/ko/managing-the-notification-tray"},{"title":"OSNotification payload","href":"/docs/ko/osnotification-payload"},{"title":"iOS: App Clip 지원","href":"/docs/ko/app-clip-support"}]},{"group":"모바일 SDK 문제 해결","pages":[{"title":"Mobile SDK 문제 해결","href":"/docs/ko/mobile-troubleshooting"},{"title":"디버그 로그 가져오기","href":"/docs/ko/capturing-a-debug-log"}]}]},{"group":"웹 SDKs","pages":[{"group":"웹 SDK 설정","pages":[{"title":"웹 SDK 설정","href":"/docs/ko/web-sdk-setup"},{"title":"iOS 웹 푸시 설정","href":"/docs/ko/web-push-for-ios"},{"title":"OneSignal service worker","href":"/docs/ko/onesignal-service-worker"},{"title":"OneSignal Web SDK를 사용한 사용자 지정 코드 웹 푸시 설정","href":"/docs/ko/web-push-custom-code-setup"},{"title":"Google Tag Manager 설정","href":"/docs/ko/google-tag-manager"},{"title":"Angular 웹 SDK 설정","href":"/docs/ko/angular-setup"},{"title":"ReactJS 및 NextJS 설정","href":"/docs/ko/react-js-setup"},{"title":"Vue JS Web SDK 설정","href":"/docs/ko/vue-js-setup"}]},{"title":"웹 SDK 참조","href":"/docs/ko/web-sdk-reference"},{"group":"웹 SDK 문제 해결","pages":[{"title":"Web SDK 문제 해결","href":"/docs/ko/troubleshooting-web-push"},{"title":"캐시 지우기 및 푸시 권한 재설정","href":"/docs/ko/clearing-cache-and-resetting-push-permissions"},{"title":"웹 푸시 Webhook","description":"사용자가 웹 푸시 알림을 표시, 클릭 또는 해제할 때 실시간 알림을 받도록 HTTP Webhook을 설정합니다. Chrome, Firefox 및 Safari 브라우저 지원 예제가 포함된 완전한 가이드입니다.","href":"/docs/ko/webhooks"}]}]},{"group":"실시간 현황","pages":[{"title":"Live Activities 개발자 설정","href":"/docs/ko/live-activities-developer-setup"},{"title":"크로스 플랫폼 Live Activity SDK 설정","description":"React Native, Flutter, Unity, Cordova, Capacitor, .NET MAUI 앱에 iOS Live Activities를 추가하세요. setupDefault로 SDK가 ActivityKit 라이프사이클을 관리해 네이티브 코드를 최소화합니다.","href":"/docs/ko/cross-platform-live-activity-setup"},{"title":"Android Live Update 알림","href":"/docs/ko/android-live-notifications"}]},{"group":"데스크탑 \u0026 워치 설정","pages":[{"title":"macOS 앱 설정","href":"/docs/ko/macos-app-setup"},{"title":"Windows 앱 설정","href":"/docs/ko/windows-app-setup"},{"title":"watchOS 및 Wear OS 지원","href":"/docs/ko/watchos-and-wear-os-support"}]}]},{"tab":"튜토리얼","pages":[{"title":"튜토리얼","href":"/docs/ko/tutorials"}]},{"tab":"API Reference","pages":[{"title":"API Reference","href":"/reference/rest-api-overview"}]},{"tab":"Release Notes","pages":[{"title":"Release Notes","href":"/release-notes/changelog"}]}],"global":{"anchors":[{"anchor":"Blog","icon":"newspaper","href":"https://onesignal.com/blog"},{"anchor":"GitHub","icon":"github","href":"https://github.com/OneSignal"},{"anchor":"YouTube","icon":"youtube","href":"https://www.youtube.com/@onesignalofficial/playlists"}]}},{"language":"ja","pages":[{"title":"ja","href":"/docs/ja/live-activities-developer-setup"}]},{"language":"tr","pages":[{"title":"tr","href":"/docs/tr/live-activities-developer-setup"}]},{"language":"pt-BR","pages":[{"title":"pt-BR","href":"/docs/pt-BR/live-activities-developer-setup"}]},{"language":"es","pages":[{"title":"es","href":"/docs/es/live-activities-developer-setup"}]},{"language":"fr","pages":[{"title":"fr","href":"/docs/fr/live-activities-developer-setup"}]}]},"basePath":"","title":"Live Activities 개발자 설정 - OneSignal Documentation","buildId":"dpl_42LwxxU1kGN114H4XzwGYXa9ZDah","deploymentId":"dpl_42LwxxU1kGN114H4XzwGYXa9ZDah","dynamics":["07c022d89b","a74be98ba7"],"chunks":["Frame-5Xwp92K7.js","DynamicMarkdown-BoyYAA8K.js","zoom-image-lightbox-DkE6VzSN.js","lightbox-handle-r17bVUz3.js"]}