Skip to content

[HealthKit] Update bindings up to Xcode 27.0 Beta 3#26164

Open
dalexsoto wants to merge 2 commits into
xcode27.0from
dev/alex/xc27-HealthKit
Open

[HealthKit] Update bindings up to Xcode 27.0 Beta 3#26164
dalexsoto wants to merge 2 commits into
xcode27.0from
dev/alex/xc27-HealthKit

Conversation

@dalexsoto

Copy link
Copy Markdown
Member

Summary

  • bind the Xcode 27.0 Beta 3 menopausal-state enum and reproductive-health category identifiers
  • add HKLiveWorkoutZoneUpdate and the typed HKHealthStore earliest-authorized-sample-date API, including async support
  • remove the resolved iOS, macOS, and Mac Catalyst HealthKit xtro todo files

Validation

  • make world
  • clean make -C tests/xtro-sharpie gen-all + dotnet-classify (sanity passed)
  • clean make -C tests/cecil-tests run-tests (112 passed, 4 skipped)
  • clean AppSizeTest run (0 failed; 16 skipped because Xcode is beta)
  • macOS introspection: 32/32 passed
  • Mac Catalyst introspection: 39/39 passed
  • iOS/tvOS Xcode 27 introspection exercised the new surface without HealthKit failures; the remaining suite failures are unrelated Beta 3 UIKit, AVKit, and AVFoundation runtime gaps

Bind the new menopausal state enum and reproductive health category type identifiers introduced in Xcode 27.0 Beta 3.

Add HKLiveWorkoutZoneUpdate with version-correct iOS, Mac Catalyst, and macOS availability, and expose its nullable last processed sample date. Add the typed HKHealthStore earliest-authorized-sample-date query, including nullable callback results and an async wrapper.

Remove the resolved iOS, macOS, and Mac Catalyst xtro todo files.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 98f85a00-e18f-4ca6-aca8-8db99371c729
Copilot AI review requested due to automatic review settings July 17, 2026 04:15
@dalexsoto dalexsoto added this to the xcode27 milestone Jul 17, 2026
@dalexsoto
dalexsoto requested a review from rolfbjarne July 17, 2026 04:15

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 HealthKit binding surface to match Xcode 27.0 Beta 3, adding newly introduced enums/identifiers and new APIs (including async wrappers), and cleaning up xtro-sharpie todo tracking now that the APIs are bound.

Changes:

  • Added HKCategoryValueMenopausalState and new HKCategoryTypeIdentifier fields for reproductive health categories.
  • Added HKLiveWorkoutZoneUpdate and HKHealthStore.getEarliestAuthorizedSampleDateForTypes:completion: with async support.
  • Removed resolved HealthKit xtro-sharpie .todo files for iOS/macOS/Mac Catalyst.

Reviewed changes

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

Show a summary per file
File Description
tests/xtro-sharpie/api-annotations-dotnet/macOS-HealthKit.todo Removed resolved xtro todo entries now covered by bindings.
tests/xtro-sharpie/api-annotations-dotnet/MacCatalyst-HealthKit.todo Removed resolved xtro todo entries now covered by bindings.
tests/xtro-sharpie/api-annotations-dotnet/iOS-HealthKit.todo Removed resolved xtro todo entries now covered by bindings.
src/HealthKit/Enums.cs Added HKCategoryValueMenopausalState enum with Xcode 27 availability.
src/healthkit.cs Added new HealthKit API bindings: delegate + HKHealthStore method (async-enabled), identifiers, and HKLiveWorkoutZoneUpdate.

@dalexsoto
dalexsoto enabled auto-merge (squash) July 17, 2026 05:22
@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

Skip the new Xcode 27 reproductive-health category identifiers when monotouch tests run on an older OS. The managed enum values are present when building with Xcode 27, but their native field symbols are unavailable before OS 27.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 98f85a00-e18f-4ca6-aca8-8db99371c729
@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: ea39afd533e8dd1f06af9310849712d60a7160bf [PR build]

@vs-mobiletools-engineering-service2

Copy link
Copy Markdown
Collaborator

🔥 [CI Build #ea39afd] Test results 🔥

Test results

❌ Tests failed on VSTS: test results

3 tests crashed, 1 tests failed, 174 tests passed.

Failures

❌ interdependent-binding-projects tests

🔥 Failed catastrophically on VSTS: test results - interdependent-binding-projects (no summary found).

Html Report (VSDrops) Download

❌ linker tests (iOS)

🔥 Failed catastrophically on VSTS: test results - linker_ios (no summary found).

Html Report (VSDrops) Download

❌ xtro tests

🔥 Failed catastrophically on VSTS: test results - xtro (no summary found).

Html Report (VSDrops) Download

❌ Tests on macOS Tahoe (26) tests

1 tests failed, 4 tests passed.

Failed tests

  • macOS/osx-arm64 monotouch-test: Failed (exit code 137)
    • No test failure details available. Output tail:
      • 2026-07-17 03:28:37.300 monotouchtest[19817:19826173] CFSocketSetAddress listen failure: 102
      • 2026-07-17 03:28:37.314 monotouchtest[19817:19826173] CFSocketSetAddress listen failure: 102
      • 2026-07-17 03:28:37.328 monotouchtest[19817:19826173] CFSocketSetAddress listen failure: 102
      • 2026-07-17 03:28:37.342 monotouchtest[19817:19826173] CFSocketSetAddress listen failure: 102
      • 2026-07-17 03:28:37.356 monotouchtest[19817:19826173] CFSocketSetAddress listen failure: 102
      • 2026-07-17 03:28:37.370 monotouchtest[19817:19826173] CFSocketSetAddress listen failure: 102
      • 2026-07-17 03:28:37.384 monotouchtest[19817:19826173] CFSocketSetAddress listen failure: 102
      • 2026-07-17 03:28:37.427 monotouchtest[19817:19825745] CFSocketSetAddress listen failure: 102
      • Execution timed out after 600 seconds.
      • Execution completed with exit code 137

Html Report (VSDrops) Download

Successes

✅ 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
✅ introspection: All 6 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. 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

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 Golden Gate (27): Tests skipped, incorrect beta version. Html Report (VSDrops) Download

Linux Build Verification

Linux build succeeded

Pipeline on Agent
Hash: ea39afd533e8dd1f06af9310849712d60a7160bf [PR build]

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants