
Background Processing
Schedule and execute background work on iOS using BGTaskScheduler.
Install
npx skills add dpearson2699/swift-ios-skills --skill background-processing -g -a claude-code -y- Repository
- dpearson2699/swift-ios-skills1.3k
- Category
- Testing
- Updated
- 3mo ago
- License
- See repository
- Context cost
- Mediumabout 3,000 tokens
- Runs scripts
- No, instructions only
What it does
Schedule and execute background work on iOS using BGTaskScheduler. Use when registering BGAppRefreshTask for short background fetches, BGProcessingTask for long-running maintenance, BGContinuedProcessingTask (iOS 26+) for foreground-started work that continues in background, background URLSession downloads, or background push notifications. Covers Info.plist configuration, expiration handling, task completion, and debugging with simulated launches.
Background Processing
Register, schedule, and execute background work on iOS using the BackgroundTasks framework, background URLSession, and background push notifications.
Contents
- Info.plist Configuration
- BGTaskScheduler Registration
- BGAppRefreshTask Patterns
- BGProcessingTask Patterns
- BGContinuedProcessingTask (iOS 26+)
- Background URLSession Downloads
- Background Push Triggers
- Common Mistakes
- Review Checklist
- References
Info.plist Configuration
Every task identifier must be declared in Info.plist under
BGTaskSchedulerPermittedIdentifiers, or submit(_:) throws
BGTaskScheduler.Error.Code.notPermitted.
<key>BGTaskSchedulerPermittedIdentifiers</key>
<array>
<string>com.example.app.refresh</string>
<string>com.example.app.db-cleanup</string>
<string>com.example.app.export.*</string>
</array>
Also enable the required UIBackgroundModes:
<key>UIBackgroundModes</key>
<array>
<string>fetch</string> <!-- Required for BGAppRefreshTask -->
<string>processing</string> <!-- Required for BGProcessingTask -->
</array>
In Xcode: target > Signing & Capabilities > Background Modes > enable "Background fetch" and "Background processing".
BGTaskScheduler Registration
Register handlers before app launch completes. In UIKit, register in
application(_:didFinishLaunchingWithOptions:); in SwiftUI, register in App.init().
UIKit Registration
import BackgroundTasks


