Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[iOS] How to integrate Vuforia #68

Closed
JanOwiesniak opened this issue Nov 6, 2018 · 19 comments
Closed

[iOS] How to integrate Vuforia #68

JanOwiesniak opened this issue Nov 6, 2018 · 19 comments

Comments

@JanOwiesniak
Copy link

I started with react-native-unity-demo and after some issues with link.xml, the demo project is working now.

I tried to include Vuforia by clicking on "Vuforia Augmented Reality Support" in Unity "Player Settings > iOS > VR Settings", rebuild the Unity Project with "Build Export IOS" and recompiled it in XCode.

It seems like XCode is missing some Vuforia dependencies. Do i have to add anything else to UnityConfig.xcconfig?

//
//  UnityConfig.xcconfig
//  rnunitydemo
//
//  Created by xzper on 2018/3/6.
//  Copyright © 2018年 Facebook. All rights reserved.
//
UNITY_SCRIPTING_BACKEND = il2cpp;
GCC_PREFIX_HEADER = $(SRCROOT)/UnityExport/Classes/Prefix.pch;

HEADER_SEARCH_PATHS = $(inherited) "$(SRCROOT)/UnityExport/Classes" "$(SRCROOT)/UnityExport/Classes/Unity" "$(SRCROOT)/UnityExport/Classes/Native" "$(SRCROOT)/UnityExport/Libraries" "$(SRCROOT)/UnityExport/Libraries/libil2cpp/include" ${PODS_HEADER_PATHS};

LIBRARY_SEARCH_PATHS = $(inherited) "$(SRCROOT)/UnityExport/Libraries" "$(SRCROOT)/UnityExport/Libraries/libil2cpp/include" ${PODS_LIBRARY_PATHS};

// If using .net 4.0 in Unity, append -DNET_4_0 to OTHER_CFLAGS
OTHER_CFLAGS = $(inherited) -DINIT_SCRIPTING_BACKEND=1 -fno-strict-overflow -DRUNTIME_IL2CPP=1;

OTHER_LDFLAGS = $(inherited) -weak-lSystem -weak_framework CoreMotion -weak_framework GameKit -weak_framework iAd -framework AVFoundation -framework AudioToolbox -framework CFNetwork -framework CoreGraphics -framework CoreLocation -framework CoreMedia -framework CoreVideo -framework Foundation -framework MediaPlayer -framework MediaToolbox -framework Metal -framework OpenAL -framework OpenGLES -framework QuartzCore -framework SystemConfiguration -framework UIKit -liconv.2 -liPhone-lib -lil2cpp ${PODS_LIBRARIES};

CLANG_CXX_LANGUAGE_STANDARD = c++0x;
CLANG_CXX_LIBRARY = libc++;
CLANG_ENABLE_MODULES = NO;
CLANG_WARN_BOOL_CONVERSION = NO;
CLANG_WARN_CONSTANT_CONVERSION = NO;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES;
CLANG_WARN_EMPTY_BODY = NO;
CLANG_WARN_ENUM_CONVERSION = NO;
CLANG_WARN_INT_CONVERSION = NO;
CLANG_WARN_OBJC_ROOT_CLASS = YES;
CLANG_WARN_UNREACHABLE_CODE = NO;
CLANG_WARN__DUPLICATE_METHOD_MATCH = NO;
GCC_C_LANGUAGE_STANDARD = c99;
GCC_ENABLE_OBJC_EXCEPTIONS = NO;
GCC_ENABLE_CPP_RTTI = NO;
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_THUMB_SUPPORT = NO;
GCC_USE_INDIRECT_FUNCTION_CALLS = NO;
GCC_WARN_64_TO_32_BIT_CONVERSION = NO;
GCC_WARN_64_TO_32_BIT_CONVERSION[arch=*64] = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_UNDECLARED_SELECTOR = NO;
GCC_WARN_UNINITIALIZED_AUTOS = NO;
GCC_WARN_UNUSED_FUNCTION = NO;

ENABLE_BITCODE = NO;

DEAD_CODE_STRIPPING = YES;

This is what XCode throws at me:

