---
title: "Verify iOS limited photo access uses the selected asset"
description: "Validate an iOS attachment flow with externally prepared limited photo access, ensuring only the intended allowed asset is attached and persisted."
canonical_url: "https://vostride.com/agent-library/ios-flows/limited-photo-selection.md"
md_url: "https://vostride.com/agent-library/ios-flows/limited-photo-selection.md"
content_kind: "recipe"
topic: "ios-flows"
---

# Verify iOS limited photo access uses the selected asset

Validate an iOS attachment flow with externally prepared limited photo access, ensuring only the intended allowed asset is attached and persisted.

## Risk

A library preview can show cached thumbnails outside the current authorization scope, and filenames can be identical across images. Match the uploaded artifact to a prepared asset digest instead of treating picker completion as sufficient.

## Fixtures

- An iOS sandbox device with limited photo access already configured externally for two harmless fixture images and one excluded image.
- A native target and explicit app-state policy preserving that permission fixture; agent-qa is not assumed to configure system photo permissions.
- A disposable report account plus an attachment oracle exposing media digest, dimensions, and report identifier for sandbox uploads.

## Steps

1. Open a new report, enter a unique title, and invoke its photo attachment flow; verify the permitted fixture images are available.
2. Select the allowed image with the distinctive marker and verify the app returns to the report with one attachment preview.
3. Verify the preview corresponds to that marker and that the excluded image is not exposed through the app-owned attachment browser.
4. Save the report and reopen it; verify the title and single attachment remain visible without requesting broader library access.
5. Inspect the attachment oracle and verify the selected asset digest and dimensions match the fixture and are linked only to this report.

## Expected results

- The persisted media matches the selected allowed fixture by digest and dimensions.
- The app-owned library flow respects the externally prepared limited asset set.
- The report has exactly one attachment relationship after reopening.

## False-pass traps

- A shared image filename cannot distinguish the selected image from a cached asset.
- A permission fixture that silently grants all photos makes the limited-access assertion meaningless.

## Cleanup

- Delete the sandbox report and upload, then restore the external photo-permission fixture baseline.

## Use with agent-qa

Adapt this test design to your application's acceptance criteria and configured target using the [recipe execution guide](/agent-library/software-factory/turn-a-recipe-into-an-agent-qa-test.md). External fixture setup and non-UI checks require your own supported hooks or test tooling. Validate the authored test, execute it, and inspect the completed evidence; this recipe is not a recorded test result.

## References

- [agent-qa mobile testing](/docs/agent-qa/guides/mobile-testing.md)
- [agent-qa test](/docs/agent-qa/configuration/test.md)
- [agent-qa hooks](/docs/agent-qa/guides/hooks.md)

- [iOS application QA recipes](/agent-library/ios-flows.md)
- [Software factory QA library](/agent-library.md)
