

現在Xamarin.iOSでARアプリの開発を行なっているのですが、ARを実現させるSDKとして使い慣れたVuforiaを使用したいです。

ですがVuforia公式ではXamarin向けのSDKを配布していません。  
解決案としてiOS向けに配布されているSDK(`.framework`ファイル)を元にC#向けのライブラリを作成するという手があります。

[こちらのサイト](https://docs.microsoft.com/ja-jp/xamarin/cross-
platform/macios/binding/?context=xamarin/ios)を参考にバインディングライブラリの作成を進めていたのですが、Objective
Sharpieで定義ファイルを生成する部分で詰まってしまいました。  
以下エラー文です。

[code]

    ./Vuforia.framework/Headers/System.h:62:1: error: unknown type name 'namespace'
    namespace Vuforia
    ^
    ./Vuforia.framework/Headers/System.h:62:18: error: expected ';' after top level declarator
    namespace Vuforia
                     ^
                     ;
    While building module 'Vuforia' imported from /private/var/folders/t6/26jfg5ps7wq1n3hk59hdpglm0000gn/T/com.xamarin.ObjectiveSharpie/e1ca9a02466b4b47af065e73c4c977e0.h:1:
    In file included from <module-includes>:1:
    ./Vuforia.framework/Headers/Vuforia.h:22:1: error: unknown type name 'namespace'
    namespace Vuforia
    ^
    ./Vuforia.framework/Headers/Vuforia.h:22:18: error: expected ';' after top level declarator
    namespace Vuforia
                     ^
                     ;
    While building module 'Vuforia' imported from /private/var/folders/t6/26jfg5ps7wq1n3hk59hdpglm0000gn/T/com.xamarin.ObjectiveSharpie/e1ca9a02466b4b47af065e73c4c977e0.h:1:
    <module-includes>:1:1: warning: umbrella header for module 'Vuforia' does not include header 'Type.h'
          [-Wincomplete-umbrella]
    #import "Headers/Vuforia.h"
    ^
    <module-includes>:1:1: warning: umbrella header for module 'Vuforia' does not include header 'MetalRenderer.h'
          [-Wincomplete-umbrella]
    <module-includes>:1:1: warning: umbrella header for module 'Vuforia' does not include header 'VuMarkTarget.h'
          [-Wincomplete-umbrella]
    <module-includes>:1:1: warning: umbrella header for module 'Vuforia' does not include header 'GLRenderer.h'
          [-Wincomplete-umbrella]
    <module-includes>:1:1: warning: umbrella header for module 'Vuforia' does not include header 'TrackableSource.h'
          [-Wincomplete-umbrella]
    <module-includes>:1:1: warning: umbrella header for module 'Vuforia' does not include header
          'ObjectTargetRawBuilder.h' [-Wincomplete-umbrella]
    <module-includes>:1:1: warning: umbrella header for module 'Vuforia' does not include header 'Obb3D.h'
          [-Wincomplete-umbrella]
    <module-includes>:1:1: warning: umbrella header for module 'Vuforia' does not include header 'Vuforia_iOS.h'
          [-Wincomplete-umbrella]
    <module-includes>:1:1: warning: umbrella header for module 'Vuforia' does not include header
          'VideoBackgroundTextureInfo.h' [-Wincomplete-umbrella]
    <module-includes>:1:1: warning: umbrella header for module 'Vuforia' does not include header 'CylinderTargetResult.h'
          [-Wincomplete-umbrella]
    <module-includes>:1:1: warning: umbrella header for module 'Vuforia' does not include header 'Device.h'
          [-Wincomplete-umbrella]
    <module-includes>:1:1: warning: umbrella header for module 'Vuforia' does not include header
          'CustomViewerParameters.h' [-Wincomplete-umbrella]
    <module-includes>:1:1: warning: umbrella header for module 'Vuforia' does not include header 'Obb2D.h'
          [-Wincomplete-umbrella]
    <module-includes>:1:1: warning: umbrella header for module 'Vuforia' does not include header 'ModelTarget.h'
          [-Wincomplete-umbrella]
    <module-includes>:1:1: warning: umbrella header for module 'Vuforia' does not include header 'Anchor.h'
          [-Wincomplete-umbrella]
    <module-includes>:1:1: warning: umbrella header for module 'Vuforia' does not include header 'InstanceId.h'
          [-Wincomplete-umbrella]
    <module-includes>:1:1: warning: umbrella header for module 'Vuforia' does not include header 'VideoMode.h'
          [-Wincomplete-umbrella]
    <module-includes>:1:1: warning: umbrella header for module 'Vuforia' does not include header 'TrackableResult.h'
          [-Wincomplete-umbrella]
    <module-includes>:1:1: warning: umbrella header for module 'Vuforia' does not include header
          'RotationalDeviceTracker.h' [-Wincomplete-umbrella]
    <module-includes>:1:1: warning: umbrella header for module 'Vuforia' does not include header 'ObjectTargetResult.h'
          [-Wincomplete-umbrella]
    <module-includes>:1:1: warning: umbrella header for module 'Vuforia' does not include header 'TargetSearchResult.h'
          [-Wincomplete-umbrella]
    <module-includes>:1:1: warning: umbrella header for module 'Vuforia' does not include header 'MultiTarget.h'
          [-Wincomplete-umbrella]
    <module-includes>:1:1: warning: umbrella header for module 'Vuforia' does not include header 'Frame.h'
          [-Wincomplete-umbrella]
    <module-includes>:1:1: warning: umbrella header for module 'Vuforia' does not include header 'Renderer.h'
          [-Wincomplete-umbrella]
    <module-includes>:1:1: warning: umbrella header for module 'Vuforia' does not include header 'ModelRecoSearchResult.h'
          [-Wincomplete-umbrella]
    <module-includes>:1:1: warning: umbrella header for module 'Vuforia' does not include header 'Box3D.h'
          [-Wincomplete-umbrella]
    <module-includes>:1:1: warning: umbrella header for module 'Vuforia' does not include header 'Vectors.h'
          [-Wincomplete-umbrella]
    <module-includes>:1:1: warning: umbrella header for module 'Vuforia' does not include header 'Mesh.h'
          [-Wincomplete-umbrella]
    <module-includes>:1:1: warning: umbrella header for module 'Vuforia' does not include header 'View.h'
          [-Wincomplete-umbrella]
    <module-includes>:1:1: warning: umbrella header for module 'Vuforia' does not include header 'VuMarkTargetResult.h'
          [-Wincomplete-umbrella]
    <module-includes>:1:1: warning: umbrella header for module 'Vuforia' does not include header 'Area.h'
          [-Wincomplete-umbrella]
    <module-includes>:1:1: warning: umbrella header for module 'Vuforia' does not include header 'GuideView.h'
          [-Wincomplete-umbrella]
    <module-includes>:1:1: warning: umbrella header for module 'Vuforia' does not include header 'ObjectTracker.h'
          [-Wincomplete-umbrella]
    <module-includes>:1:1: warning: umbrella header for module 'Vuforia' does not include header
          'EyewearCalibrationProfileManager.h' [-Wincomplete-umbrella]
    <module-includes>:1:1: warning: umbrella header for module 'Vuforia' does not include header 'DeviceTrackableResult.h'
          [-Wincomplete-umbrella]
    <module-includes>:1:1: warning: umbrella header for module 'Vuforia' does not include header 'VirtualButtonResult.h'
          [-Wincomplete-umbrella]
    <module-includes>:1:1: warning: umbrella header for module 'Vuforia' does not include header 'Illumination.h'
          [-Wincomplete-umbrella]
    <module-includes>:1:1: warning: umbrella header for module 'Vuforia' does not include header 'Recorder.h'
          [-Wincomplete-umbrella]
    <module-includes>:1:1: warning: umbrella header for module 'Vuforia' does not include header 'DataSet.h'
          [-Wincomplete-umbrella]
    <module-includes>:1:1: warning: umbrella header for module 'Vuforia' does not include header
          'EyewearCalibrationReading.h' [-Wincomplete-umbrella]
    <module-includes>:1:1: warning: umbrella header for module 'Vuforia' does not include header 'ModelTargetResult.h'
          [-Wincomplete-umbrella]
    <module-includes>:1:1: warning: umbrella header for module 'Vuforia' does not include header 'List.h'
          [-Wincomplete-umbrella]
    <module-includes>:1:1: warning: umbrella header for module 'Vuforia' does not include header 'EyeID.h'
          [-Wincomplete-umbrella]
    <module-includes>:1:1: warning: umbrella header for module 'Vuforia' does not include header 'SmartTerrain.h'
          [-Wincomplete-umbrella]
    <module-includes>:1:1: warning: umbrella header for module 'Vuforia' does not include header 'EyewearUserCalibrator.h'
          [-Wincomplete-umbrella]
    <module-includes>:1:1: warning: umbrella header for module 'Vuforia' does not include header 'NonCopyable.h'
          [-Wincomplete-umbrella]
    <module-includes>:1:1: warning: umbrella header for module 'Vuforia' does not include header 'HeadTransformModel.h'
          [-Wincomplete-umbrella]
    <module-includes>:1:1: warning: umbrella header for module 'Vuforia' does not include header 'ImageTarget.h'
          [-Wincomplete-umbrella]
    <module-includes>:1:1: warning: umbrella header for module 'Vuforia' does not include header
          'PositionalDeviceTracker.h' [-Wincomplete-umbrella]
    <module-includes>:1:1: warning: umbrella header for module 'Vuforia' does not include header 'ObjectTargetRawResult.h'
          [-Wincomplete-umbrella]
    <module-includes>:1:1: warning: umbrella header for module 'Vuforia' does not include header 'VuMarkTemplate.h'
          [-Wincomplete-umbrella]
    <module-includes>:1:1: warning: umbrella header for module 'Vuforia' does not include header 'TrackerManager.h'
          [-Wincomplete-umbrella]
    <module-includes>:1:1: warning: umbrella header for module 'Vuforia' does not include header 'VirtualButton.h'
          [-Wincomplete-umbrella]
    <module-includes>:1:1: warning: umbrella header for module 'Vuforia' does not include header 'Trackable.h'
          [-Wincomplete-umbrella]
    <module-includes>:1:1: warning: umbrella header for module 'Vuforia' does not include header 'UpdateCallback.h'
          [-Wincomplete-umbrella]
    <module-includes>:1:1: warning: umbrella header for module 'Vuforia' does not include header 'EyewearDevice.h'
          [-Wincomplete-umbrella]
    <module-includes>:1:1: warning: umbrella header for module 'Vuforia' does not include header 'UIGLViewProtocol.h'
          [-Wincomplete-umbrella]
    <module-includes>:1:1: warning: umbrella header for module 'Vuforia' does not include header 'ViewerParametersList.h'
          [-Wincomplete-umbrella]
    <module-includes>:1:1: warning: umbrella header for module 'Vuforia' does not include header 'MultiTargetResult.h'
          [-Wincomplete-umbrella]
    <module-includes>:1:1: warning: umbrella header for module 'Vuforia' does not include header 'Tool.h'
          [-Wincomplete-umbrella]
    <module-includes>:1:1: warning: umbrella header for module 'Vuforia' does not include header 'ObjectTargetRaw.h'
          [-Wincomplete-umbrella]
    <module-includes>:1:1: warning: umbrella header for module 'Vuforia' does not include header 'CloudRecoSearchResult.h'
          [-Wincomplete-umbrella]
    <module-includes>:1:1: warning: umbrella header for module 'Vuforia' does not include header
          'StandardLibraryDefinitions.h' [-Wincomplete-umbrella]
    <module-includes>:1:1: warning: umbrella header for module 'Vuforia' does not include header
          'HandheldTransformModel.h' [-Wincomplete-umbrella]
    <module-includes>:1:1: warning: umbrella header for module 'Vuforia' does not include header 'TargetFinder.h'
          [-Wincomplete-umbrella]
    <module-includes>:1:1: warning: umbrella header for module 'Vuforia' does not include header 'Matrices.h'
          [-Wincomplete-umbrella]
    <module-includes>:1:1: warning: umbrella header for module 'Vuforia' does not include header 'Rectangle.h'
          [-Wincomplete-umbrella]
    <module-includes>:1:1: warning: umbrella header for module 'Vuforia' does not include header 'CylinderTarget.h'
          [-Wincomplete-umbrella]
    <module-includes>:1:1: warning: umbrella header for module 'Vuforia' does not include header 'CameraField.h'
          [-Wincomplete-umbrella]
    <module-includes>:1:1: warning: umbrella header for module 'Vuforia' does not include header 'DeviceTracker.h'
          [-Wincomplete-umbrella]
    <module-includes>:1:1: warning: umbrella header for module 'Vuforia' does not include header 'CameraDevice.h'
          [-Wincomplete-umbrella]
    <module-includes>:1:1: warning: umbrella header for module 'Vuforia' does not include header 'HitTestResult.h'
          [-Wincomplete-umbrella]
    <module-includes>:1:1: warning: umbrella header for module 'Vuforia' does not include header 'TransformModel.h'
          [-Wincomplete-umbrella]
    <module-includes>:1:1: warning: umbrella header for module 'Vuforia' does not include header 'DeviceTrackable.h'
          [-Wincomplete-umbrella]
    <module-includes>:1:1: warning: umbrella header for module 'Vuforia' does not include header 'State.h'
          [-Wincomplete-umbrella]
    <module-includes>:1:1: warning: umbrella header for module 'Vuforia' does not include header 'Tracker.h'
          [-Wincomplete-umbrella]
    <module-includes>:1:1: warning: umbrella header for module 'Vuforia' does not include header 'VideoBackgroundConfig.h'
          [-Wincomplete-umbrella]
    <module-includes>:1:1: warning: umbrella header for module 'Vuforia' does not include header 'CameraCalibration.h'
          [-Wincomplete-umbrella]
    <module-includes>:1:1: warning: umbrella header for module 'Vuforia' does not include header 'AnchorResult.h'
          [-Wincomplete-umbrella]
    <module-includes>:1:1: warning: umbrella header for module 'Vuforia' does not include header 'ViewerParameters.h'
          [-Wincomplete-umbrella]
    <module-includes>:1:1: warning: umbrella header for module 'Vuforia' does not include header 'ImageTargetResult.h'
          [-Wincomplete-umbrella]
    <module-includes>:1:1: warning: umbrella header for module 'Vuforia' does not include header 'ViewList.h'
          [-Wincomplete-umbrella]
    <module-includes>:1:1: warning: umbrella header for module 'Vuforia' does not include header 'Image.h'
          [-Wincomplete-umbrella]
    <module-includes>:1:1: warning: umbrella header for module 'Vuforia' does not include header 'RenderingPrimitives.h'
          [-Wincomplete-umbrella]
    <module-includes>:1:1: warning: umbrella header for module 'Vuforia' does not include header 'StateUpdater.h'
          [-Wincomplete-umbrella]
    <module-includes>:1:1: warning: umbrella header for module 'Vuforia' does not include header 'ImageTargetBuilder.h'
          [-Wincomplete-umbrella]
    <module-includes>:1:1: warning: umbrella header for module 'Vuforia' does not include header 'ObjectTarget.h'
          [-Wincomplete-umbrella]
    /private/var/folders/t6/26jfg5ps7wq1n3hk59hdpglm0000gn/T/com.xamarin.ObjectiveSharpie/e1ca9a02466b4b47af065e73c4c977e0.h:1:9: fatal error:
          could not build module 'Vuforia'
    @import Vuforia;
     ~~~~~~~^~~~~~~
    
    Binding...
    87 warnings and 5 errors generated.
    Error while processing /private/var/folders/t6/26jfg5ps7wq1n3hk59hdpglm0000gn/T/com.xamarin.ObjectiveSharpie/e1ca9a02466b4b47af065e73c4c977e0.h.
    
    Done. Exiting with error code 1.
    error: Clang failed to parse input and exited with code 1
    
[/code]

このエラーを回避する方法を知りたいです。

また、バインディングライブラリを作成するという方法以外でもXamarin.iOSでVuforiaを使用する方法があるなら教えていただけると嬉しいです。

追記(2019/04/21):下記が実行したコマンドです。

[code]

    ~/Documents/vuforia-sdk-ios-8-1-7/build
    % sharpie xcode -sdks
    sdk: appletvos12.1  arch: arm64
    sdk: iphoneos12.2   arch: arm64  armv7
    sdk: iphoneos12.1   arch: arm64  armv7
    sdk: macosx10.14    arch: x86_64 i386
    sdk: watchos5.2     arch: armv7k
    
    ~/Documents/vuforia-sdk-ios-8-1-7/build
    % sharpie bind -f Vuforia.framework
    
[/code]


CC BY-SA 4.0
2019-04-15T01:49:12.543
54163
2019-04-21T11:53:47.120
2019-04-21T11:53:47.120
31396
31396
question
c#
Xamarin.iOSでVuforiaを使う方法を知りたい