Based on what I read in https://developer.apple.com/documentation/RealityKit/validating-usd-files, the APIs that Apple provides don't (currently?) provide any support for writing out USD files, and specifically for variants - the tooling of the various renderers allows you to select between variants, but it expects the variants to already be defined within the USD file.
There is a Entity.write(to: URL) capability that is new this year, but it creates a proprietary .reality format that isn't a stock USD(a/z) file. Based on my digging, the .reality file is a possibly a super-set of USD, because when it was created, the analog to capabilities needed in RealityKit didn't exist in the USD spec. Which may be (I suspect) still the case today.
Topic:
Spatial Computing
SubTopic:
Reality Composer Pro
Tags: