このページ: Adobe Experience Platform Mobile SDK を iOS アプリに統合して、ロック画面と Dinamic island でライブアクティビティの更新をリアルタイムで登録、表示、受信できるようにします。
Adobe Experience Platform Mobile SDK は、Apple のライブアクティビティのビルトインのサポートを提供します。 これにより、アプリを開かなくても、ロック画面と Dynamic Island でリアルタイムの動的な更新を直接表示できます。
-
AEPMessaging、AEPMessagingLiveActivity、ActivityKit のモジュールを読み込みます。
-
LiveActivityAttributesに準拠し、LiveActivityData属性とContentState属性を含めます。 -
SDK の初期化後に
Messaging.registerLiveActivity()を使用します。 -
ロック画面と Dynamic Island インターフェイスの両方に
ActivityConfigurationを実装します。 -
ライブアクティビティは、Journey Optimizer を通じてリモートで開始するか、アプリケーションコード内でローカルで開始することができます。
-
Assuranceに
LiveActivityAssuranceDebuggableを実装します。
正しい設定と互換性を確保するために、次の最小バージョンがインストールされていることを確認します。
前提条件:
-
iOS:
- iOS 16.1 以降:基本的なライブアクティビティ機能
- iOS 17.2 以降:プッシュトゥスタートのサポート
- iOS 18 以降:ブロードキャストチャネルのサポート
-
Xcode: 14.0 以降
-
Swift: 5.7 以降
-
依存関係: AEPCore、AEPMessaging、AEPMessagingLiveActivity、ActivityKit
-
AEP Mobile SDK バージョン:iOS Messaging 5.11.0 以降
手順 1:必要なモジュールをインポート import
開始するには、まず AEPMessaging、AEPMessagingLiveActivity、ActivityKit モジュールを読み込む必要があります。
import AEPMessaging
import AEPMessagingLiveActivity
import ActivityKit
手順 2:ライブアクティビティ属性の定義 attributes
LiveActivityAttributes プロトコルに準拠する構造体を作成します。 これにより、ライブアクティビティの静的データと動的コンテンツの状態の両方が定義されます。
主なコンポーネントは次のとおりです。
-
Adobe Experience Platform 固有のデータを含む
liveActivityData(必須)。- 個人ユーザーの場合:
LiveActivityData(liveActivityID: "unique-id")を使用します - ブロードキャストの場合:
LiveActivityData(channelID: "channel-id")を使用します
- 個人ユーザーの場合:
-
静的属性、ユースケースに固有のカスタムプロパティ(例:
restaurantName)。 -
ライブアクティビティライフサイクル中に更新できる動的データを定義する
ContentState。 これは、CodableとHashableに準拠する必要があります。 -
LiveActivityOrigin定義済みリストは、アクティビティがアプリ内でローカルで開始されたか、iOS 17.2 以降でサポートされているプッシュトゥスタート通知を通じてリモートで開始されたかを指定します。 この値により、SDK はデータの収集時に、ローカルで開始されたライブアクティビティとリモートでトリガーされたライブアクティビティを区別できます。
例
@available(iOS 16.1, *)
struct FoodDeliveryLiveActivityAttributes: LiveActivityAttributes {
// Mandatory: AEP Integration Data
var liveActivityData: LiveActivityData
// Static Attributes: Custom properties that do not change
var restaurantName: String
// Dynamic Content State: Data that can be updated
struct ContentState: Codable, Hashable {
var orderStatus: String
}
}
@available(iOS 16.1, *)
public struct LiveActivityData: Codable {
/// Unique identifier for broadcast Live activity channels
public let channelID: String?
/// Unique identifier for individual Live activity
public let liveActivityID: String?
/// Indicates local vs remote creation
public let origin: LiveActivityOrigin?
// Initializers
public init(channelID: String) // For broadcast Live activity
public init(liveActivityID: String) // For individual Live activity
}
また、アプリに複数のライブアクティビティタイプを登録することもできます。
if #available(iOS 16.1, *) {
Messaging.registerLiveActivity(AirplaneTrackingAttributes.self)
Messaging.registerLiveActivity(FoodDeliveryLiveActivityAttributes.self)
Messaging.registerLiveActivity(GameScoreLiveActivityAttributes.self)
}
手順 3:ライブアクティビティの登録 register
SDK の初期化後に AppDelegate にライブアクティビティタイプを登録すると、次の操作を実行できます。
- 自動プッシュトゥスタートトークン収集を有効にする(iOS 17.2 以降)
- ライブアクティビティ更新トークンを自動的に収集
- ライフサイクル管理とイベントトラッキングを有効にする
食品配送ライブアクティビティの例:
if #available(iOS 16.1, *) {
Messaging.registerLiveActivity(FoodDeliveryLiveActivityAttributes.self)
}
手順 4:ライブアクティビティウィジェットを作成 widgets
ライブアクティビティは、ウィジェットを通じて表示されます。 ウィジェットバンドルと設定を作成する必要があります。
食品配送ライブアクティビティの例:
@main
struct FoodDeliveryWidgetBundle: WidgetBundle {
var body: some Widget {
FoodDeliveryLiveActivityWidget()
}
}
@available(iOS 16.1, *)
struct FoodDeliveryLiveActivityWidget: Widget {
var body: some WidgetConfiguration {
ActivityConfiguration(for: FoodDeliveryLiveActivityAttributes.self) { context in
// Lock Screen UI
VStack {
Text("Order from \(context.attributes.restaurantName)")
Text("Status: \(context.state.orderStatus)") // possible status may include "Ordered", "Order accepted", "Preparing", "On the Way","Delivered"
}
} dynamicIsland: { context in
// Dynamic Island UI
DynamicIsland {
// Expanded UI
} compactLeading: {
// Compact leading UI
} compactTrailing: {
// Compact trailing UI
} minimal: {
// Minimal UI
}
}
}
}
手順 5:ローカルでライブアクティビティを開始(オプション) local
Journey Optimizer ではライブアクティビティをリモートで開始できますが、ローカルで開始することもできます。
食品配送ライブアクティビティの例:
let attributes = FoodDeliveryLiveActivityAttributes(
liveActivityData: LiveActivityData(liveActivityID: "order123"),
restaurantName: "Pizza Palace"
)
let contentState = FoodDeliveryLiveActivityAttributes.ContentState(
orderStatus: "Ordered"
)
let activity = try Activity<FoodDeliveryLiveActivityAttributes>.request(
attributes: attributes,
contentState: contentState,
pushType: .token
)
手順 6:デバッグサポートを追加(オプション) debug
必要に応じて、Adobe Assurance でライブアクティビティスキーマをデバッグできます。
食品配送ライブアクティビティの例:
@available(iOS 16.1, *)
extension FoodDeliveryLiveActivityAttributes: LiveActivityAssuranceDebuggable {
static func getDebugInfo() -> (attributes: FoodDeliveryLiveActivityAttributes, state: ContentState) {
return (
FoodDeliveryLiveActivityAttributes(
liveActivityData: LiveActivityData(liveActivityID: "debug-order-123"),
restaurantName: "Debug Restaurant"
),
ContentState(orderStatus: "Ordered")
)
}
}
その他のリソース
包括的な SDK のドキュメントと実装について詳しくは、次を参照してください。
This section contains structured knowledge intended to support interpretation, retrieval, and question answering related to this topic.
For complete understanding, this information should be combined with the documentation on this page. Neither source is intended to stand alone; the page describes the feature, while this section provides additional context that helps disambiguate terminology, intent, applicability, and constraints.
- TL;DR: This page explains how to integrate the Adobe Experience Platform Mobile SDK into an iOS app so it can register, display, and receive real-time Live activity updates on the Lock Screen and Dynamic Island.
Intents:
- Import the required modules AEPMessaging, AEPMessagingLiveActivity, and ActivityKit
- Define Live activity attributes conforming to
LiveActivityAttributes, includingLiveActivityDataand aContentState - Register Live activity types with
Messaging.registerLiveActivity()after SDK initialization - Create a widget configuration (
ActivityConfiguration) for both the Lock Screen and Dynamic Island - Optionally start a Live activity locally and add Assurance debug support
Glossary:
LiveActivityAttributes: The protocol a struct conforms to, defining both the static data and the dynamic content state for a Live activity (product-specific)LiveActivityData: A required property containing Adobe Experience Platform-specific data;liveActivityIDfor individual users,channelIDfor broadcast (product-specific)ContentState: Dynamic data that can be updated during the Live activity lifecycle; must conform toCodableandHashableLiveActivityOrigin: An enumeration specifying whether an activity was initiated locally or remotely via a push-to-start notification, supported in iOS 17.2 and later (product-specific)Messaging.registerLiveActivity(): The call used after SDK initialization to register Live activity types (product-specific)ActivityConfiguration: The widget configuration implemented for the Lock Screen and Dynamic Island interfaceLiveActivityAssuranceDebuggable: The protocol implemented to debug Live activity schemas in Adobe Assurance (product-specific)
Guardrails:
- iOS: 16.1 or later for basic Live activity functionality; 17.2 or later for push-to-start; 18 or later for broadcast channel support (minimum versions).
- Xcode 14.0 or later (minimum version).
- Swift 5.7 or later (minimum version).
- AEP Mobile SDK: iOS Messaging 5.11.0 or later (minimum version).
- Required dependencies: AEPCore, AEPMessaging, AEPMessagingLiveActivity, ActivityKit.
liveActivityDatais required and contains Adobe Experience Platform-specific data;ContentStatemust conform toCodableandHashable.
Terminology:
- Canonical name: Adobe Experience Platform Mobile SDK — Acronym: AEP Mobile SDK — variants: Mobile SDK, messaging SDK
- Synonyms: “push-to-start” = “remotely triggered start, supported in iOS 17.2 and later”
- Do not confuse: “
liveActivityID” (individual users) ≠ “channelID” (broadcast) - Do not confuse: “start a Live activity locally” (initiated within the application code) ≠ “start remotely via push-to-start” (triggered remotely through Journey Optimizer)
FAQ:
- Q: Which modules must I import? — AEPMessaging, AEPMessagingLiveActivity, and ActivityKit.
- Q: What is the minimum iOS version? — iOS 16.1 or later for basic functionality; iOS 17.2 or later for push-to-start; iOS 18 or later for broadcast channel support.
- Q: Which AEP Mobile SDK version is required? — iOS Messaging 5.11.0 or later.
- Q: How do I register Live activity types? — Use
Messaging.registerLiveActivity()in yourAppDelegateafter SDK initialization; you can register multiple Live activity types. - Q: Can I start a Live activity without Journey Optimizer? — Yes, a Live activity can be initiated locally within the application code (optional), in addition to being started remotely through Journey Optimizer.