Apple system integrations

Focused Swift previews and permission checks for the services your app uses.

Included in npm 2.8.0 and later.

← Home · Client setup · Agent workflow and limitations

EventKit · EventKitUI

Calendar

Use system event editing for user-confirmed creation without broad access; use explicit full access only for reading/editing existing events.

Operations: authorize, calendars, fetch, create, update, delete, alarms

Permissions: NSCalendarsFullAccessUsageDescription for read/write; NSCalendarsWriteOnlyAccessUsageDescription for write-only

Verification: iOS 17 authorization APIs; legacy keys only for older OS paths. Simulator account data differs from device. Recurring edits require an explicit span; do not delete silently. Device verification required before shipping.

Apple framework documentation
EventKit

Reminders

Request reminders access separately from calendars; let the user choose a writable list.

Operations: authorize, lists, create, due-date, priority, notes, complete, recurrence

Permissions: NSRemindersFullAccessUsageDescription

Verification: Verify device accounts, due-date time zones and recurrence. No write-only reminders authorization. Device verification required before shipping.

Apple framework documentation
Contacts · ContactsUI

Contacts

Prefer CNContactPickerViewController for user-selected contacts. Direct store access must respect limited authorization.

Operations: pick, authorize, fetch, search, create, update, thumbnail

Permissions: NSContactsUsageDescription for direct store access only

Verification: Limited access does not imply an empty address book. Do not escalate to full access automatically. Test limited contacts on an iOS 18+ device. Device verification required before shipping.

Apple framework documentation
PhotosUI · Photos

Photos

Use PhotosPicker for import without broad permission. Request add-only access only when saving.

Operations: pick-multiple, filter, load-transferable, save-image, save-video

Permissions: NSPhotoLibraryAddUsageDescription for add-only; NSPhotoLibraryUsageDescription for read/write

Verification: Cloud-backed selections can fail or be cancelled; test offline and large media. Limited library access is a valid read/write authorization state. Device verification required before shipping.

Apple framework documentation
AVFoundation · UIKit

Camera

Use a presented capture controller for still photos; use AVFoundation for custom video pipelines and VisionKit/metadata output for scanning.

Operations: authorize, capture-photo, switch-camera, video-guidance, barcode-guidance

Permissions: NSCameraUsageDescription; NSMicrophoneUsageDescription only for audio recording

Verification: Camera availability must be checked at runtime. Simulator cannot verify hardware capture. Video and barcode support are guidance routes, not generated custom capture pipelines. Device verification required before shipping.

Apple framework documentation
MapKit · CoreLocation

Maps

MapKit coordinates, search and opening Maps do not require device-location access. Keep location authorization separate.

Operations: map, annotations, search, directions, open-maps, current-location-guidance

Permissions: NSLocationWhenInUseUsageDescription only when accessing device location

Verification: Search/directions require network; Simulator coordinates do not prove device accuracy. Maps routing UI remains system-controlled. Device verification required before shipping.

Apple framework documentation
SwiftUI · UniformTypeIdentifiers

Files

Use fileImporter/fileExporter and FileDocument; balance security-scoped access with defer.

Operations: import, export, security-scope, pdf

Permissions: No broad-data permission for the supplied system UI workflow.

Verification: Test real document providers, cancellation and unavailable files on device. Provider access is user-mediated, not unrestricted filesystem access. Device verification required before shipping.

Apple framework documentation
SwiftUI · UIKit

Share Sheet

Use ShareLink for Transferable values or UIActivityViewController for mixed items. AirDrop is a system destination.

Operations: text, url, image, pdf, file

Permissions: No broad-data permission for the supplied system UI workflow.

Verification: User chooses the destination and confirms. There is no public direct AirDrop-send API. Available destinations vary by device, installed apps and restrictions. Device verification required before shipping.

Apple framework documentation
AppIntents

Siri and Shortcuts

Expose a real app action through AppIntent; use AppEntity/EntityQuery for app-owned data and reuse the App Intents reviewer.

Operations: intent, parameters, app-shortcuts, entity-guidance, deep-link-guidance

Permissions: No broad-data permission for the supplied system UI workflow.

Verification: A generic scaffold cannot infer your entity store or app navigation. Device testing is needed for Siri discovery; an AppIntent does not grant data access or require the legacy Siri entitlement. Device verification required before shipping.

Apple framework documentation
UserNotifications

Notifications

Request authorization in context and schedule local notifications; handle responses through a retained delegate.

Operations: authorize, status, schedule, categories, actions, deep-link

Permissions: No broad-data permission for the supplied system UI workflow.

Verification: Remote push additionally needs aps-environment, provisioning and a provider; local notifications do not. Test foreground/background actions and denied permissions on device. Delivery timing is controlled by iOS. Device verification required before shipping.

Apple framework documentation