Ld /Users/owiesniak/Library/Developer/Xcode/DerivedData/rnunitydemo-fngsqnqhkzukmdbkcvcrahaefnmz/Build/Products/Debug-iphoneos/rnunitydemo.app/rnunitydemo normal arm64 (in target: rnunitydemo)
    cd /Users/owiesniak/Code/react-native-unity-demo/ios
    export IPHONEOS_DEPLOYMENT_TARGET=9.0
    /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ -arch arm64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.1.sdk -L/Users/owiesniak/Library/Developer/Xcode/DerivedData/rnunitydemo-fngsqnqhkzukmdbkcvcrahaefnmz/Build/Products/Debug-iphoneos -L/Users/owiesniak/Code/react-native-unity-demo/ios/UnityExport/Libraries -L/Users/owiesniak/Code/react-native-unity-demo/ios/UnityExport/Libraries/libil2cpp/include -L/Users/owiesniak/Code/react-native-unity-demo/ios/rnunitydemo -F/Users/owiesniak/Library/Developer/Xcode/DerivedData/rnunitydemo-fngsqnqhkzukmdbkcvcrahaefnmz/Build/Products/Debug-iphoneos -filelist /Users/owiesniak/Library/Developer/Xcode/DerivedData/rnunitydemo-fngsqnqhkzukmdbkcvcrahaefnmz/Build/Intermediates.noindex/rnunitydemo.build/Debug-iphoneos/rnunitydemo.build/Objects-normal/arm64/rnunitydemo.LinkFileList -Xlinker -rpath -Xlinker @executable_path/Frameworks -miphoneos-version-min=9.0 -dead_strip -Xlinker -object_path_lto -Xlinker /Users/owiesniak/Library/Developer/Xcode/DerivedData/rnunitydemo-fngsqnqhkzukmdbkcvcrahaefnmz/Build/Intermediates.noindex/rnunitydemo.build/Debug-iphoneos/rnunitydemo.build/Objects-normal/arm64/rnunitydemo_lto.o -Xlinker -no_deduplicate -stdlib=libc++ -fobjc-arc -fobjc-link-runtime -weak-lSystem -weak_framework CoreMotion -weak_framework GameKit -weak_framework iAd -framework AVFoundation -framework AudioToolbox -framework CFNetwork -framework CoreGraphics -framework CoreLocation -framework CoreMedia -framework CoreVideo -framework Foundation -framework MediaPlayer -framework MediaToolbox -framework Metal -framework OpenAL -framework OpenGLES -framework QuartzCore -framework SystemConfiguration -framework UIKit -liconv.2 -liPhone-lib -lil2cpp -ObjC -lc++ /Users/owiesniak/Library/Developer/Xcode/DerivedData/rnunitydemo-fngsqnqhkzukmdbkcvcrahaefnmz/Build/Products/Debug-iphoneos/libRCTBlob.a /Users/owiesniak/Library/Developer/Xcode/DerivedData/rnunitydemo-fngsqnqhkzukmdbkcvcrahaefnmz/Build/Products/Debug-iphoneos/libRCTAnimation.a /Users/owiesniak/Library/Developer/Xcode/DerivedData/rnunitydemo-fngsqnqhkzukmdbkcvcrahaefnmz/Build/Products/Debug-iphoneos/libReact.a /Users/owiesniak/Library/Developer/Xcode/DerivedData/rnunitydemo-fngsqnqhkzukmdbkcvcrahaefnmz/Build/Products/Debug-iphoneos/libRCTAnimation.a /Users/owiesniak/Library/Developer/Xcode/DerivedData/rnunitydemo-fngsqnqhkzukmdbkcvcrahaefnmz/Build/Products/Debug-iphoneos/libRCTActionSheet.a /Users/owiesniak/Library/Developer/Xcode/DerivedData/rnunitydemo-fngsqnqhkzukmdbkcvcrahaefnmz/Build/Products/Debug-iphoneos/libRCTGeolocation.a /Users/owiesniak/Library/Developer/Xcode/DerivedData/rnunitydemo-fngsqnqhkzukmdbkcvcrahaefnmz/Build/Products/Debug-iphoneos/libRCTImage.a /Users/owiesniak/Library/Developer/Xcode/DerivedData/rnunitydemo-fngsqnqhkzukmdbkcvcrahaefnmz/Build/Products/Debug-iphoneos/libRCTLinking.a /Users/owiesniak/Library/Developer/Xcode/DerivedData/rnunitydemo-fngsqnqhkzukmdbkcvcrahaefnmz/Build/Products/Debug-iphoneos/libRCTNetwork.a /Users/owiesniak/Library/Developer/Xcode/DerivedData/rnunitydemo-fngsqnqhkzukmdbkcvcrahaefnmz/Build/Products/Debug-iphoneos/libRCTSettings.a /Users/owiesniak/Library/Developer/Xcode/DerivedData/rnunitydemo-fngsqnqhkzukmdbkcvcrahaefnmz/Build/Products/Debug-iphoneos/libRCTText.a /Users/owiesniak/Library/Developer/Xcode/DerivedData/rnunitydemo-fngsqnqhkzukmdbkcvcrahaefnmz/Build/Products/Debug-iphoneos/libRCTVibration.a /Users/owiesniak/Library/Developer/Xcode/DerivedData/rnunitydemo-fngsqnqhkzukmdbkcvcrahaefnmz/Build/Products/Debug-iphoneos/libRCTWebSocket.a -lRNUnityView -liPhone-lib -lil2cpp -lVuforiaWrapper -Xlinker -dependency_info -Xlinker /Users/owiesniak/Library/Developer/Xcode/DerivedData/rnunitydemo-fngsqnqhkzukmdbkcvcrahaefnmz/Build/Intermediates.noindex/rnunitydemo.build/Debug-iphoneos/rnunitydemo.build/Objects-normal/arm64/rnunitydemo_dependency_info.dat -o /Users/owiesniak/Library/Developer/Xcode/DerivedData/rnunitydemo-fngsqnqhkzukmdbkcvcrahaefnmz/Build/Products/Debug-iphoneos/rnunitydemo.app/rnunitydemo

