# Annotation Type IosPrivacy

@Retention(CLASS) @Target(TYPE) public @interface IosPrivacy

iOS `Info.plist` privacy usage descriptions. Set the one for every protected resource your app touches: the build server accepts an app without them, and the App Store rejects it.

Place this on your application's main class -- the class named by `codename1.mainName`. An attribute you do not set is not written at all, so the build server's own default applies. The `default` clause below each attribute names a constant that says nothing -- see `HintUnset` -- and this package deliberately does not record what the server would do instead, because that is the server's to change.

The platform is stated once on the annotation, not on every attribute. An attribute repeats it only to disagree with it.

- ## Optional Element Summary

  Optional Elements
  Modifier and Type
  Optional Element
  Description
  `String`
  `bluetoothAlwaysUsageDescription`
  Why the app uses Bluetooth.
  `String`
  `bluetoothPeripheralUsageDescription`
  The pre-iOS 13 spelling of the Bluetooth usage description, supplied and overridable on the same terms.
  `String`
  `calendarsFullAccessUsageDescription`
  The text iOS shows when the app first asks for the calendars full access.
  `String`
  `calendarsUsageDescription`
  The text iOS shows when the app first asks for the calendars.
  `String`
  `calendarsWriteOnlyAccessUsageDescription`
  The text iOS shows when the app first asks for the calendars write only access.
  `String`
  `cameraUsageDescription`
  The text iOS shows when the app first asks for the camera.
  `String`
  `healthShareUsageDescription`
  The text iOS shows when the app first asks for the health share.
  `String`
  `healthUpdateUsageDescription`
  The text iOS shows when the app first asks for the health update.
  `String`
  `localNetworkUsageDescription`
  The text iOS shows when the app first asks for the local network.
  `String`
  `locationAlwaysAndWhenInUseUsageDescription`
  The text iOS shows when the app first asks for the location always and when in use.
  `String`
  `locationAlwaysUsageDescription`
  The text iOS shows when the app first asks for the location always.
  `String`
  `locationWhenInUseUsageDescription`
  The text iOS shows when the app first asks for the location when in use.
  `String`
  `microphoneUsageDescription`
  The text iOS shows when the app first asks for the microphone.
  `String`
  `nearbyInteractionAllowOnceUsageDescription`
  The pre-iOS 16 spelling of the nearby-interaction usage description, supplied automatically when the app references the nearby APIs.
  `String`
  `nearbyInteractionUsageDescription`
  Why the app measures distance and direction to nearby devices.
  `String`
  `remindersFullAccessUsageDescription`
  The text iOS shows when the app first asks for the reminders full access.
  `String`
  `remindersUsageDescription`
  The text iOS shows when the app first asks for the reminders.
  `String`
  `speechRecognitionUsageDescription`
  Why the app sends speech for recognition.

