Apologies, I started a new Post as I accidentally clicked Resolved on the old one.
Using the official sample, Coffee Tracker, it provides timeline entries every 5 minutes.
My app is doing the same thing every 1 minute and works fine for 5 days.
It does not use background updates (maximum 4 per hour), just timeline entries.
// Return future timeline entries.
func getTimelineEntries(for complication: CLKComplication,
after date: Date,
limit: Int,
withHandler handler: @escaping ([CLKComplicationTimelineEntry]?) - Void) {
let fiveMinutes = 5.0 * 60.0
let twentyFourHours = 24.0 * 60.0 * 60.0
// Create an array to hold the timeline entries.
var entries = [CLKComplicationTimelineEntry]()
// Calculate the start and end dates.
var current = date.addingTimeInterval(fiveMinutes)
let endDate = date.addingTimeInterval(twentyFourHours)
// Create a timeline entry for every five minutes from the starting time.
// Stop once you reach the limit or the end date.
while (current.compare(endDate) == .orderedAscending) && (entries.count limit) {
entries.append(createTimelineEntry(forComplication: complication, date: current))
current = current.addingTimeInterval(fiveMinutes)
}
handler(entries)
}