ld: warning: arm64 function not 4-byte aligned: _unwind_tester from /Users/owiesniak/Code/react-native-unity-demo/ios/UnityExport/Libraries/libiPhone-lib.a(unwind_test_arm64.o)
Undefined symbols for architecture arm64:
  "Vuforia::MetalTextureData::~MetalTextureData()", referenced from:
      VuforiaWrapper::PlatformiOS::setVideoBackgroundTexturePtr(void*, int) in libVuforiaWrapper.a(PlatformiOS.o)
  "Vuforia::SmartTerrain::getClassType()", referenced from:
      _smartTerrain_hitTest in libVuforiaWrapper.a(SmartTerrain.o)
      _trackerManagerInitTracker in libVuforiaWrapper.a(TrackerManager.o)
      _trackerManagerDeinitTracker in libVuforiaWrapper.a(TrackerManager.o)
      TypeMapping::getType(int) in libVuforiaWrapper.a(TypeMapping.o)
      TypeMapping::getTypeID(Vuforia::Type) in libVuforiaWrapper.a(TypeMapping.o)
  "Vuforia::Anchor::getClassType()", referenced from:
      TypeMapping::getType(int) in libVuforiaWrapper.a(TypeMapping.o)
      TypeMapping::getTypeID(Vuforia::Type) in libVuforiaWrapper.a(TypeMapping.o)
  "Vuforia::RenderingPrimitives::RenderingPrimitives(Vuforia::RenderingPrimitives const&)", referenced from:
      _renderingPrimitives_UpdateCopy in libVuforiaWrapper.a(RenderingPrimitives.o)
  "Vuforia::VuMarkTarget::getClassType()", referenced from:
      TypeMapping::getType(int) in libVuforiaWrapper.a(TypeMapping.o)
      TypeMapping::getTypeID(Vuforia::Type) in libVuforiaWrapper.a(TypeMapping.o)
  "Vuforia::Recorder::getInstance()", referenced from:
      _recorderInit in libVuforiaWrapper.a(Recorder.o)
      _recorderStart in libVuforiaWrapper.a(Recorder.o)
      _recorderStop in libVuforiaWrapper.a(Recorder.o)
  "Vuforia::HandheldTransformModel::setPivotPoint(Vuforia::Vec3F const&)", referenced from:
      _rotationalDeviceTracker_SetModelCorrectionModeWithTransform in libVuforiaWrapper.a(DeviceTracker.o)
  "Vuforia::HeadTransformModel::setPivotPoint(Vuforia::Vec3F const&)", referenced from:
      _rotationalDeviceTracker_SetModelCorrectionModeWithTransform in libVuforiaWrapper.a(DeviceTracker.o)
  "Vuforia::HandheldTransformModel::~HandheldTransformModel()", referenced from:
      _rotationalDeviceTracker_SetModelCorrectionModeWithTransform in libVuforiaWrapper.a(DeviceTracker.o)
  "Vuforia::Obb3D::Obb3D(Vuforia::Obb3D const&)", referenced from:
      _modelTargetGetBoundingBox in libVuforiaWrapper.a(ModelTarget.o)
  "Vuforia::Obb3D::getCenter() const", referenced from:
      _modelTargetGetBoundingBox in libVuforiaWrapper.a(ModelTarget.o)
  "Vuforia::setInitParameters(int, char const*)", referenced from:
      _initQCARiOS in libVuforiaWrapper.a(VuforiaUnityPlayer.o)
  "Vuforia::init()", referenced from:
      _initQCARiOS in libVuforiaWrapper.a(VuforiaUnityPlayer.o)
  "Vuforia::Rectangle::getLeftTopY() const", referenced from:
      _imageTargetGetVirtualButtons in libVuforiaWrapper.a(ImageTarget.o)
  "Vuforia::MetalTextureData::MetalTextureData(id<MTLTexture>)", referenced from:
      VuforiaWrapper::PlatformiOS::setVideoBackgroundTexturePtr(void*, int) in libVuforiaWrapper.a(PlatformiOS.o)
  "Vuforia::HeadTransformModel::HeadTransformModel()", referenced from:
      _rotationalDeviceTracker_SetModelCorrectionModeWithTransform in libVuforiaWrapper.a(DeviceTracker.o)
  "Vuforia::Rectangle::getRightBottomX() const", referenced from:
      _imageTargetGetVirtualButtons in libVuforiaWrapper.a(ImageTarget.o)
  "Vuforia::Rectangle::~Rectangle()", referenced from:
      _imageTargetCreateVirtualButton in libVuforiaWrapper.a(ImageTarget.o)
      _virtualButtonSetAreaRectangle in libVuforiaWrapper.a(VirtualButton.o)
  "Vuforia::Rectangle::getRightBottomY() const", referenced from:
      _imageTargetGetVirtualButtons in libVuforiaWrapper.a(ImageTarget.o)
  "Vuforia::ObjectTracker::getClassType()", referenced from:
      _imageTargetBuilderStartScan in libVuforiaWrapper.a(ImageTargetBuilder.o)
      _imageTargetBuilderBuild in libVuforiaWrapper.a(ImageTargetBuilder.o)
      _imageTargetBuilderStopScan in libVuforiaWrapper.a(ImageTargetBuilder.o)
      _imageTargetBuilderGetFrameQuality in libVuforiaWrapper.a(ImageTargetBuilder.o)
      _imageTargetBuilderGetTrackableSource in libVuforiaWrapper.a(ImageTargetBuilder.o)
      _objectTrackerCreateDataSet in libVuforiaWrapper.a(ObjectTracker.o)
      _objectTrackerDestroyDataSet in libVuforiaWrapper.a(ObjectTracker.o)
      ...
  "Vuforia::HandheldTransformModel::HandheldTransformModel()", referenced from:
      _rotationalDeviceTracker_SetModelCorrectionModeWithTransform in libVuforiaWrapper.a(DeviceTracker.o)
  "Vuforia::onSurfaceChanged(int, int)", referenced from:
      _onSurfaceChanged in libVuforiaWrapper.a(QCARWrapper.o)
  "Vuforia::onResume()", referenced from:
      _onResume in libVuforiaWrapper.a(QCARWrapper.o)
  "Vuforia::onSurfaceCreated()", referenced from:
      _onSurfaceCreated in libVuforiaWrapper.a(QCARWrapper.o)
  "Vuforia::deinit()", referenced from:
      _qcarDeinit in libVuforiaWrapper.a(QCARWrapper.o)
  "Vuforia::DiagnosticsRecorder::clearAll()", referenced from:
      _diagnosticsRecorderClearAll in libVuforiaWrapper.a(DiagnosticsRecorder.o)
  "Vuforia::DiagnosticsRecorder::start()", referenced from:
      _diagnosticsRecorderStart in libVuforiaWrapper.a(DiagnosticsRecorder.o)
  "Vuforia::DiagnosticsRecorder::deinit()", referenced from:
      _diagnosticsRecorderDeinit in libVuforiaWrapper.a(DiagnosticsRecorder.o)
  "Vuforia::ModelTarget::getClassType()", referenced from:
      _dataSetGetTrackablesOfType in libVuforiaWrapper.a(DataSet.o)
      findModelTarget(void*, char const*) in libVuforiaWrapper.a(ModelTarget.o)
      TypeMapping::getType(int) in libVuforiaWrapper.a(TypeMapping.o)
      TypeMapping::getTypeID(Vuforia::Type) in libVuforiaWrapper.a(TypeMapping.o)
  "Vuforia::DiagnosticsRecorder::addUserComment(char const*)", referenced from:
      _diagnosticsRecorderAddUserComment in libVuforiaWrapper.a(DiagnosticsRecorder.o)
  "Vuforia::EyewearDevice::getClassType()", referenced from:
      _deviceIsEyewearDevice in libVuforiaWrapper.a(Eyewear.o)
      _eyewearDeviceIsSeeThru in libVuforiaWrapper.a(Eyewear.o)
      _eyewearDeviceGetScreenOrientation in libVuforiaWrapper.a(Eyewear.o)
      _eyewearDeviceIsDualDisplay in libVuforiaWrapper.a(Eyewear.o)
      _eyewearDeviceIsDisplayExtended in libVuforiaWrapper.a(Eyewear.o)
      _eyewearDeviceIsDisplayExtendedGLOnly in libVuforiaWrapper.a(Eyewear.o)
      _eyewearDeviceSetDisplayExtended in libVuforiaWrapper.a(Eyewear.o)
      ...
  "Vuforia::Tool::convert2GLMatrix(Vuforia::Matrix34F const&)", referenced from:
      _renderingPrimitives_GetVideoBackgroundProjectionMatrix in libVuforiaWrapper.a(RenderingPrimitives.o)
  "Vuforia::Type::isOfType(Vuforia::Type) const", referenced from:
      _dataSetGetTrackablesOfType in libVuforiaWrapper.a(DataSet.o)
      _trackerManagerInitTracker in libVuforiaWrapper.a(TrackerManager.o)
      _trackerManagerDeinitTracker in libVuforiaWrapper.a(TrackerManager.o)
      TypeMapping::getTypeID(Vuforia::Type) in libVuforiaWrapper.a(TypeMapping.o)
  "Vuforia::DiagnosticsRecorder::stop()", referenced from:
      _diagnosticsRecorderStop in libVuforiaWrapper.a(DiagnosticsRecorder.o)
  "Vuforia::Tool::convertPerspectiveProjection2GLMatrix(Vuforia::Matrix34F const&, float, float)", referenced from:
      _renderingPrimitives_GetProjectionMatrix in libVuforiaWrapper.a(RenderingPrimitives.o)
  "Vuforia::DiagnosticsRecorder::init(char const*, Vuforia::STORAGE_TYPE)", referenced from:
      _diagnosticsRecorderInit in libVuforiaWrapper.a(DiagnosticsRecorder.o)
  "Vuforia::DataSet::exists(char const*, Vuforia::STORAGE_TYPE)", referenced from:
      _dataSetExists in libVuforiaWrapper.a(DataSet.o)
  "Vuforia::Tool::setRotationFromQuaternion(Vuforia::Matrix34F&, Vuforia::Vec4F const&)", referenced from:
      _positionOrientationToCVPoseMatrix in libVuforiaWrapper.a(MathUtils.o)
  "Vuforia::CylinderTarget::getClassType()", referenced from:
      _cylinderTargetGetDimensions in libVuforiaWrapper.a(CylinderTarget.o)
      _cylinderTargetSetSideLength in libVuforiaWrapper.a(CylinderTarget.o)
      _cylinderTargetSetTopDiameter in libVuforiaWrapper.a(CylinderTarget.o)
      _cylinderTargetSetBottomDiameter in libVuforiaWrapper.a(CylinderTarget.o)
      _dataSetGetTrackablesOfType in libVuforiaWrapper.a(DataSet.o)
      TypeMapping::getType(int) in libVuforiaWrapper.a(TypeMapping.o)
      TypeMapping::getTypeID(Vuforia::Type) in libVuforiaWrapper.a(TypeMapping.o)
      ...
  "Vuforia::GLTextureData::~GLTextureData()", referenced from:
      _rendererSetVideoBackgroundTextureID in libVuforiaWrapper.a(Renderer.o)
  "Vuforia::CustomViewerParameters::CustomViewerParameters(float, char const*, char const*)", referenced from:
      _customViewerParameters_new in libVuforiaWrapper.a(ViewerParameters.o)
  "Vuforia::Tool::multiply(Vuforia::Matrix44F const&, Vuforia::Matrix44F const&)", referenced from:
      _applyZRotation in libVuforiaWrapper.a(MathUtils.o)
      _applyZRotationQuaternion in libVuforiaWrapper.a(MathUtils.o)
  "Vuforia::ObjectTarget::getClassType()", referenced from:
      _dataSetGetTrackablesOfType in libVuforiaWrapper.a(DataSet.o)
      _multiTargetGetLargestSizeComponent in libVuforiaWrapper.a(MultiTarget.o)
      _objectTargetSetSize in libVuforiaWrapper.a(ObjectTarget.o)
      _objectTargetGetSize in libVuforiaWrapper.a(ObjectTarget.o)
      TypeMapping::getType(int) in libVuforiaWrapper.a(TypeMapping.o)
      TypeMapping::getTypeID(Vuforia::Type) in libVuforiaWrapper.a(TypeMapping.o)
  "Vuforia::Obb3D::getHalfExtents() const", referenced from:
      _modelTargetGetBoundingBox in libVuforiaWrapper.a(ModelTarget.o)
  "Vuforia::onPause()", referenced from:
      _onPause in libVuforiaWrapper.a(QCARWrapper.o)
  "Vuforia::ViewerParameters::ViewerParameters(Vuforia::ViewerParameters const&)", referenced from:
      _viewerParameters_copy in libVuforiaWrapper.a(ViewerParameters.o)
      _viewerParametersList_GetByIndex in libVuforiaWrapper.a(ViewerParametersList.o)
      _viewerParametersList_GetByNameManufacturer in libVuforiaWrapper.a(ViewerParametersList.o)
  "Vuforia::DiagnosticsRecorder::clearUnpinned()", referenced from:
      _diagnosticsRecorderClearUnpinned in libVuforiaWrapper.a(DiagnosticsRecorder.o)
  "Vuforia::CameraDevice::getInstance()", referenced from:
      _cameraDeviceInitCamera in libVuforiaWrapper.a(CameraDevice.o)
      _cameraDeviceDeinitCamera in libVuforiaWrapper.a(CameraDevice.o)
      _cameraDeviceStartCamera in libVuforiaWrapper.a(CameraDevice.o)
      _cameraDeviceStopCamera in libVuforiaWrapper.a(CameraDevice.o)
      _cameraDeviceGetNumVideoModes in libVuforiaWrapper.a(CameraDevice.o)
      _cameraDeviceGetVideoMode in libVuforiaWrapper.a(CameraDevice.o)
      _cameraDeviceGetCameraDirection in libVuforiaWrapper.a(CameraDevice.o)
      ...
  "Vuforia::RenderingPrimitives::~RenderingPrimitives()", referenced from:
      _renderingPrimitives_UpdateCopy in libVuforiaWrapper.a(RenderingPrimitives.o)
  "Vuforia::Renderer::getInstance()", referenced from:
      _VuforiaRenderEvent in libVuforiaWrapper.a(Tracker.o)
      _rendererEnd in libVuforiaWrapper.a(Tracker.o)
      _rendererSetVideoBackgroundCfg in libVuforiaWrapper.a(Renderer.o)
      _rendererGetVideoBackgroundCfg in libVuforiaWrapper.a(Renderer.o)
      _rendererSetVideoBackgroundTextureID in libVuforiaWrapper.a(Renderer.o)
      _rendererIsVideoBackgroundTextureInfoAvailable in libVuforiaWrapper.a(Renderer.o)
      _rendererGetVideoBackgroundTextureInfo in libVuforiaWrapper.a(Renderer.o)
      ...
  "Vuforia::setDriverLibrary(char const*, void*)", referenced from:
      _qcarSetDriverLibrary in libVuforiaWrapper.a(QCAR.o)
  "Vuforia::State::getIllumination() const", referenced from:
      _updateQCAR in libVuforiaWrapper.a(Tracker.o)
  "Vuforia::getBufferSize(int, int, Vuforia::PIXEL_FORMAT)", referenced from:
      _updateQCAR in libVuforiaWrapper.a(Tracker.o)
      _vuMarkTargetGetInstanceImage in libVuforiaWrapper.a(Tracker.o)
      _qcarGetBufferSize in libVuforiaWrapper.a(QCAR.o)
      _guideViewGetImage in libVuforiaWrapper.a(GuideView.o)
  "Vuforia::Type::Type()", referenced from:
      TypeMapping::getType(int) in libVuforiaWrapper.a(TypeMapping.o)
  "Vuforia::State::getFrame() const", referenced from:
      _updateQCAR in libVuforiaWrapper.a(Tracker.o)
      _VuforiaRenderEvent in libVuforiaWrapper.a(Tracker.o)
      StateHolder::updateCurrentState() in libVuforiaWrapper.a(StateHolder.o)
  "Vuforia::PositionalDeviceTracker::getClassType()", referenced from:
      _checkPredictiveAndUpdateStateHolderMode in libVuforiaWrapper.a(Tracker.o)
      _positionalDeviceTracker_Reset in libVuforiaWrapper.a(DeviceTracker.o)
      _positionalDeviceTracker_CreateAnchorFromPose in libVuforiaWrapper.a(DeviceTracker.o)
      _positionalDeviceTracker_CreateAnchorFromHitTestResult in libVuforiaWrapper.a(DeviceTracker.o)
      _positionalDeviceTracker_DestroyAnchor in libVuforiaWrapper.a(DeviceTracker.o)
      TypeMapping::getType(int) in libVuforiaWrapper.a(TypeMapping.o)
      TypeMapping::getTypeID(Vuforia::Type) in libVuforiaWrapper.a(TypeMapping.o)
      ...
  "Vuforia::HeadTransformModel::~HeadTransformModel()", referenced from:
      _rotationalDeviceTracker_SetModelCorrectionModeWithTransform in libVuforiaWrapper.a(DeviceTracker.o)
  "Vuforia::Frame::getIndex() const", referenced from:
      _updateQCAR in libVuforiaWrapper.a(Tracker.o)
      _VuforiaRenderEvent in libVuforiaWrapper.a(Tracker.o)
      StateHolder::updateCurrentState() in libVuforiaWrapper.a(StateHolder.o)
  "Vuforia::DeviceTracker::getClassType()", referenced from:
      TypeMapping::getType(int) in libVuforiaWrapper.a(TypeMapping.o)
      TypeMapping::getTypeID(Vuforia::Type) in libVuforiaWrapper.a(TypeMapping.o)
  "Vuforia::State::getCameraCalibration() const", referenced from:
      _updateQCAR in libVuforiaWrapper.a(Tracker.o)
      _renderingPrimitives_GetProjectionMatrix in libVuforiaWrapper.a(RenderingPrimitives.o)
  "Vuforia::State::State(Vuforia::State const&)", referenced from:
      _updateQCAR in libVuforiaWrapper.a(Tracker.o)
      _VuforiaRenderEvent in libVuforiaWrapper.a(Tracker.o)
      _smartTerrain_hitTest in libVuforiaWrapper.a(SmartTerrain.o)
      StateHolder::Vuforia_onUpdate(Vuforia::State&) in libVuforiaWrapper.a(StateHolder.o)
      StateHolder::updateCurrentState() in libVuforiaWrapper.a(StateHolder.o)
  "Vuforia::Frame::getImages() const", referenced from:
      _updateQCAR in libVuforiaWrapper.a(Tracker.o)
  "Vuforia::MultiTarget::getClassType()", referenced from:
      _dataSetGetTrackablesOfType in libVuforiaWrapper.a(DataSet.o)
      _multiTargetGetLargestSizeComponent in libVuforiaWrapper.a(MultiTarget.o)
      TypeMapping::getType(int) in libVuforiaWrapper.a(TypeMapping.o)
      TypeMapping::getTypeID(Vuforia::Type) in libVuforiaWrapper.a(TypeMapping.o)
  "Vuforia::RotationalDeviceTracker::getClassType()", referenced from:
      _checkPredictiveAndUpdateStateHolderMode in libVuforiaWrapper.a(Tracker.o)
      _rotationalDeviceTracker_Recenter in libVuforiaWrapper.a(DeviceTracker.o)
      _rotationalDeviceTracker_SetPosePrediction in libVuforiaWrapper.a(DeviceTracker.o)
      _rotationalDeviceTracker_GetPosePrediction in libVuforiaWrapper.a(DeviceTracker.o)
      _rotationalDeviceTracker_SetModelCorrectionMode in libVuforiaWrapper.a(DeviceTracker.o)
      _rotationalDeviceTracker_GetModelCorrectionMode in libVuforiaWrapper.a(DeviceTracker.o)
      _rotationalDeviceTracker_SetModelCorrectionModeWithTransform in libVuforiaWrapper.a(DeviceTracker.o)
      ...
  "Vuforia::State::getTrackableResults() const", referenced from:
      _updateQCAR in libVuforiaWrapper.a(Tracker.o)
      _determineNewVuMarks in libVuforiaWrapper.a(Tracker.o)
      _vuMarkTargetGetInstanceImage in libVuforiaWrapper.a(Tracker.o)
  "Vuforia::VuMarkTargetResult::getClassType()", referenced from:
      _updateQCAR in libVuforiaWrapper.a(Tracker.o)
      _determineNewVuMarks in libVuforiaWrapper.a(Tracker.o)
      _vuMarkTargetGetInstanceImage in libVuforiaWrapper.a(Tracker.o)
  "Vuforia::DiagnosticsRecorder::addScreenshot(char const*, Vuforia::STORAGE_TYPE)", referenced from:
      _diagnosticsRecorderAddScreenshot in libVuforiaWrapper.a(DiagnosticsRecorder.o)
  "Vuforia::DeviceTrackableResult::getClassType()", referenced from:
      _updateQCAR in libVuforiaWrapper.a(Tracker.o)
  "Vuforia::ViewerParametersList::getListForAuthoringTools()", referenced from:
      _viewerParametersList_GetListForAuthoringTools in libVuforiaWrapper.a(ViewerParametersList.o)
  "Vuforia::DiagnosticsRecorder::generateDiagnostics(char const*)", referenced from:
      _diagnosticsRecorderGenerateDiagnostics in libVuforiaWrapper.a(DiagnosticsRecorder.o)
  "Vuforia::Frame::~Frame()", referenced from:
      _updateQCAR in libVuforiaWrapper.a(Tracker.o)
      _VuforiaRenderEvent in libVuforiaWrapper.a(Tracker.o)
      StateHolder::updateCurrentState() in libVuforiaWrapper.a(StateHolder.o)
  "Vuforia::setAllowedFusionProviders(Vuforia::FUSION_PROVIDER_TYPE)", referenced from:
      _qcarSetAllowedFusionProviders in libVuforiaWrapper.a(QCAR.o)
  "Vuforia::Tool::setTranslation(Vuforia::Matrix34F&, Vuforia::Vec3F const&)", referenced from:
      _positionOrientationToCVPoseMatrix in libVuforiaWrapper.a(MathUtils.o)
  "Vuforia::Rectangle::Rectangle(float, float, float, float)", referenced from:
      _imageTargetCreateVirtualButton in libVuforiaWrapper.a(ImageTarget.o)
      _virtualButtonSetAreaRectangle in libVuforiaWrapper.a(VirtualButton.o)
  "Vuforia::setFrameFormat(Vuforia::PIXEL_FORMAT, bool)", referenced from:
      _qcarSetFrameFormat in libVuforiaWrapper.a(QCAR.o)
  "Vuforia::Device::getInstance()", referenced from:
      _updateQCAR in libVuforiaWrapper.a(Tracker.o)
      _deviceIsEyewearDevice in libVuforiaWrapper.a(Eyewear.o)
      _eyewearDeviceIsSeeThru in libVuforiaWrapper.a(Eyewear.o)
      _eyewearDeviceGetScreenOrientation in libVuforiaWrapper.a(Eyewear.o)
      _eyewearDeviceIsDualDisplay in libVuforiaWrapper.a(Eyewear.o)
      _eyewearDeviceIsDisplayExtended in libVuforiaWrapper.a(Eyewear.o)
      _eyewearDeviceIsDisplayExtendedGLOnly in libVuforiaWrapper.a(Eyewear.o)
      ...
  "Vuforia::Obb3D::~Obb3D()", referenced from:
      _modelTargetGetBoundingBox in libVuforiaWrapper.a(ModelTarget.o)
  "Vuforia::State::State()", referenced from:
      _initFrameState in libVuforiaWrapper.a(Tracker.o)
      StateHolder::getCurrentState() in libVuforiaWrapper.a(StateHolder.o)
  "Vuforia::ImageTarget::getClassType()", referenced from:
      _dataSetGetTrackablesOfType in libVuforiaWrapper.a(DataSet.o)
      _imageTargetGetNumVirtualButtons in libVuforiaWrapper.a(ImageTarget.o)
      _imageTargetGetVirtualButtons in libVuforiaWrapper.a(ImageTarget.o)
      _imageTargetGetVirtualButtonName in libVuforiaWrapper.a(ImageTarget.o)
      _imageTargetCreateVirtualButton in libVuforiaWrapper.a(ImageTarget.o)
      _imageTargetDestroyVirtualButton in libVuforiaWrapper.a(ImageTarget.o)
      _targetFinderEnableTracking in libVuforiaWrapper.a(TargetFinder.o)
      ...
  "Vuforia::State::~State()", referenced from:
      _deinitFrameState in libVuforiaWrapper.a(Tracker.o)
      _updateQCAR in libVuforiaWrapper.a(Tracker.o)
      _VuforiaRenderEvent in libVuforiaWrapper.a(Tracker.o)
      _vuMarkTargetGetInstanceImage in libVuforiaWrapper.a(Tracker.o)
      std::__1::__deque_base<Vuforia::State, std::__1::allocator<Vuforia::State> >::clear() in libVuforiaWrapper.a(Tracker.o)
      _renderingPrimitives_GetProjectionMatrix in libVuforiaWrapper.a(RenderingPrimitives.o)
      _smartTerrain_hitTest in libVuforiaWrapper.a(SmartTerrain.o)
      ...
  "Vuforia::MetalRenderData::MetalRenderData()", referenced from:
      __GLOBAL__sub_I_PlatformiOS.mm in libVuforiaWrapper.a(PlatformiOS.o)
  "Vuforia::VuMarkTemplate::getClassType()", referenced from:
      _dataSetGetTrackablesOfType in libVuforiaWrapper.a(DataSet.o)
      _vuMarkTemplateGetVuMarkUserData in libVuforiaWrapper.a(VuMarkTemplate.o)
      _vuMarkTemplateGetOrigin in libVuforiaWrapper.a(VuMarkTemplate.o)
      _vuMarkTemplateSetTrackingFromRuntimeAppearance in libVuforiaWrapper.a(VuMarkTemplate.o)
      TypeMapping::getType(int) in libVuforiaWrapper.a(TypeMapping.o)
      TypeMapping::getTypeID(Vuforia::Type) in libVuforiaWrapper.a(TypeMapping.o)
  "Vuforia::registerCallback(Vuforia::UpdateCallback*)", referenced from:
      _checkPredictiveAndUpdateStateHolderMode in libVuforiaWrapper.a(Tracker.o)
      _initFrameState in libVuforiaWrapper.a(Tracker.o)
      _deinitFrameState in libVuforiaWrapper.a(Tracker.o)
  "Vuforia::MetalRenderData::~MetalRenderData()", referenced from:
      __GLOBAL__sub_I_PlatformiOS.mm in libVuforiaWrapper.a(PlatformiOS.o)
  "Vuforia::getLibraryVersion()", referenced from:
      _getVuforiaLibraryVersion in libVuforiaWrapper.a(QCARWrapper.o)
  "Vuforia::getActiveFusionProvider()", referenced from:
      _qcarGetActiveFusionProvider in libVuforiaWrapper.a(QCAR.o)
  "Vuforia::Rectangle::getLeftTopX() const", referenced from:
      _imageTargetGetVirtualButtons in libVuforiaWrapper.a(ImageTarget.o)
  "Vuforia::ImageTargetResult::getClassType()", referenced from:
      _updateQCAR in libVuforiaWrapper.a(Tracker.o)
  "Vuforia::TrackerManager::getInstance()", referenced from:
      _trackerStart in libVuforiaWrapper.a(Tracker.o)
      _trackerStop in libVuforiaWrapper.a(Tracker.o)
      _checkPredictiveAndUpdateStateHolderMode in libVuforiaWrapper.a(Tracker.o)
      _imageTargetBuilderStartScan in libVuforiaWrapper.a(ImageTargetBuilder.o)
      _imageTargetBuilderBuild in libVuforiaWrapper.a(ImageTargetBuilder.o)
      _imageTargetBuilderStopScan in libVuforiaWrapper.a(ImageTargetBuilder.o)
      _imageTargetBuilderGetFrameQuality in libVuforiaWrapper.a(ImageTargetBuilder.o)
      ...
  "Vuforia::setRotation(int)", referenced from:
      _setSurfaceOrientationiOS in libVuforiaWrapper.a(VuforiaUnityPlayer.o)
  "Vuforia::GLTextureData::GLTextureData(int)", referenced from:
      _rendererSetVideoBackgroundTextureID in libVuforiaWrapper.a(Renderer.o)
  "Vuforia::setHint(unsigned int, int)", referenced from:
      _qcarSetHint in libVuforiaWrapper.a(QCAR.o)
      _setApplicationEnvironment in libVuforiaWrapper.a(QCARWrapper.o)
  "Vuforia::State::operator=(Vuforia::State const&)", referenced from:
      StateHolder::updateCurrentState() in libVuforiaWrapper.a(StateHolder.o)
      StateHolder::getCurrentState() in libVuforiaWrapper.a(StateHolder.o)
  "Vuforia::Tool::convertPose2GLMatrix(Vuforia::Matrix34F const&)", referenced from:
      _updateQCAR in libVuforiaWrapper.a(Tracker.o)
      _guideViewGetPose in libVuforiaWrapper.a(GuideView.o)
      _renderingPrimitives_GetEyeDisplayAdjustmentMatrix in libVuforiaWrapper.a(RenderingPrimitives.o)
      _smartTerrain_hitTest in libVuforiaWrapper.a(SmartTerrain.o)
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

