> ## Documentation Index
> Fetch the complete documentation index at: https://docs.gleap.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# iOS SDK: Screenshots and recordings requested in conversations

> Let customers send in-app screenshots and screen recordings when a workflow, an AI agent or your team asks for them, with the Gleap iOS SDK.

When a workflow, an AI agent or a teammate asks a customer to show an issue, the widget shows a card with **Take screenshot** or **Record my screen**. On the customer's tap, the widget minimizes and a small bar appears over your app; the customer can drag it out of the way. The SDK captures your app when the customer taps **Capture** or **Start**. Workflows, AI agents and teammates can also collect logs from your app without asking the customer.

How to ask, what the customer sees and what your team gets: [Screenshots, recordings and logs](/documentation/guides/screenshots-recordings-and-logs).

<Note>
  Needs the iOS SDK 19.1.0 or later. Older versions show the card with **Upload a file** only.
</Note>

## How your app is captured

* The SDK draws your app's own windows. There is no system prompt, no ReplayKit and no `Info.plist` key to add.
* Screenshots and recordings show what the customer sees in your app, without the keyboard and without Gleap's own UI.
* Recordings run at about 4 frames per second, without sound, up to the maximum length set in the dashboard (3 minutes at most). While your app is in the background, the recording pauses.
* While recording, the bar shows a red dot, the time and **Stop**. The customer then sees a preview and chooses **Send**, **Retake** or **Cancel**.
* The SDK does nothing until a request arrives.

## Turn screenshots and recordings off

<CodeGroup>
  ```swift Swift theme={null}
  Gleap.setCaptureEnabled(false)
  ```

  ```objc Objective-C theme={null}
  [Gleap setCaptureEnabled: NO];
  ```
</CodeGroup>

While it's off, the card only offers **Upload a file**, and a capture in progress ends. It's on by default and can be changed at any time.

## Turn log requests off

<CodeGroup>
  ```swift Swift theme={null}
  Gleap.setRemoteLogCollectionEnabled(false)
  ```

  ```objc Objective-C theme={null}
  [Gleap setRemoteLogCollectionEnabled: NO];
  ```
</CodeGroup>

Log requests from workflows, AI agents and your team are then answered as not supported, and screenshots and recordings are sent without logs. It's on by default. The logs the SDK sends follow your other settings, for example `disableConsoleLog` and `setDisableEnvData`.

## Mask views

These fields are blacked out automatically:

* Secure text fields (`isSecureTextEntry`).
* Text fields and text views whose `textContentType` is `.password`, `.newPassword`, `.oneTimeCode` or `.creditCardNumber`, and on iOS 17 and later `.creditCardSecurityCode`.

To black out any other view, for example one that shows account details, mask it:

<CodeGroup>
  ```swift Swift theme={null}
  Gleap.maskView(accountDetailsView)

  // Show it in captures again.
  Gleap.unmaskView(accountDetailsView)
  ```

  ```objc Objective-C theme={null}
  [Gleap maskView: self.accountDetailsView];

  // Show it in captures again.
  [Gleap unmaskView: self.accountDetailsView];
  ```
</CodeGroup>

The view and everything in it is painted black in screenshots and recordings. The SDK keeps a weak reference, so the mask ends when the view goes away.

## Privacy manifest

The SDK's privacy manifest declares customer support data: linked to the user, used for app functionality and not for tracking.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.