Skip to content

[Photos/PhotosUI] Update bindings up to Xcode 27.0 Beta 4 - #26283

Merged
dalexsoto merged 3 commits into
xcode27.0from
dev/alex/xc27-Photos
Jul 28, 2026
Merged

[Photos/PhotosUI] Update bindings up to Xcode 27.0 Beta 4#26283
dalexsoto merged 3 commits into
xcode27.0from
dev/alex/xc27-Photos

Conversation

@dalexsoto

Copy link
Copy Markdown
Member

Summary

  • bind the remaining Photos APIs through Xcode 27.0 Beta 4, including asset metadata, ratings, adjustment state, persistent changes, HDR options, cloud identifiers, and macOS/Mac Catalyst upload jobs
  • add PhotosUI picker metadata/search APIs and shared-album creation, customization, and posting controllers
  • add a nullable archival PHCloudIdentifier factory and runtime coverage, then remove all resolved Photos/PhotosUI xtro todo files

Validation

  • make world
  • clean xtro generation/classification: sanity passed
  • clean Cecil suite: passed
  • introspection: macOS 32/32 and Mac Catalyst 39/39 passed; iOS/tvOS reported zero Photos/PhotosUI failures (remaining failures are unrelated Xcode 27 branch gaps)
  • CloudIdentifierTest: 1/1 passed on iOS, tvOS, macOS, and Mac Catalyst
  • dotnet app-size tests: 16/16 skipped as expected on beta Xcode

Bind the Xcode 27 Photos asset metadata, rating, adjustment, persistent-change, HDR, cloud identifier, and desktop upload-job APIs.

Add PhotosUI picker metadata and search support together with shared-album creation, customization, and posting controllers. Include the nullable archival cloud identifier factory, runtime conformance handling, coverage, and updated xtro/Cecil baselines.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 8359fed7-09e1-447e-8379-fcb69bac3872
Copilot AI review requested due to automatic review settings July 24, 2026 02:14
@dalexsoto dalexsoto added this to the xcode27 milestone Jul 24, 2026
@dalexsoto
dalexsoto requested a review from rolfbjarne July 24, 2026 02:14

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Updates the Photos/PhotosUI managed bindings to match APIs available through Xcode 27.0 Beta 4, adds minimal runtime coverage for the new PHCloudIdentifier archival factory, and cleans up xtro todo debt now resolved by the new bindings.

Changes:

  • Added new Photos enums/types/properties/methods (ratings, adjustments state, playback variation, extended metadata, HDR options, persistent changes observers, synced-cloud-identifier mapping, and macOS/Mac Catalyst upload-job surface).
  • Added PhotosUI picker metadata/search APIs plus shared-album creation/customization/posting controllers and related enums/delegates.
  • Added PHCloudIdentifier.Create (string archivalStringValue) + a runtime test, updated introspection/Cecil allowlists, and removed resolved xtro-sharpie todo files.

Reviewed changes

Copilot reviewed 17 out of 17 changed files in this pull request and generated no comments.

Show a summary per file
File Description
tests/xtro-sharpie/api-annotations-dotnet/tvOS-Photos.todo Removed resolved Photos xtro todo entries for tvOS.
tests/xtro-sharpie/api-annotations-dotnet/macOS-PhotosUI.todo Removed resolved PhotosUI xtro todo entries for macOS.
tests/xtro-sharpie/api-annotations-dotnet/macOS-Photos.todo Removed resolved Photos xtro todo entries for macOS.
tests/xtro-sharpie/api-annotations-dotnet/MacCatalyst-PhotosUI.todo Removed resolved PhotosUI xtro todo entries for Mac Catalyst.
tests/xtro-sharpie/api-annotations-dotnet/MacCatalyst-Photos.todo Removed resolved Photos xtro todo entries for Mac Catalyst.
tests/xtro-sharpie/api-annotations-dotnet/iOS-PhotosUI.todo Removed resolved PhotosUI xtro todo entries for iOS.
tests/xtro-sharpie/api-annotations-dotnet/iOS-Photos.todo Removed resolved Photos xtro todo entries for iOS.
tests/monotouch-test/Photos/CloudIdentifierTest.cs Added runtime test coverage for PHCloudIdentifier.Create returning null for invalid archival strings.
tests/introspection/ApiProtocolTest.cs Skips protocol conformance checks for PHPickerSearchText due to Xcode 27 header/runtime mismatch.
tests/cecil-tests/Documentation.KnownFailures.txt Updated Cecil documentation known-failure list for newly introduced Photos/PhotosUI API surface.
tests/cecil-tests/ApiAvailabilityTest.cs Added a known-failure entry for a platform-mismatched obsolete attribute in Photos.
src/PhotosUI/PHEnums.cs Added PHPickerMetadataOptions and PHSharedAlbumCreationSharingPolicy enums.
src/photosui.cs Added picker metadata/search bindings and shared-album creation/customization/posting controller bindings and delegates.
src/Photos/PHCloudIdentifier.cs Added nullable archival-string factory PHCloudIdentifier.Create with proper OS platform annotations.
src/Photos/Enums.cs Added missing Photos enums/values (e.g., PHAssetRating, PHOriginalResourceChoice, PHAssetPlaybackVariation, RootFolder, PhotoAnimation).
src/photos.cs Added new Photos selectors/properties (asset rating/metadata, HDR prefs, persistent changes observer, synced ID mapping, etc.) and updated deprecations.
src/frameworks.sources Included new Photos/PHCloudIdentifier.cs in Photos sources list.