@JanOwiesniak
Copy link
Author

Update: I tried adding -libVuforia.a -libVuforiaUnityPlayer.a as well as -framework Vuforia and -libVuforiaWrapper.a to the OTHER_LDFLAGS without any success.

@JanOwiesniak
Copy link
Author

@f111fei would you mind to include your VuforiaDemo as well :) ?

@JanOwiesniak
Copy link
Author

Vuforia dependencies are included in UnityExport but are not linked at build time (i guess)

screen shot 2018-11-07 at 16 51 13

@JanOwiesniak
Copy link
Author

I downloaded the Vuforia iOS SDK and integrated it into my current ReactNative XCode Project.

screen shot 2018-11-07 at 17 55 35

I added -framework Vuforia to OTHER_LDFLAGS (not sure if this is really needed) but it compiles now.

The error went from compile time to runtime :)

screen shot 2018-11-07 at 17 59 26

As always: Any help highly appreciated :)

@JanOwiesniak JanOwiesniak changed the title [iOS] Try to add Vuforia to react-native-unity-demo [iOS] Add Vuforia to react-native-unity-demo Nov 7, 2018
@JanOwiesniak
Copy link
Author

JanOwiesniak commented Nov 8, 2018

I somehow fixed it.

What if have done:

  1. Start with a fresh empty Unity Project (named it rnunitydemo)
  2. Activated Vuforia Support
  3. Added Vuforia License Key
  4. Set Auto Graphics API to first: OpenGLES2, second: Metal
  5. Added Editor scripts
  6. Exported it to UnityExport via new Build menu
  7. Opened Xcode
  8. Added to Info.plist
  <key>NSCameraUsageDescription</key>
  <string>AR</string>
  1. Manually integrated Vuforia as mentioned
  2. Clean Build Folder
  3. rm -rf ~/Library/Developer/Xcode/DerivedData
  4. Build

