RenderHeads / UnityPlugin-AVProVideo

AVPro Video is a multi-platform Unity plugin for advanced video playback
https://www.renderheads.com/products/avpro-video/
224 stars 27 forks source link

[visionOS] AVPPluginBootstrap unavailable at runtime using Unity's PolySpatial for Apple Vision Pro - dyld[12875]: missing symbol called #1875

Closed ReplyEdoardo closed 2 weeks ago

ReplyEdoardo commented 1 month ago

I'm currently trying to implement a video player, using AVPro, in my Unity project for VisionOS (in which I use PolySpatial). Building the project works fine but once I try to run the build on the simulator the application doesn't startup and returns the following error "dyld[12875]: missing symbol called" in the xcode log. I also tried to run a sample scene, from the AVPro package, with an XRRig instead of a normal camera and the error is on the same component (but the dyld number is different). Trying to run the project on Unity with the Play mode shows the video correctly but generates a bunch of errors on PolySpatial, while doing it with PolySpatial's "Play to Device" mode doesn't work on the simulator/device since the connection fails. EDIT about the last sentence: seems like these errors are due to the fact that I am running a Mixed Reality application, if switched to VR these errors are not shown, but the build has the same problem anyway.

I noticed that the build doesn't run when the component "Media Player" is active, while it is able to start when it is deactivated. While "Apply to Mesh" doesn't seem to have any influence.

Setup

To Reproduce

  1. Create a Unity project for VisionOS and import/setup PolySpatial, import AVPro with all its dependencies/files
  2. Create a simpe scenecamera compatible with the device (prefab available in the PolySpatial package) and a bounded volume using a volume camera (mine is 2x2x2, doubt it is relevant tho)
  3. Follow the quick start tutorial given in AVPro's user manual and the "Display Video on a Mesh" section, place the quad inside the bounded volume
  4. Setup VisionOS simulator
  5. Create the xcode project from unity and build it on XCode (the build is successful if the xcode is created for the simulator, at the moment for me it fails if for the device but for other errors)
  6. After a bit since launching the build, the log should show the error "dyld[12875]: missing symbol called" , and near the corresponding line "Thread 1: signal SIGABRT"

Logs dyld[12875]: missing symbol called

MorrisRH commented 3 weeks ago

The plugin settings have changed for visionOS due to Unity adding support for xcframeworks in version 2022.3.23f1 and unfortunately this was missed with version 3.0.1 (it will be fixed for version 3.0.2).

You need to find the AVProVideo.xcframework file under Assets/AVProVideo/Runtime/Plugins/visionOS and in the inspector enable visionOS in the plist of platforms as shown here: 336005122-87914758-c36c-426a-a899-75b939aec304 336005172-7a536e9f-0e74-429d-b215-a97808ff20fe

MorrisRH commented 3 weeks ago

Linking #1879

Chris-RH commented 3 weeks ago

AVPro Video version 3.0.2 has been released. Please let us know if it has not fixed your issue.

ReplyEdoardo commented 2 weeks ago

AVPro Video version 3.0.2 has been released. Please let us know if it has not fixed your issue.

Hi, sorry for the delay but I had the chance to test it just now. Installing the new version and following the instructions #1879 and #1800 made it work. Thank you for the help!