@dalexsoto
dalexsoto enabled auto-merge (squash) July 24, 2026 02:20
The Xcode 27 headers declare PHLivePhotoRequestOptions.preferHDR for macOS 14 and Mac Catalyst 17, but those runtimes do not implement the getter or setter. Keep selector validation enabled from macOS 15 and Mac Catalyst 18, where CI confirms both selectors exist.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 8359fed7-09e1-447e-8379-fcb69bac3872
@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

Comment thread tests/introspection/iOSApiSelectorTest.cs Outdated
Comment thread tests/introspection/MacApiSelectorTest.cs Outdated
Comment thread src/photos.cs Outdated
Model PHLivePhotoRequestOptions.PreferHdr using the macOS 15 and Mac Catalyst 18 runtime availability instead of selector-test exceptions.

Remove the legacy upload-job creation API from macOS, document the malformed native availability in xtro, and drop the resulting Cecil known failure.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 8359fed7-09e1-447e-8379-fcb69bac3872
@dalexsoto
dalexsoto requested a review from rolfbjarne July 27, 2026 15:25
@vs-mobiletools-engineering-service2

Copy link
Copy Markdown
Collaborator

✅ API diff for current PR / commit

NET (empty diffs)

✅ API diff vs stable

NET (empty diffs)

ℹ️ Generator diff

Generator Diff: vsdrops (html) vsdrops (raw diff) gist (raw diff) - Please review changes)

Pipeline on Agent
Hash: 11a1165bea177ed32cd110fba2b97afd4ff52cba [PR build]

@dalexsoto dalexsoto added the ready-to-review This PR is ready to review/merge. label Jul 27, 2026
@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

Copy link
Copy Markdown
Collaborator

🚀 [CI Build #11a1165] Test results 🚀

Test results

✅ All tests passed on VSTS: test results.

🎉 All 200 tests passed 🎉

Tests counts

✅ assembly-processing: All 1 tests passed. Html Report (VSDrops) Download
✅ cecil: All 1 tests passed. Html Report (VSDrops) Download
✅ dotnettests (iOS): All 1 tests passed. Html Report (VSDrops) Download
✅ dotnettests (MacCatalyst): All 1 tests passed. Html Report (VSDrops) Download
✅ dotnettests (macOS): All 1 tests passed. Html Report (VSDrops) Download
✅ dotnettests (Multiple platforms): All 1 tests passed. Html Report (VSDrops) Download
✅ dotnettests (tvOS): All 1 tests passed. Html Report (VSDrops) Download
✅ framework: All 2 tests passed. Html Report (VSDrops) Download
✅ fsharp: All 4 tests passed. Html Report (VSDrops) Download
✅ generator: All 5 tests passed. Html Report (VSDrops) Download
✅ interdependent-binding-projects: All 4 tests passed. Html Report (VSDrops) Download
✅ introspection: All 6 tests passed. Html Report (VSDrops) Download
✅ linker (iOS): All 15 tests passed. Html Report (VSDrops) Download
✅ linker (MacCatalyst): All 15 tests passed. Html Report (VSDrops) Download
✅ linker (macOS): All 21 tests passed. Html Report (VSDrops) Download
✅ linker (tvOS): All 15 tests passed. Html Report (VSDrops) Download
✅ monotouch (iOS): All 19 tests passed. [attempt 2] Html Report (VSDrops) Download
✅ monotouch (MacCatalyst): All 18 tests passed. Html Report (VSDrops) Download
✅ monotouch (macOS): All 19 tests passed. Html Report (VSDrops) Download
✅ monotouch (tvOS): All 19 tests passed. Html Report (VSDrops) Download
✅ msbuild: All 2 tests passed. Html Report (VSDrops) Download
✅ sharpie: All 1 tests passed. Html Report (VSDrops) Download
✅ windows: All 3 tests passed. Html Report (VSDrops) Download
✅ xcframework: All 4 tests passed. Html Report (VSDrops) Download
✅ xtro: All 1 tests passed. Html Report (VSDrops) Download

macOS tests

✅ Tests on macOS Sonoma (14): All 5 tests passed. Html Report (VSDrops) Download
✅ Tests on macOS Sequoia (15): All 5 tests passed. Html Report (VSDrops) Download
✅ Tests on macOS Tahoe (26): All 5 tests passed. Html Report (VSDrops) Download
✅ Tests on macOS Golden Gate (27): All 5 tests passed. Html Report (VSDrops) Download

Linux Build Verification

Linux build succeeded

Pipeline on Agent
Hash: 11a1165bea177ed32cd110fba2b97afd4ff52cba [PR build]

@dalexsoto
dalexsoto merged commit 0aeba73 into xcode27.0 Jul 28, 2026
55 checks passed
@dalexsoto
dalexsoto deleted the dev/alex/xc27-Photos branch July 28, 2026 07:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

copilot ready-to-review This PR is ready to review/merge.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants