Undefined Symbols for StructureSDK 0.9


#1

We had encountered an issue when building StructureSDK 0.9 on Unity 2017.4.13f.

The error on Xcode reads:

Undefined symbols for architecture arm64:
OBJC_CLASS$_MPSImageTent”, referenced from:
objc-class-ref in Structure
ld: symbol(s) not found for architecture arm64

image

We understand that MPSImage stands for MetalPerformanceShader framework. However adding the MetalPerformanceShader framework in Xcode did not resolve the issue.

We hope to seek help on resolving this issue. Thanks alot!


#2

@Shin

I have not built for Unity, but upgrading from a Swift project that used SDK 0.8 I needed to add VideoToolbox, Metal, and MetalPerformanceShader frameworks to build successfully.

Best regards,

Jim Selikoff


#3

@Shin please let us know if Jim’s note helped – I wonder if we forgot to list the required frameworks fully in our announcement post (@anthony.monaco ?)


#4

Dear Jeff and Jim,

Thank you for the help! The issue surfaced because I used a software to build iOS app on Windows. Instead when I used Macbook to build the project, the undefined symbols issue disappeared.

However, when I opened the Simple scene under StructureUnityAR package on iPad, I was constantly prompted with tracking loss. The issue persisted even when I restarted the app multiple times. The iPad I used was iPad 9.7 inch (2017).

Would you kindly advice on this issue?


#5

Here are what we found:

  1. We are able to run BallPhysics scene when we use Xcode 10.0 and iOS12.2 on iPad Pro 9.7 (2017) under Unity2017.4.13f1. However, we observed significant deviation (around 2-3 cm) between mesh and physical objects. The deviation is similar to the issue that we encountered when we used StructureSDK0.8 last year. In addition, the mesh generated from the scan became mangled and deviated from physical objects in terms of size and shape.
  2. When we deployed the same app onto iPad 9.7 (2017), the app kept displaying “tracking lost”. We could not reach the scanning phase.
  3. Under Unity’s PlayerSettings, we need to assign OpenGLES2 followed by Metal for Graphics APIs in order for the app to be built successfully.

Currently, the deviation in scanning is the main concern. Followed by the inability to deploy the app onto iPad 9.7.


#6

Shin, though this doesn’t directly answer your question, maybe you would be better suited with using our Bridge Engine.

Bridge Engine makes it simple to author and deploy mind-bending mixed reality experiences to the mobile device you already own. Coupled with Structure Sensor’s ability to capture dense 3D meshes of scenes, you can create magical experiences where it’s impossible to tell the virtual from the real.


#7

Hello Anthony,

Yes I agree with you. We followed your advice last year and we have been using Bridge Engine. As we progressed significantly along our development, we hope to consult you whether we can increase the scanning resolution/voxel density on Bridge Engine. This request stems from demands to move into industrial sector using Structure Sensor.

We hope to hear from you.