- ## Element Details

  - ### bluetoothAlwaysUsageDescription

    String bluetoothAlwaysUsageDescription
    Why the app uses Bluetooth. Supplied automatically when the app references `com.codename1.bluetooth`; set it to say something more specific than the default.
    Default:
      `""`

  - ### bluetoothPeripheralUsageDescription

    String bluetoothPeripheralUsageDescription
    The pre-iOS 13 spelling of the Bluetooth usage description, supplied and overridable on the same terms.
    Default:
      `""`

  - ### calendarsFullAccessUsageDescription

    String calendarsFullAccessUsageDescription
    The text iOS shows when the app first asks for the calendars full access. It becomes the `NSCalendarsFullAccessUsageDescription` key in `Info.plist`. The App Store rejects an app that touches this resource without one.
    Default:
      `""`

  - ### calendarsUsageDescription

    String calendarsUsageDescription
    The text iOS shows when the app first asks for the calendars. It becomes the `NSCalendarsUsageDescription` key in `Info.plist`. The App Store rejects an app that touches this resource without one.
    Default:
      `""`

  - ### calendarsWriteOnlyAccessUsageDescription

    String calendarsWriteOnlyAccessUsageDescription
    The text iOS shows when the app first asks for the calendars write only access. It becomes the `NSCalendarsWriteOnlyAccessUsageDescription` key in `Info.plist`. The App Store rejects an app that touches this resource without one.
    Default:
      `""`

  - ### cameraUsageDescription

    String cameraUsageDescription
    The text iOS shows when the app first asks for the camera. It becomes the `NSCameraUsageDescription` key in `Info.plist`. The App Store rejects an app that touches this resource without one.
    Default:
      `""`

  - ### healthShareUsageDescription

    String healthShareUsageDescription
    The text iOS shows when the app first asks for the health share. It becomes the `NSHealthShareUsageDescription` key in `Info.plist`. The App Store rejects an app that touches this resource without one.
    Default:
      `""`

  - ### healthUpdateUsageDescription

    String healthUpdateUsageDescription
    The text iOS shows when the app first asks for the health update. It becomes the `NSHealthUpdateUsageDescription` key in `Info.plist`. The App Store rejects an app that touches this resource without one.
    Default:
      `""`

  - ### localNetworkUsageDescription

    String localNetworkUsageDescription
    The text iOS shows when the app first asks for the local network. It becomes the `NSLocalNetworkUsageDescription` key in `Info.plist`. The App Store rejects an app that touches this resource without one.
    Default:
      `""`

  - ### locationAlwaysAndWhenInUseUsageDescription

    String locationAlwaysAndWhenInUseUsageDescription
    The text iOS shows when the app first asks for the location always and when in use. It becomes the `NSLocationAlwaysAndWhenInUseUsageDescription` key in `Info.plist`. The App Store rejects an app that touches this resource without one.
    Default:
      `""`

  - ### locationAlwaysUsageDescription

    String locationAlwaysUsageDescription
    The text iOS shows when the app first asks for the location always. It becomes the `NSLocationAlwaysUsageDescription` key in `Info.plist`. The App Store rejects an app that touches this resource without one.
    Default:
      `""`

  - ### locationWhenInUseUsageDescription

    String locationWhenInUseUsageDescription
    The text iOS shows when the app first asks for the location when in use. It becomes the `NSLocationWhenInUseUsageDescription` key in `Info.plist`. The App Store rejects an app that touches this resource without one.
    Default:
      `""`

  - ### microphoneUsageDescription

    String microphoneUsageDescription
    The text iOS shows when the app first asks for the microphone. It becomes the `NSMicrophoneUsageDescription` key in `Info.plist`. The App Store rejects an app that touches this resource without one.
    Default:
      `""`

  - ### nearbyInteractionAllowOnceUsageDescription

    String nearbyInteractionAllowOnceUsageDescription
    The pre-iOS 16 spelling of the nearby-interaction usage description, supplied automatically when the app references the nearby APIs.
    Default:
      `""`

  - ### nearbyInteractionUsageDescription

    String nearbyInteractionUsageDescription
    Why the app measures distance and direction to nearby devices. Supplied automatically when the app references the nearby APIs; set it to say something more specific than the default.
    Default:
      `""`

  - ### remindersFullAccessUsageDescription

    String remindersFullAccessUsageDescription
    The text iOS shows when the app first asks for the reminders full access. It becomes the `NSRemindersFullAccessUsageDescription` key in `Info.plist`. The App Store rejects an app that touches this resource without one.
    Default:
      `""`

  - ### remindersUsageDescription

    String remindersUsageDescription
    The text iOS shows when the app first asks for the reminders. It becomes the `NSRemindersUsageDescription` key in `Info.plist`. The App Store rejects an app that touches this resource without one.
    Default:
      `""`

  - ### speechRecognitionUsageDescription

    String speechRecognitionUsageDescription
    Why the app sends speech for recognition. Supplied automatically when the app references the speech APIs; set it to say something more specific.
    Default:
      `""`