@JanOwiesniak JanOwiesniak changed the title [iOS] Add Vuforia to react-native-unity-demo [iOS] How to integrate Vuforia Nov 8, 2018
@alvincrisuy
Copy link

This is very helpful. Thank you for posting your solution even though no one replies.

@speigg
Copy link

speigg commented Feb 2, 2019

@JanOwiesniak Awesome, this is the command that fixed my build (completely unrelated project other than the fact I am using Vuforia):

rm -rf ~/Library/Developer/Xcode/DerivedData

@ghus86
Copy link

ghus86 commented Mar 14, 2019

@JanOwiesniak did you have problems with the tracking ?
I was able to run but the marker are not being recognized, I am using the cloud system

I get to errors not sure why I get the first I am not using local datasets =/

Error: Target Finder could not be created for dataset.
Could not create target finder.

CloudRecoBehaviour: TargetFinder initialization failed!

Thanks in advance for any tip

@JanOwiesniak
Copy link
Author

JanOwiesniak commented Mar 15, 2019

@ghus86 i'm using device and cloud recognition simultaneously and both are working as expected.

Are these errors happening in the Unity Editor as well or only when you integrate your Unity application into your React Native App?


This is how i would tackle this issue

If this is working

  • Download Vuforia Sample Scenes from Unity Asset Store
  • Run Cloud Example Scene in the Unity Editor

