How to use samples/Error on build


Hey everyone,
I’m totally new to the framework and I try to use the samples present on github, but I could not be able to run it. In fact, it seems (according to the different thread present on that forum) that I need to build the SDK first. I tried to do that by following the installation procedure.(Of course first of all I cloned the repository) and then when I execute the script I got that result.

quentin$ ./ 
-- Checking if your environment will build the ARSDK for different platforms --

[[ Should work, Won't work, Not tested, may work ]]

Generic             : OK !
iOS                 : OK !
Unix                : OK !
/bin/sh: /tools/android: No such file or directory
Android             : Missing binary `rpl`
                  Missing binary `arm-linux-androideabi-gcc`
                  Missing binary `mipsel-linux-android-gcc`
                  Missing binary `i686-linux-android-gcc`
                  Missing environment variable `ANDROID_NDK_PATH`
                  Missing environment variable `ANDROID_SDK_PATH`
                  Missing Android SDK for API 19 (Android 4.4.2), please install it.

For information I try to build the iOS framework. So It seems OK to me

After that I tried to build the SDK by using the command : ./ -t iOS

/Users/quentin/Desktop/TestBuild/ARSDKBuildUtils/../libARSAL/Build/../Sources/ARSAL_CentralManager.m:156:23: error: 
  no known instance method for selector
        [delegate centralManager:central didRetrievePeripherals:peri...
/Users/quentin/Desktop/TestBuild/ARSDKBuildUtils/../libARSAL/Build/../Sources/ARSAL_CentralManager.m:171:23: error: 
  no known instance method for selector
 ...[delegate centralManager:central didRetrieveConnectedPeripherals:periphe...
2 errors generated.

I cannot understand what is the problem.

After that I tried to use the β€œprecompiled” SDK I found on the documentation for the β€œBebop” drone. So I followed the tutorial present on the official documentation to include the .framework files inside the sample project. But I have the following error when I try to build the solution:

ld: framework not found uthash
clang: error: linker command failed with exit code 1 (use -v to see invocation)

I tried to change the Framework search path inside Xcode with β€œ$(PROJECT_DIR)” but I got the same error.

I’m a little bit stuck at this point.

Thank You very much in advance for your help :smile:



I should investigate a little more for your first problem.

For the second one, are you sure that uthash.framework is not in the project but still in the project’s folder ?



First of all, thank you for your quick answer. :smile:

Here is my project tree view :
Uploading Capture d’écran 2015-10-03 aΜ€ 10.29.55.png…

And here is my folder view
Uploading Capture d’écran 2015-10-03 aΜ€ 10.43.41.png…

My Framework Search Path is set to iOS/RSPilotingNewAPI/RSPilotingNewAPI

I quite don’t understand what could be the problem…



It seems that I found the problem but I really don’t know how to deal with it. When I looked on my terminal to the tree view of my project folder I got this result

└── RSPilotingNewAPI
     β”œβ”€β”€ RSPilotingNewAPI
    β”‚   β”œβ”€β”€ AppDelegate.h
    β”‚   β”œβ”€β”€ AppDelegate.m
    β”‚   β”œβ”€β”€ Base.lproj
    β”‚   β”‚   β”œβ”€β”€ LaunchScreen.xib
    β”‚   β”‚   └── Main.storyboard
    β”‚   β”œβ”€β”€ Images.xcassets
    β”‚   β”‚   └── AppIcon.appiconset
    β”‚   β”‚       └── Contents.json
    β”‚   β”œβ”€β”€ Info.plist
    β”‚   β”œβ”€β”€ PilotingViewController.h
    β”‚   β”œβ”€β”€ PilotingViewController.m
    β”‚   β”œβ”€β”€ ViewController.h
    β”‚   β”œβ”€β”€ ViewController.m
    β”‚   └── main.m
    β”œβ”€β”€ RSPilotingNewAPI.xcodeproj
    β”‚   β”œβ”€β”€ project.pbxproj
    β”‚   β”œβ”€β”€ project.xcworkspace
    β”‚   β”‚   β”œβ”€β”€ contents.xcworkspacedata
    β”‚   β”‚   └── xcuserdata
    β”‚   β”‚       └── quentin.xcuserdatad
    β”‚   β”‚           └── UserInterfaceState.xcuserstate
    β”‚   └── xcuserdata
    β”‚       └── quentin.xcuserdatad
    β”‚           └── xcschemes
    β”‚               β”œβ”€β”€ RSPilotingNewAPI\ 2.xcscheme
    β”‚               β”œβ”€β”€ RSPilotingNewAPI.xcscheme
    β”‚               └── xcschememanagement.plist
    β”œβ”€β”€ json.framework
    β”‚   β”œβ”€β”€ Headers
    β”‚   β”‚   β”œβ”€β”€ arraylist.h
    β”‚   β”‚   β”œβ”€β”€ bits.h
    β”‚   β”‚   β”œβ”€β”€ debug.h
    β”‚   β”‚   β”œβ”€β”€ json.h
    β”‚   β”‚   β”œβ”€β”€ json_object.h
    β”‚   β”‚   β”œβ”€β”€ json_object_private.h
    β”‚   β”‚   β”œβ”€β”€ json_tokener.h
    β”‚   β”‚   β”œβ”€β”€ json_util.h
    β”‚   β”‚   β”œβ”€β”€ linkhash.h
    β”‚   β”‚   └── printbuf.h
    β”‚   └── json
    β”œβ”€β”€ libARCommands.framework
    β”‚   β”œβ”€β”€ Headers
    β”‚   β”‚   β”œβ”€β”€ ARCOMMANDS_Decoder.h
    β”‚   β”‚   β”œβ”€β”€ ARCOMMANDS_Filter.h
    β”‚   β”‚   β”œβ”€β”€ ARCOMMANDS_Generator.h
    β”‚   β”‚   β”œβ”€β”€ ARCOMMANDS_Ids.h
    β”‚   β”‚   β”œβ”€β”€ ARCOMMANDS_Types.h
    β”‚   β”‚   β”œβ”€β”€ ARCOMMANDS_Version.h
    β”‚   β”‚   └── ARCommands.h
    β”‚   └── libARCommands
    β”œβ”€β”€ libARController.framework
    β”‚   β”œβ”€β”€ Headers
    β”‚   β”‚   β”œβ”€β”€ ARCONTROLLER_DICTIONARY_Key.h
    β”‚   β”‚   β”œβ”€β”€ ARCONTROLLER_Device.h
    β”‚   β”‚   β”œβ”€β”€ ARCONTROLLER_Dictionary.h
    β”‚   β”‚   β”œβ”€β”€ ARCONTROLLER_Error.h
    β”‚   β”‚   β”œβ”€β”€ ARCONTROLLER_Feature.h
    β”‚   β”‚   β”œβ”€β”€ ARCONTROLLER_Frame.h
    β”‚   β”‚   β”œβ”€β”€ ARCONTROLLER_Network.h
    β”‚   β”‚   β”œβ”€β”€ ARCONTROLLER_Stream.h
    β”‚   β”‚   β”œβ”€β”€ ARCONTROLLER_StreamPool.h
    β”‚   β”‚   β”œβ”€β”€ ARCONTROLLER_StreamQueue.h
    β”‚   β”‚   └── ARController.h
    β”‚   └── libARController
    β”œβ”€β”€ libARDiscovery.framework
    β”‚   β”œβ”€β”€ Headers
    β”‚   β”‚   β”œβ”€β”€ ARDISCOVERY_BonjourDiscovery.h
    β”‚   β”‚   β”œβ”€β”€ ARDISCOVERY_Connection.h
    β”‚   β”‚   β”œβ”€β”€ ARDISCOVERY_Device.h
    β”‚   β”‚   β”œβ”€β”€ ARDISCOVERY_Discovery.h
    β”‚   β”‚   β”œβ”€β”€ ARDISCOVERY_Error.h
    β”‚   β”‚   β”œβ”€β”€ ARDISCOVERY_NetworkConfiguration.h
    β”‚   β”‚   └── ARDiscovery.h
    β”‚   └── libARDiscovery
    β”œβ”€β”€ libARNetwork.framework
    β”‚   β”œβ”€β”€ Headers
    β”‚   β”‚   β”œβ”€β”€ ARNETWORK_Error.h
    β”‚   β”‚   β”œβ”€β”€ ARNETWORK_IOBufferParam.h
    β”‚   β”‚   β”œβ”€β”€ ARNETWORK_Manager.h
    β”‚   β”‚   └── ARNetwork.h
    β”‚   └── libARNetwork
    β”œβ”€β”€ libARNetworkAL.framework
    β”‚   β”œβ”€β”€ Headers
    β”‚   β”‚   β”œβ”€β”€ ARNETWORKAL_Error.h
    β”‚   β”‚   β”œβ”€β”€ ARNETWORKAL_Frame.h
    β”‚   β”‚   β”œβ”€β”€ ARNETWORKAL_Manager.h
    β”‚   β”‚   └── ARNetworkAL.h
    β”‚   └── libARNetworkAL
    β”œβ”€β”€ libARSAL.framework
    β”‚   β”œβ”€β”€ Headers
    β”‚   β”‚   β”œβ”€β”€ ARSAL.h
    β”‚   β”‚   β”œβ”€β”€ ARSAL_BLEManager.h
    β”‚   β”‚   β”œβ”€β”€ ARSAL_CentralManager.h
    β”‚   β”‚   β”œβ”€β”€ ARSAL_Endianness.h
    β”‚   β”‚   β”œβ”€β”€ ARSAL_Error.h
    β”‚   β”‚   β”œβ”€β”€ ARSAL_Ftw.h
    β”‚   β”‚   β”œβ”€β”€ ARSAL_MD5_Manager.h
    β”‚   β”‚   β”œβ”€β”€ ARSAL_Mutex.h
    β”‚   β”‚   β”œβ”€β”€ ARSAL_Print.h
    β”‚   β”‚   β”œβ”€β”€ ARSAL_Sem.h
    β”‚   β”‚   β”œβ”€β”€ ARSAL_Singleton.h
    β”‚   β”‚   β”œβ”€β”€ ARSAL_Socket.h
    β”‚   β”‚   β”œβ”€β”€ ARSAL_Thread.h
    β”‚   β”‚   └── ARSAL_Time.h
    β”‚   └── libARSAL
    β”œβ”€β”€ libARStream.framework
     β”‚   β”œβ”€β”€ Headers
     β”‚   β”‚   β”œβ”€β”€ ARSTREAM_Error.h
     β”‚   β”‚   β”œβ”€β”€ ARSTREAM_Reader.h
     β”‚   β”‚   β”œβ”€β”€ ARSTREAM_Sender.h
     β”‚   β”‚   └── ARStream.h
     β”‚   └── libARStream
     └── uthash.framework
         └── Headers
             β”œβ”€β”€ utarray.h
             β”œβ”€β”€ uthash.h
             β”œβ”€β”€ utlist.h
             └── utstring.h  

It seems that it missing a file on the uthash.framework ! What could I do to resolve this ?

Thank you :smile:



What if you add the framework to your project ?



Hi again,

In fact, you should remove all the existing frameworks from your project.
Then drag and drop the precompiled frameworks into the frameworks group of your project.
Then check that the frameworks have been also added to the frameworks list by checking in your target->Build Phases->Link Binary With Library.
Then you can remove the framework mavlink and uthash from your project (and only from your project).

Here is a quick screen record about it.



For your first problem, it seems that the SDK is not compatible with XCode 7 for the moment.
We will try to fix it soon, sorry.

Best regards,



SDK repos have been updated to support iOS 9 and XCode 7. Sorry for the delay.

To compile and use the SDK, please follow this tutorial.

Best regards,



Thank you very much for your help !