---
title: ImageCaptureCore
framework: ImageCaptureCore
role: collection
role_heading: Framework
platforms: [iOS 13.0+, iPadOS 13.0+, Mac Catalyst 13.0+, macOS 10.6+, visionOS 1.0+]
path: imagecapturecore
---

# ImageCaptureCore

Browse for media devices and control them programmatically from your app.

## Overview

Overview Using ImageCaptureCore, your app can: Discover connected cameras and scanners View and modify the folders, files, and metadata on a connected camera Take photos directly on a connected camera using tethered capture Perform overview scans and scans on a connected scanner

Configuring tethered capture and photo import To import pictures and tether from a macOS app, you first need to enable the Hardened Runtime capability in Xcode, and then add the Photos Library Entitlement. Before you can tether from an iOS app, you need to tell the user why the app is requesting access to an external camera. Add the NSCameraUsageDescription key to your Info.plist file with a description of your intended use. important: In macOS 14 and later, use the com.apple.security.device.usb entitlement key to allow your sandboxed app to interact with USB devices.

## Topics

### Essentials

- [ICDeviceBrowser](imagecapturecore/icdevicebrowser.md)
- [Photos Library Entitlement](bundleresources/entitlements/com.apple.security.personal-information.photos-library.md)
- [NSCameraUsageDescription](bundleresources/information-property-list/nscamerausagedescription.md)

### Cameras

- [ICCameraDevice](imagecapturecore/iccameradevice.md)
- [ICCameraDeviceDelegate](imagecapturecore/iccameradevicedelegate.md)
- [ICCameraItem](imagecapturecore/iccameraitem.md)
- [ICCameraFile](imagecapturecore/iccamerafile.md)
- [ICCameraFolder](imagecapturecore/iccamerafolder.md)

### Scanners

- [ICScannerDevice](imagecapturecore/icscannerdevice.md)
- [ICScannerDeviceDelegate](imagecapturecore/icscannerdevicedelegate.md)
- [Scanner Configuration](imagecapturecore/scanner-configuration.md)

### Errors

- [ICReturn](imagecapturecore/icreturn.md)
- [ICLegacyReturn](imagecapturecore/iclegacyreturn.md)
- [ICReturnConnectionError](imagecapturecore/icreturnconnectionerror.md)
- [ICReturnDownloadError](imagecapturecore/icreturndownloaderror.md)
- [ICReturnMetadataError](imagecapturecore/icreturnmetadataerror.md)
- [ICReturnObjectError](imagecapturecore/icreturnobjecterror.md)
- [ICReturnPTPDeviceError](imagecapturecore/icreturnptpdeviceerror.md)
- [ICReturnThumbnailError](imagecapturecore/icreturnthumbnailerror.md)

### Legacy Symbols

- [ICRunLoopMode](imagecapturecore/icrunloopmode.md)

### Articles

- [ImageCaptureCore Constants](imagecapturecore/imagecapturecore-constants.md)
- [ImageCaptureCore Data Types](imagecapturecore/imagecapturecore-data-types.md)
- [ImageCaptureCore Enumerations](imagecapturecore/imagecapturecore-enumerations.md)
- [ImageCaptureCore Macros](imagecapturecore/imagecapturecore-macros.md)