If this is working

If this is working

  • Ensure Cloud Example Scene is working on a physical device

If this is working

  • Adjust the Cloud Example Scene for your use case
  • Add your license key (otherwise you won't be able to talk to your cloud database)

@ghus86
Copy link

ghus86 commented Mar 15, 2019

@JanOwiesniak Thanks for the feedback.

The app in unity is fine
When I try to integrate the camera feed works, it doesnt crash but it doesn't recognize the markers =/

@JanOwiesniak
Copy link
Author

XCode's debug output is helpful too, just grab for "Vuforia". Maybe something silently crashes during the boot process?

@ghus86
Copy link

ghus86 commented Mar 15, 2019

yes I have seen two errors in xcode
but not sure how to fix them

CameraSettings:OnVuforiaStarted()
System.Reflection.MonoMethod:InternalInvoke(Object, Object[], Exception&)
System.Reflection.MonoMethod:Invoke(Object, BindingFlags, Binder, Object[], CultureInfo)
System.Reflection.MethodBase:Invoke(Object, Object[])
System.Delegate:DynamicInvokeImpl(Object[])
System.MulticastDelegate:DynamicInvokeImpl(Object[])
System.Delegate:DynamicInvoke(Object[])
Vuforia.DelegateHelper:InvokeDelegate(Delegate, Object[])
Vuforia.DelegateHelper:InvokeWithExceptionHandling(Action)
Vuforia.VuforiaARController:StartAfterInitializationCompleted()
Vuforia.VuforiaARController:UpdateState(Boolean, Boolean)
Vuforia.DigitalEyewearARController:Update()
System.Reflection.MonoMethod:InternalInvoke(Object, Object[], Exception&)
System.Reflection.MonoMethod:Invoke(Object, BindingFlags, Binder, Object[], CultureInfo)
System.Reflection.MethodBase:Invoke(Object, Object[])
System.Delegate:DynamicInvokeImpl(Object[])
System.MulticastDelegate:DynamicInvokeImpl(Object[])
System.Delegate:DynamicInvoke(Object[])
Vuforia.DelegateHelper:InvokeDelegate(Delegate, Object[])
Vuforia.DelegateHelper:InvokeWithExceptionHandling(Action)
Vuforia.VuforiaBehaviour:Update()

(Filename: /Users/builduser/buildslave/unity/build/Runtime/Export/Debug.bindings.h Line: 43)

Error: Target Finder could not be created for dataset.
Could not create target finder.

UnityEngine.DebugLogHandler:Internal_Log(LogType, String, Object)
UnityEngine.DebugLogHandler:LogFormat(LogType, Object, String, Object[])
UnityEngine.Logger:Log(LogType, Object)
UnityEngine.Debug:LogError(Object)
Vuforia.ObjectTracker:GetTargetFinder()
Vuforia.CloudRecoBehaviour:Initialize()
Vuforia.ObjectRecoBehaviour:OnVuforiaStarted()
System.Reflection.MonoMethod:InternalInvoke(Object, Object[], Exception&)
System.Reflection.MonoMethod:Invoke(Object, BindingFlags, Binder, Object[], CultureInfo)
System.Reflection.MethodBase:Invoke(Object, Object[])
System.Delegate:DynamicInvokeImpl(Object[])
System.MulticastDelegate:DynamicInvokeImpl(Object[])
System.Delegate:DynamicInvoke(Object[])
Vuforia.DelegateHelper:InvokeDelegate(Delegate, Object[])
Vuforia.DelegateHelper:InvokeWithExceptionHandling(Action)
Vuforia.VuforiaARController:StartAfterInitializationCompleted()
Vuforia.VuforiaARController:UpdateState(Boolean, Boolean)
Vuforia.DigitalEyewearARController:Update()
System.Reflection.MonoMethod:InternalInvoke(Object, Object[], Exception&)
System.Reflection.MonoMethod:Invoke(Object, BindingFlags, Binder, Object[], CultureInfo)
System.Reflection.MethodBase:Invoke(Object, Object[])
System.Delegate:DynamicInvokeImpl(Object[])
System.MulticastDelegate:DynamicInvokeImpl(Object[])
System.Delegate:DynamicInvoke(Object[])
Vuforia.DelegateHelper:InvokeDelegate(Delegate, Object[])
Vuforia.DelegateHelper:InvokeWithExceptionHandling(Action)
Vuforia.VuforiaBehaviour:Update()

(Filename: /Users/builduser/buildslave/unity/build/Runtime/Export/Debug.bindings.h Line: 43)

CloudRecoBehaviour: TargetFinder initialization failed!

@JanOwiesniak
Copy link
Author

And these errors do not occur in the Unity Editor? If this is the case, it's hard to tell. If i was you, i would follow these steps and see where i get stuck.

@ghus86
Copy link

ghus86 commented Mar 15, 2019

In the editor is working as expected and the export of the same projects works in android.

I am not using UnityMessageManager support do think that can cause an issue ?

@JanOwiesniak
Copy link
Author

JanOwiesniak commented Mar 15, 2019

As far as i understand UnityMessageManager, this component is only used to build a bridge between React Native and Unity to "send" messages between those two worlds. So if you do not need to send any messages from one to another, you might not need it.

@ntsd
Copy link

ntsd commented Jul 16, 2019

@JanOwiesniak

Hi, Jan

Can you send me the Vuforia SDK version that works?

Because of the version is unavailable on the official site.

and which unity version you're using?

Thanks a lot

@JanOwiesniak
Copy link
Author

@ntsd we are currently on Vuforia 8.3.8, you can download the SDK here:

https://developer.vuforia.com/downloads/sdk

@ntsd
Copy link

ntsd commented Jul 17, 2019

@ntsd we are currently on Vuforia 8.3.8, you can download the SDK here:

https://developer.vuforia.com/downloads/sdk

How are you using React Native Unity View with a new Unity Version?

I try that before but can't build with Xcode.

Can you tell me all of your version? so I can follow.

I'm currently using.

Unity 2018.4
React Native Unity View 1.3.3
Vuforia 8.3.8
Xcode 10.2.1

Thanks again

@arfa123
Copy link

arfa123 commented Jun 10, 2020

@ntsd we are currently on Vuforia 8.3.8, you can download the SDK here:
https://developer.vuforia.com/downloads/sdk

How are you using React Native Unity View with a new Unity Version?

I try that before but can't build with Xcode.

Can you tell me all of your version? so I can follow.

I'm currently using.

Unity 2018.4
React Native Unity View 1.3.3
Vuforia 8.3.8
Xcode 10.2.1

Thanks again

How do you installed Vuforia? If you have downloaded and installed it through Unity editor then you may find the Vuforia.framework there:

/Applications/Unity/PlaybackEngines/VuforiaSupport/iOS

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants