Skip to content

iOS setup

GitHub

The plugin does not inject usage descriptions. For each PermissionName you call, add matching keys to ios/App/App/Info.plist:

PermissionInfo.plist keys
cameraNSCameraUsageDescription
microphoneNSMicrophoneUsageDescription
photoLibraryNSPhotoLibraryUsageDescription
photoLibraryAddOnlyNSPhotoLibraryAddUsageDescription
contactsNSContactsUsageDescription
calendarNSCalendarsUsageDescription, NSCalendarsFullAccessUsageDescription
remindersNSRemindersUsageDescription, NSRemindersFullAccessUsageDescription
locationWhenInUseNSLocationWhenInUseUsageDescription
locationAlwaysNSLocationWhenInUseUsageDescription, NSLocationAlwaysAndWhenInUseUsageDescription
bluetoothNSBluetoothAlwaysUsageDescription
motionNSMotionUsageDescription
speechRecognitionNSSpeechRecognitionUsageDescription, NSMicrophoneUsageDescription
appTrackingTransparencyNSUserTrackingUsageDescription

notifications uses the system notification permission flow. Android-only names such as activityRecognition, phone, and sms return unavailable on iOS.

Apply keys from the plugin package:

Terminal window
node node_modules/@capgo/capacitor-permissions/scripts/apply-permissions.mjs \
--project . \
--permissions camera,microphone,notifications,locationWhenInUse,photoLibrary

Point --project at your Capacitor app root (the folder that contains ios/ and android/).