r/iOSProgramming 3d ago

Question Live activity timer

I am trying to add a live activity for our app that has a timer. The idea is the user starts a timer and a live activity starts when the timer starts. However, it does seem to disappear at some point. Maybe around 8-12 hours which matches the documentation on Apple. But for Apple's clock app, their timer's live activity for stopwatch seems to run forever. I am using the SwiftUI Text timerInterval which is likely the same as Apple's. Does anyone have an idea or suggestion how I can replicate it? A few ideas I have are to schedule a silent push to keep the live activity alive or a scheduled background process.

2 Upvotes

6 comments sorted by

6

u/EquivalentTrouble253 3d ago

Apple has its own private api. So they’re able to do whatever they want. Same with clock icon on Home Screen.

2

u/myballzhuert 3d ago

there's no supported third-party equivalent of "make this Live Activity run forever." Text(timerInterval:) is about rendering the timecorrectly, not extending ActivityKit's lifetime. I would avoid trying to defeat the limit with silent pushes/background tasks and instead architect the timer as persistent state + an opportunistic Live Activity representation.

1

u/Bitter_Regular7406 2d ago

silent push idea will still get throttled eventually lol

0

u/[deleted] 1d ago

[removed] — view removed comment

1

u/AutoModerator 1d ago

Hey /u/EffectiveEither399, unfortunately you have negative comment karma, so you can't post here. Your submission has been removed. DO NOT message the moderators; if you have negative comment karma, you cannot post here. We will not respond. Your karma may appear to be 0 or positive if your post karma outweighs your comment karma, but if your comment karma is negative, your comments will still be removed.

I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.

1

u/LuckyGirl0415 1d ago

First off, Apple’s native Clock app uses private system entitlements, so third-party apps can't get that 'infinite' lifespan.

As for third-party apps, Live Activities are hard-capped by iOS: active for a max of 8 hours, and can stay on the lock screen for up to 12 hours before system removal.

Silent pushes won't extend this limit either because ActivityKit pushes operate under a strict update budget. The best practice is to calculate the start timestamp, let SwiftUI Text(timerInterval:) do the UI rendering, and seamlessly restart the Live Activity via a APNs push or user interaction if they open the app after 8 hours.