Skip to content

Ship iOS and visionOS slices for OpenUSD validator frameworks (Usd_UsdValidation, Usd_UsdGeomValidators, Usd_UsdShadeValidators, etc.) #21

@elkraneo

Description

@elkraneo

We are integrating OpenUSD validation as a first-class in-app subsystem in Preflight, using SwiftUsd 6.0.0 on top of OpenUSD 26.03.

Right now, SwiftUsd packages the validator frameworks only for macOS. The following xcframeworks are present, but only with macos-arm64 slices and .when(platforms: [.macOS]) target conditions in Package.swift:

  • Usd_UsdGeomValidators.xcframework
  • Usd_UsdPhysicsValidators.xcframework
  • Usd_UsdShadeValidators.xcframework
  • Usd_UsdSkelValidators.xcframework
  • Usd_UsdUtilsValidators.xcframework
  • Usd_UsdValidation.xcframework

What is missing today are the non-macOS slices:

  • ios-arm64
  • iossimulator-arm64
  • visionos-arm64
  • visionsimulator-arm64

This blocks a fully self-contained, cross-platform OpenUSD validation backend in apps that rely on SwiftUsd as their packaging surface. In our case, we now have a portable validation API layer in Preflight, but actual OpenUSD validator execution is still macOS-only because the validator binaries are not shipped for iOS / visionOS.

Request:

  1. Build and ship iOS and visionOS xcframework slices for the validator frameworks listed above.
  2. Update Package.swift so those validator targets are no longer restricted to .when(platforms: [.macOS]) once the slices exist.
  3. Clarify whether there are any known platform limitations for usdValidation / validator suites on iOS or visionOS beyond packaging.

Why this matters:

  • It enables in-app, no-CLI OpenUSD validation on Apple platforms.
  • It lets downstream apps use the OpenUSD validation framework consistently across macOS, iOS, and visionOS.
  • It improves alignment between SwiftUsd’s cross-platform runtime story and the OpenUSD validation framework that is already part of the upstream distribution.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions