Back to list
co-labs-co

ios-permissions-handling

by co-labs-co

Central skills repository for ContextHarness - curated agent skills and workflows

0🍴 0📅 Jan 12, 2026

SKILL.md


name: ios-permissions-handling version: 0.1.0 author: cmtzco description: iOS app permissions request and management guide. When to use: when adding camera access, microphone usage, speech recognition, photo library access, or any iOS system resource requiring user authorization. What problems it solves: prevents app crashes due to missing permissions, ensures App Store approval by including proper usage descriptions, handles permission request flows properly, and manages permission denial states gracefully.

iOS Permissions Handling

Overview

iOS apps must explicitly request user permission before accessing hardware features like camera, microphone, photo library, or speech recognition. This skill covers the complete permissions flow: Info.plist configuration, runtime authorization requests, and handling denied/don't-ask-again states.

Identified Patterns

The following patterns were identified in this codebase that this skill addresses:

Pattern 1: Info.plist Usage Descriptions

  • Location: DadBrain/DadBrain/Resources/Info.plist
  • Description: Required NSUsageDescription keys for each permission type
  • Frequency: 4 permission descriptions (NSMicrophoneUsageDescription, NSSpeechRecognitionUsageDescription, NSCameraUsageDescription, NSPhotoLibraryUsageDescription)

Pattern 2: Runtime Authorization Request

  • Location: DadBrain/DadBrain/ViewModels/VoiceRecorder.swift
  • Description: Programmatic permission request with proper error handling
  • Frequency: 1 complete implementation for Speech Recognition

TODO: Implementation

This skeleton skill needs Phase 2 refinement. Areas to develop:

Workflow Instructions

  1. Add NSUsageDescription to Info.plist
  2. Import required framework
  3. Request authorization at appropriate time
  4. Handle authorization status responses
  5. Implement graceful fallback for denied permissions

Best Practices

  • When to request permissions (app launch vs first use)
  • How to explain why permission is needed
  • Handling "don't ask again" scenarios
  • Linking to Settings app when permission denied

Common Pitfalls

  • Missing usage descriptions in Info.plist (App Store rejection)
  • Requesting permissions too early (user confusion)
  • Not handling permission denial (app crashes)
  • Forgetting to add framework capabilities in Xcode

Suggested Resources

Based on codebase analysis, consider adding:

Scripts (scripts/)

  • permission-request-generator.swift - Generates Info.plist entries and request code
  • permission-checker.sh - Validates all required permissions are properly configured

References (references/)

  • ios-permissions-guide.md - Complete list of iOS permission types and keys
  • permission-request-timing.md - Best practices for when to request permissions
  • app-store-permissions-requirements.md - App Store review guidelines for permissions

Assets (assets/)

  • usage-description-templates/ - Template descriptions for common permission types
  • permission-flow-ux/ - UX patterns for permission request screens

Evidence from Codebase

FilePatternRelevance
DadBrain/DadBrain/Resources/Info.plistNSUsageDescription entriesRequired Info.plist configuration
DadBrain/DadBrain/ViewModels/VoiceRecorder.swiftSFSpeechRecognizer.requestAuthorization()Runtime authorization example
DadBrain/DadBrain/ViewModels/PhotoScanner.swiftCamera/Photo library permissionsMultiple permission handling

Refinement Priority

Score: 8.6/10 Priority: High

Refinement Tasks

  1. Research complete iOS permission types and their keys
  2. Create permission-request-generator script
  3. Document all permission-related Info.plist keys
  4. Add examples for each permission type (camera, mic, speech, photos, location)
  5. Create UX patterns for permission request screens

Skeleton generated by ContextHarness /baseline Run Phase 2 skill refinement to complete implementation

Score

Total Score

60/100

Based on repository quality metrics

SKILL.md

SKILL.mdファイルが含まれている

+20
LICENSE

ライセンスが設定されている

+10
説明文

100文字以上の説明がある

0/10
人気

GitHub Stars 100以上

0/15
最近の活動

3ヶ月以内に更新がある

0/10
フォーク

10回以上フォークされている

0/5
Issue管理

オープンIssueが50未満

+5
言語

プログラミング言語が設定されている

+5
タグ

1つ以上のタグが設定されている

0/5

Reviews

💬

Reviews coming soon