Does the alert only serve the following purposes:
required for start events
require for any event that needs to alert the user (with sound or having the live activity show in expanded presentation)
while its content DO NOT matter. Only the presence of the field and its attributes matter.
The only time its content matter are when the receiving device is an Apple Watch.
Is that correct?
ActivityKit
RSS for tagHelp people keep track of tasks and events that they care about with Live Activities on the Lock Screen, the Dynamic Island, and in StandBy.
Posts under ActivityKit tag
127 Posts
Sort by:
Post
Replies
Boosts
Views
Activity
Hi, I'm having this issue that I have have not been able to figure out as I've gone through a checklist and it seems I have everything in place, but im sending my pushToStartTokenUpdates token to a server and im able to test starting a live activity via CURL where it shows my push token going through and even my test payload but after a while I get this issue in my logs where it fails to find a live activity
Push notifications are set up, im sending my token to APN and im even able to start live activities locally.
Topic:
App & System Services
SubTopic:
Widgets & Live Activities
Tags:
User Notifications
ActivityKit
I'm struggling to understand what the impact of this flag is.
Docs only say:
For devices running iOS 18 and iPadOS 18 or later, you can add input-push-token: 1 to your payload to start a Live Activity and receive a new push token. After you receive a new push token, you can use it to send updates to a Live Activity.
But things were working fine for iOS 17. Right?
Does it somehow make the OS emit update tokens faster/more successfully?
Should I include in all start, update, end events?
LiveActivity using colorScheme to adapt to dark mode in iOS 26 system does not work
The system keeps returning. mark, unable to switch
Hey there, i start a live activity with notification , and but sometime it can not update, it happens sometime and make me so confuse;
like about 2025-08-19 +8.0 09:20:52
updatetoken : 40ead3fd4dd4a934548c5455c645fc6920edfaa0ddad98abd619dc1d2662389c15d3dc3b420bdec733d9438d25ae61cb55601ae64292b3064a71ffb8d0355633f3f0f2254e6f7438282ce83366d8430c
app can not accept push update msg, and APNs has show success when server send update msg to APP;
how can i check the APNS to APP?
Thanks
The docs are conflicting.
https://developer.apple.com/documentation/activitykit/starting-and-updating-live-activities-with-activitykit-push-notifications#End-the-Live-Activity-with-a-custom-dismissal-date says:
When you end a Live Activity, by default the Live Activity appears on the Lock Screen for up to four hours after it ends to allow people to glance at their phone to refer to the latest information.
However here it says:
https://developer.apple.com/documentation/activitykit/displaying-live-data-with-live-activities#Understand-constraints
A Live Activity can be active for up to eight hours unless its app or a person ends it before this limit. After the eight-hour limit, the system automatically ends the Live Activity, and immediately removes it from the Dynamic Island. However, the Live Activity remains on the Lock Screen until a person removes it or for up to four additional hours before the system removes it — whichever comes first. As a result, a Live Activity remains on the Lock Screen for a maximum of 12 hours.
So is it 4 hrs OR '8 for Dynamic Island vs 12 for Lock Screen'?
I'm developing an app which will show the driver ETA and rendering the progress bar of the current ETA.
Intuitively the backend server sends the push notification every 3 seconds through firebase cloud message service to APNS so that the device can refresh the dynamic island smoothly.
But the live activity doesn't refresh as frequently as the backend service does.
It should refresh every 3 seconds but it turns out like refresh 30 ~ 60 seconds, sometimes it didn't refresh at all.
any body facing the same?
Topic:
App & System Services
SubTopic:
Widgets & Live Activities
Tags:
APNS
User Notifications
ActivityKit
I'm developing an app which will show the driver ETA and rendering the progress bar of the current ETA.
Intuitively the backend server sends the push notification every 3 seconds through firebase cloud message service to APNS so that the device can refresh the dynamic island smoothly.
But the live activity doesn't refresh as frequently as the backend service does.
It should refresh every 3 seconds but it turns out like refresh 30 ~ 60 seconds, sometimes it didn't refresh at all.
any body facing the same?
When using the ManagedSettings API to block apps everything is blocked as expected (the app itself, Notifications, Live Activities on the Lock Screen etc) except for Compact Live Activities of those apps (that are shown in the Dynamic Island). I feel the expected behavior would be to block also the Compact Live Activities.
Our use case:
In Spoilerblock we want to prevent users from being exposed to spoilers before they've had time to watch for example a sports game.
Current workaround:
Right now the best we can do is to ask the user to disable Live Activities for apps that could expose results, to not risk being exposed to a spoiler.
When I use the Activity.request method to start the Dynamic Island widget, there have been continuous crash reports online, Could you please provide some ideas on how to fix this crash? Thanks!
Crash backtraces:
0ActivityKitblock_copy_helper.101 (in ActivityKit)+21416
1CombinePublishers.FlatMap.Outer.receive(B.Output) (in Combine)+296
2Combineprotocol witness for Subscriber.receive(A.Input) in conformance Publishers.FlatMap<A, B>.Outer<A1> (in Combine)+20
3CombinePublishers.HandleEvents.Inner.receive(A.Output) (in Combine)+204
4Combineprotocol witness for Subscriber.receive(A.Input) in conformance Publishers.HandleEvents<A>.Inner<A1> (in Combine)+20
5CombineFilterProducer.receive(B) (in Combine)+2508
6Combineprotocol witness for Subscriber.receive(A.Input) in conformance FilterProducer<A, B, C, D, E> (in Combine)+20
7Combinepartial apply for closure #4 (C) in Publishers._Merged.request(Subscribers.Demand) (in Combine)+52
8CombinePublishers._Merged.guardedApplyDownstream<A>((C)) (in Combine)+180
9CombinePublishers._Merged.receive(A, Int) (in Combine)+400
10CombinePublishers._Merged.Side.receive(A) (in Combine)+20
11CombineJust.Inner.request(Subscribers.Demand) (in Combine)+692
12Combineprotocol witness for Subscription.request(Subscribers.Demand) in conformance Just<A>.Inner<A1> (in Combine)+20
13CombinePublishers._Merged.receive(subscription: Subscription, _: Int) (in Combine)+496
14CombinePublishers._Merged.Side.receive(subscription: Subscription) (in Combine)+20
15CombineJust.receive<A>(subscriber: A1) (in Combine)+420
16CombinePublishers.Merge.receive<A>(subscriber: A1) (in Combine)+380
17CombinePublisherBox.receive<A>(subscriber: A1) (in Combine)+104
18CombineAnyPublisher.receive<A>(subscriber: A1) (in Combine)+60
19CombinePublishers.RemoveDuplicates.receive<A>(subscriber: A1) (in Combine)+220
20CombinePublishers.HandleEvents.receive<A>(subscriber: A1) (in Combine)+300
21CombinePublisherBox.receive<A>(subscriber: A1) (in Combine)+104
22CombineAnyPublisher.receive<A>(subscriber: A1) (in Combine)+60
23CombinePublishers.FlatMap.receive<A>(subscriber: A1) (in Combine)+416
24CombinePublishers.RemoveDuplicates.receive<A>(subscriber: A1) (in Combine)+220
25CombinePublisherBox.receive<A>(subscriber: A1) (in Combine)+104
26CombineAnyPublisher.receive<A>(subscriber: A1) (in Combine)+60
27CombinePublishers.CompactMap.receive<A>(subscriber: A1) (in Combine)+440
28CombinePublisherBox.receive<A>(subscriber: A1) (in Combine)+104
29CombineAnyPublisher.receive<A>(subscriber: A1) (in Combine)+60
30CombinePublishers.SetFailureType.receive<A>(subscriber: A1) (in Combine)+420
31CombinePublishers.FlatMap.receive<A>(subscriber: A1) (in Combine)+416
32CombinePublishers.RemoveDuplicates.receive<A>(subscriber: A1) (in Combine)+220
33CombinePublisherBox.receive<A>(subscriber: A1) (in Combine)+104
34CombineAnyPublisher.receive<A>(subscriber: A1) (in Combine)+60
35CombinePublishers.CompactMap.receive<A>(subscriber: A1) (in Combine)+440
36CombinePublisherBox.receive<A>(subscriber: A1) (in Combine)+104
37CombineAnyPublisher.receive<A>(subscriber: A1) (in Combine)+60
38CombinePublishers.ReceiveOn.receive<A>(subscriber: A1) (in Combine)+660
39CombinePublisher.sink(receiveCompletion: (Subscribers.Completion<A.Failure>), receiveValue: (A.Output)) (in Combine)+316
40ActivityKitblock_copy_helper.101 (in ActivityKit)+33364
41ActivityKitblock_copy_helper.101 (in ActivityKit)+26716
42ActivityKitblock_copy_helper.101 (in ActivityKit)+53192
43ActivityKitblock_copy_helper.101 (in ActivityKit)+52408
44ActivityKitblock_destroy_helper.25 (in ActivityKit)+1140
45ActivityKitblock_destroy_helper.62 (in ActivityKit)+8220
46ActivityKitblock_destroy_helper.62 (in ActivityKit)+9364
47libswiftDispatch.dylibpartial apply for thunk for @callee_guaranteed () -> (@out A, @error @owned Error) (in libswiftDispatch.dylib)+24
48libswiftDispatch.dylibthunk for @callee_guaranteed () -> (@out A, @error @owned Error)partial apply (in libswiftDispatch.dylib)+12
49libswiftDispatch.dylibclosure #1 () in closure #1 (()) in OS_dispatch_queue._syncHelper<A>(fn: (()), execute: (), rescue: (Error)) (in libswiftDispatch.dylib)+188
50libswiftDispatch.dylibpartial apply for thunk for @callee_guaranteed () -> () (in libswiftDispatch.dylib)+24
51libswiftDispatch.dylibthunk for @escaping @callee_guaranteed () -> () (in libswiftDispatch.dylib)+24
52libdispatch.dylib__dispatch_client_callout (in libdispatch.dylib)+16
53libdispatch.dylib__dispatch_lane_barrier_sync_invoke_and_complete (in libdispatch.dylib)+52
54libswiftDispatch.dylibimplicit closure #2 (()) in implicit closure #1 (OS_dispatch_queue) in OS_dispatch_queue.asyncAndWait<A>(execute: ()) (in libswiftDispatch.dylib)+188
55libswiftDispatch.dylibpartial apply for implicit closure #2 (()) in implicit closure #1 (OS_dispatch_queue) in OS_dispatch_queue.sync<A>(execute: ()) (in libswiftDispatch.dylib)+72
56libswiftDispatch.dylibOS_dispatch_queue._syncHelper<A>(fn: (()), execute: (), rescue: (Error)) (in libswiftDispatch.dylib)+400
57libswiftDispatch.dylibOS_dispatch_queue.asyncAndWait<A>(execute: ()) (in libswiftDispatch.dylib)+136
58libswiftDispatch.dylibOS_dispatch_queue.sync<A>(execute: ()) (in libswiftDispatch.dylib)+60
59ActivityKitblock_destroy_helper.62 (in ActivityKit)+3272
60ActivityKitblock_destroy_helper.62 (in ActivityKit)+724
61ActivityKit___swift_store_extra_inhabitant_indexTm (in ActivityKit)+24928
62ActivityKit___swift_store_extra_inhabitant_indexTm (in ActivityKit)+23900
63 XXXApp static LiveActivityService.request()
......
Hi Apple team,
I'm experiencing a persistent issue with writing to UserDefaults from a widget extension on iOS. Here's the situation:
I've set up an App Group: group.test.blah
The main app has the correct entitlement and can read/write from UserDefaults(suiteName:) using this group successfully.
I can read the value written by the app from the widget (e.g., "testFromApp": "hiFromApp").
The widget extension has the same App Group enabled under Signing & Capabilities.
The provisioning profile reflects the App Group and the build installs successfully on a real device.
The suite name is correct and matches across both targets.
I’ve confirmed via FileManager.default.containerURL(...) that the app group container resolves properly.
When I try to write from the widget extension like this
let sharedDefaults = UserDefaults(suiteName: "group.test.blah")
sharedDefaults?.set("hiFromWidget", forKey: "testFromWidget")
...I get this error in the console:
Couldn't write values for keys (
testFromWidget
) in CFPrefsPlistSource<0x1140d2880> (Domain: group.test.blah, User: kCFPreferencesCurrentUser, ByHost: No, Container: (null), Contents Need Refresh: No): setting preferences outside an application's container requires user-preference-write or file-write-data sandbox access
Questions:
What could still cause the widget extension to lack write access to the app group container, even though it reads just fine?
Are there any internal sandboxing nuances or timing-related issues specific to Live Activity widgets that could explain this?
Is this a known limitation or platform issue?
Topic:
App & System Services
SubTopic:
Widgets & Live Activities
Tags:
Extensions
Entitlements
ActivityKit
Files and Storage
Background
I'm developing an iOS app with Live Activities that allows users to select custom background images. While these custom images display correctly in widgets, they fail to appear in Live Activities on both Lock Screen and Dynamic Island, despite successful image loading and data transfer.
Technical Details
iOS Version: Testing on iOS 17.2+
Image Storage: Using App Group shared container for image sharing between main app and widget extension
Image Loading: Successfully confirmed via logs - images load correctly with proper dimensions
UI Framework: SwiftUI with ActivityKit
What Works
✅ Custom images display correctly in Home Screen widgets
✅ Built-in bundled images work in Live Activities
✅ Image data successfully transfers via App Group shared container
✅ Image loading logs show successful UIImage creation with correct dimensions
What Doesn't Work
❌ Custom user images don't display in Live Activities (Lock Screen)
❌ Custom user images don't display in Dynamic Island
❌ Images appear as black/gray background despite successful loading
Code Implementation
I've tried multiple approaches:
1. SwiftUI Image approach:
Image(uiImage: customImage)
.resizable()
.aspectRatio(contentMode: .fill)
2. containerBackground API approach:
.containerBackground(for: .widget) {
Image(uiImage: customImage)
.resizable()
.aspectRatio(contentMode: .fill)
}
3. UIKit wrapper approach:
struct UIImageViewWrapper: UIViewRepresentable {
let image: UIImage
func makeUIView(context: Context) -> UIImageView {
let imageView = UIImageView(image: image)
imageView.contentMode = .scaleAspectFill
return imageView
}
func updateUIView(_ uiView: UIImageView, context: Context) {
uiView.image = image
}
}
Observations
Images load successfully (confirmed via console logs)
File paths are correct and accessible
Same image loading code works perfectly in widgets
When testing with UIKit approach, a red prohibition icon appears, suggesting system restrictions
Questions
Is there a technical limitation preventing user-provided images from displaying in Live Activities?
Are there specific security restrictions for Live Activity backgrounds that don't apply to widgets?
Is this behavior intentional based on Apple's design guidelines for Live Activities?
What's the recommended approach for custom backgrounds in Live Activities?
Apple Documentation Reference
I found this guidance in "10 questions with the Live Activities team":
"The Dynamic Island is most immersive when you don't provide background color or imagery — think of it purely as a canvas of foreground view elements."
However, this seems to be design guidance rather than a technical restriction, and it doesn't specifically address Lock Screen Live Activities.
Expected Behavior
Custom user images should display as backgrounds in Live Activities, similar to how they work in widgets.
Current Workaround
I've implemented a color extraction system that generates gradients based on the dominant colors of user images, but users specifically want to see their actual images.
Has anyone successfully implemented custom user images as Live Activity backgrounds, or can Apple clarify the intended behavior and limitations?
Thank you for any insights!
I know for start events, sending the timestamp isn't required. So that's easy.
However when I'm testing Live Activity using the Apple Push Notification Console. A lot of times I just need to copy/paste the payload and resend it again.
But then the timestamp field needs to get updated each time, because if it's from a time in the past, then it won't trigger.
This requires me to have to use an EPOCH converter to find the right time and then copy/paste it.
Is there a better solution to this? I know I can use curl, but that is not in the scope of my question.
Hello forum,
Hope you all are doing great!
We’ve implemented Live Activities in our iOS app to display live soccer scores on the lock screen. The feature generally works as expected when the app is in backgroun or app is invoked when the push is sent. However, we’re observing an issue affecting approximately 20–30% of users where the Live Activity starts successfully but no subsequent score or commentary updates are received.
Upon investigation, it appears the OS is not waking the app when the Live Activity starts. This wake-up is critical for syncing the activity token with backend service we use, which is required for delivering updates.
Key Points:
Starting a Live Activity does not require the app to be invoked since we start with Push token
However, for updates to be delivered, the app must be woken at the start to send the latest pushh token to Backend.
In affected cases, even manually sending a background push does not wake the app—it remains terminated until manually opened by the user.
We’d like to understand is there any other way to deliver start and updates from backend at later point when user mark a team/match favorite.
Core requirement is that user need not to open the app except when marking the team as favorite.
Apps like FotMob, MLB, Chrome browser doing same when team is marked as favorite and subscribed for live activities and I observed they are getting updates properly most of the times
Hello everyone,
I'm implementing the "Push to Start" feature for Live Activities, and I've run into an issue where the activity seems to be processed by the system but never appears on the Lock Screen or in the Dynamic Island.
I suspect there's a silent crash happening in my widget extension immediately after launch, but I'm unable to capture any logs or crash reports in the Xcode debugger.
Here is the flow and all the relevant data:
1. The Process
My app successfully requests a pushToStartToken using Activity<EJourneyLiveActivityAttributes>.pushToStartTokenUpdates
The token is sent to our server.
The server uses this token to send a "start" event APNs push notification.
The device console logs (from liveactivitiesd) show that the push is received and the system is "Publishing event".
Expected Result: The Live Activity UI appears on the device.
Actual Result: Nothing appears. The UI is completely absent.
2. Device Console Logs
Here are the logs from the device console, which indicate a successful receipt of the push:
pushServer default 12:08:22.716353+0200 liveactivitiesd Received push event for com.wavepointer.ejourney.staging::pushToStart
pushServer default 12:08:22.716818+0200 liveactivitiesd Reduced budget for com.wavepointer.ejourney.staging::pushToStart to: 7
pushServer default 12:08:22.723458+0200 liveactivitiesd Publishing event: timestamp: 2025-07-24 08:57:19 +0000; activityIdentifier: 53C3EE9D-623C-4F38-93AE-8BB807429DAA; eventType: start(...)
3. APNs Payload
This is the exact payload being sent from our server:
{
"aps": {
"event": "start",
"timestamp": 1753347375,
"attributes-type": "EJourneyLiveActivityAttributes",
"attributes": {
"journeyId": "test123453"
},
"content-state": {
"distanceInMeters": 1000,
"depTime": 1752745104,
"arrTime": 1752748704,
"depStop": "Arth, Am See",
"arrStop": "Oberarth, Bifang",
"depZone": "571",
"arrZone": "566",
"co2Save": 5.0,
"co2SavePerc": 44,
"companyName": "WP Innovation",
"countryCode": "CH",
"categoryId": 5,
"subcategoryId": 3,
"stationStartAssoc": "Assoc1",
"stationEndAssoc": "Assoc2"
}
}
}
4. ActivityAttributes Struct
To prevent decoding errors, I have made all properties in my ContentState optional and added a custom decoder.
@available(iOS 16.1, *)
struct EJourneyLiveActivityAttributes: ActivityAttributes, Hashable {
public struct ContentState: Codable, Hashable {
var distanceInMeters: Int = 0
var depTime: Int = 1752843769
var arrTime: Int = 1752843769
var depStop: String = ""
var arrStop: String = ""
var depZone: String = ""
var arrZone: String = ""
var co2Save: Double?
var co2SavePerc: Int = 0
var companyName: String = "Test"
var countryCode: String = "CH"
var categoryId: Int = 3
var subcategoryId: Int = 4
var stationStartAssoc: String?
var stationEndAssoc: String?
}
var journeyId: String?
}
What I've Tried
I have carefully checked that my Codable struct matches the JSON payload. I've made all properties optional to avoid crashes from missing keys.
I have tried attaching the Xcode debugger to the widget extension process (Debug -> Attach to Process...) before sending the push, but no logs, errors, or crash reports appear in the Xcode console. The process seems to terminate before it can log anything.
My question is: What could cause the widget extension to fail so early that it doesn't even produce a crash log in the attached debugger? Are there other methods to debug this kind of silent failure?
Any help would be greatly appreciated. Thank you!
I have start new live activity with push notifications,but sometimes this code"activity.pushTokenUpdates" can not callback to me,so I can't update the activity with push notifications. And I already click “Allow” button in my live activity widget.How can I solve this problem.
Here are my code:
fileprivate func observeLiveActivityForRemoteCreate() {
// obverser pushToStartToken
Task {
if #available(iOS 17.2, *) {
var beforeToken = ""
for await pushToken in Activity<HLPlatformActivityAttributes>.pushToStartTokenUpdates {
let pushTokenStr = pushToken.map{String(format: "%02.2hhx", arguments: [$0])}.joined()
// avoid send duplication
if beforeToken == pushTokenStr {
return
}
beforeToken = pushTokenStr
// send pushToStartToken to service
await HLPlatformLiveActivityBridge.registerLiveActivity(withAttributesName: self.activityAttributesName, pushToStartToken: pushToken, seq: seqCreate(), pushType: .jPush)
}
}else {
// Fallback on eralier versions
}
// obverser live activity update
Task {
for await activity in Activity<HLPlatformActivityAttributes>.activityUpdates {
if let businessLiveActivityId = activity.attributes.businessLiveActivityId, let liveActivityId = activity.attributes.liveActivityId {
Task {
var beforeToken = ""
for await pushToken in activity.pushTokenUpdates {
// here the problem:sometimes pushToken not update to me
let pushTokenStr = pushToken.map{String(format: "%02.2hhx", arguments: [$0])}.joined()
// avoid send duplication
if beforeToken == pushTokenStr {
return
}
beforeToken = pushTokenStr
// send pushToken to service
}
}
Task {
for await stateUpdate in activity.activityStateUpdates {
if stateUpdate == .active {
// live activity create
}
}
}
}
}
}
}
Hi all,
I'm currently implementing Live Activities using ActivityKit and facing a real-world limitation that I hope the community (or Apple) can clarify.
🔹 I can successfully start a Live Activity via APNs push (event: "start") even when the app is terminated — the Live Activity appears as expected on the Lock Screen and Dynamic Island.
However, I need to update that Live Activity using the name I assigned in the push payload (e.g., match-123). This requires calling:
Airship.channel.trackLiveActivity(activity, name: activity.attributes.matchID)
…or equivalent code in native implementations to associate the activity with its push token.
❓The problem:
If the user has never launched the app, or hasn't opened it after the Live Activity was started via push, then there’s no chance for the app to run this tracking code.
So:
✅ Live Activity starts fine via APNs
❌ I can't track the activity and register it for future push updates (by name) until the app is launched
❌ Therefore, I can't update the Live Activity without knowing the token-name mapping
🔍 My question:
Is there any way to programmatically track or associate a Live Activity (started via push) with a name for APNs updates, without requiring the app to launch?
Or put differently:
Can the system automatically track the name → token mapping if the activity is started via push?
Is there any way (via entitlement, plist config, or system event) to allow registering the activity in the background (without user launch)?
💡 Notes:
I already use pushType: .token and NSSupportsLiveActivitiesFrequentUpdates
Live Activity content is fine; only the ability to send future updates is blocked without initial app launch
Using Airship SDK for push + activity tracking, but the question is general to iOS + ActivityKit behavior
Any insight on how apps like FotMob, Uber, or sports apps handle this situation would be really helpful!
Thanks in advance.
Topic:
App & System Services
SubTopic:
Widgets & Live Activities
Tags:
APNS
User Notifications
WidgetKit
ActivityKit
Hi All,
I’m working on a football live score app with Dynamic Island support, using iOS 18 Broadcast Notifications for Live Activities. Our workflow is:
We use the Push-to-Start token to initiate the Live Activity.
For updates, we use the Channel ID.
Start, update, and end events for Live Activities are all handled via remote notifications.
We tested on 3-4 devices simultaneously, but noticed inconsistent UI updates: some devices update properly while others do not, even when using the same Channel ID.
Checking the notification console dashboard, last week we had around 1,397 notifications published but only 555 delivered — a significant discrepancy. All devices are active and connected to reliable internet, so we’re unsure why delivery rates are so low.
Additional details:
For the start event, we set notification priority to 10.
For updates, we lowered priority to 5 per Apple’s documentation, to reduce throttling.
This adjustment improved the situation compared to sandbox testing where all notifications were priority 10.
Despite this, during weekend matches, we observed a drastic drop: out of 140 published notifications, only 2 were delivered.
This large delivery gap risks missing critical update deadlines in our app. Could anyone help us understand what might be causing this and how to improve notification delivery reliability?
Thanks in advance!
Hi Apple Developer Community,
I'm trying to resolve the following Xcode build error:
*"Provisioning profile 'iOS Team Provisioning Profile: ' doesn't include the com.apple.developer.live-activities entitlement."
To fix this, I understand I need to add the Live Activity capability to my App ID and ensure it’s included in the provisioning profile.
However, when I go to Certificates, Identifiers & Profiles, select my App ID, and click Edit under "App ID Configuration," the Live Activity capability is not available in the list of capabilities. As a result, I can’t proceed with enabling the entitlement or regenerating a correct provisioning profile.
I’ve confirmed:
My App ID is explicit (not a wildcard).
The app’s deployment target is set to iOS 16.1 or later.
I’m signed in with the correct Apple Developer Team account.
etc.
Has anyone experienced this? Is there a prerequisite that I might be missing?
Thanks in advance for your help!
Best regards,
David Winograd
Rokfin, Inc.
Hi. I need some help in starting the live activity in terminated state using push notification.
I have developed an app which does not sleep and always run even in the background state. It is pressure calculator. From sensor, it will receive the pressure and display the values in the app. Whenever the pressure reaches a certain point, it should display the alert in the dynamic island.
As of now, it is displaying live activity in the foreground state. Working partially fine in the background state. But not working in the terminated state. but in the documentation it have been mentioned we can start the live activity using push notification from any state.
Please help me to find a solution.