ios-permissions-handling

Standardize iOS permission requests for camera, mic, speech, and photos.

Updated Dec 23, 2025
One-click install
npx skills add https://github.com/co-labs-co/context-harness-skills --skill ios-permissions-handling
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: ios-permissions-handling
Source: https://github.com/co-labs-co/context-harness-skills/tree/main/skill/ios-permissions-handling
Command: npx skills add https://github.com/co-labs-co/context-harness-skills --skill ios-permissions-handling

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

iOS apps must declare and request permissions for hardware access (camera, microphone, speech recognition, photo library, etc.) to prevent crashes, comply with App Store requirements, and provide a smooth user experience when permissions are denied or restricted.

Core Features & Use Cases

  • Info.plist Usage Descriptions: Ensure every permission has a corresponding NSUsageDescription key to satisfy App Store guidelines.
  • Runtime Authorization Flow: Implement structured requests at appropriate times (e.g., on first use) with proper error handling.
  • Denial & Fallback Handling: Gracefully handle denied or restricted permissions and guide users to Settings when needed.

Quick Start

Add the appropriate NSUsageDescription keys to Info.plist and implement runtime permission requests when first accessing each hardware feature.

Frequently Asked Questions about ios-permissions-handling

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I add Info.plist usage descriptions for iOS permissions to prevent App Store rejections?

To prevent App Store rejections, add the appropriate NSUsageDescription keys to your Info.plist for every hardware feature your app accesses, such as the camera, microphone, or photo library. This declares why your app needs each iOS permission.

When should I request runtime authorization for iOS hardware features like the camera or microphone?

You should request runtime authorization for iOS hardware features upon first use rather than at app launch. Structuring runtime permission requests at the moment of feature access prevents crashes and provides a smoother user experience.

What is the best way to handle denied or restricted iOS permissions?

The best way to handle denied or restricted iOS permissions is to implement graceful fallback flows that guide users to Settings. This denial handling ensures your app continues running smoothly when access to features like photos or speech recognition is restricted.

Why does my iOS app crash when accessing the microphone or photo library?

Your iOS app crashes because it lacks the required NSUsageDescription keys in the Info.plist before requesting runtime authorization. Standardizing iOS permissions workflows with proper usage descriptions prevents these hardware access crashes.

Do I need to declare speech recognition permissions in Info.plist for App Store compliance?

Yes, you must declare speech recognition permissions in Info.plist with the corresponding NSUsageDescription key for App Store compliance. Implementing structured runtime authorization requests ensures safe flows for speech and other hardware features.