Visual Servoing Platform  version 3.6.1 under development (2024-04-16)
Tutorial: Installation from source for iOS devices

In this tutorial you will learn how to build ViSP framework from source on OSX in order to use it for iOS developments. These steps have been tested on macOS Big Sur 11.6.2, with CMake 3.22.1, Xcode 13.2.1 and Python 2.7.16 or Python 3.9.9.

Note
Concerning ViSP installation, we provide also other Tutorials.

Install required software

  • CMake gui for OSX that could be download at : http://www.cmake.org or installed using brew install cmake
  • Xcode
  • Python 2.7 or Python 3 installed using brew install python

Getting OpenCV framework (optional)

We suggest to follow these steps in order to install OpenCV framework in such a way that the resulting ViSP framework builds with OpenCV as 3rd party. This could be useful for users who want to use ViSP and OpenCV together. It will also allow to exploit keypoints throw ViSP classes (vpKltOpencv, vpKeyPoint) or the model-based tracker in his hybrid version (vpMbKltTracker). If you are not interested in capabilities leveraged by using OpenCV as 3rd party, just skip this section.

  • Download the latest OpenCV for iOS like opencv-4.5.5-ios-framework.zip
  • Unzip the archive in a directory denoted <framework_dir>/ios. If <framework_dir> is for example the following folder $HOME/framework just do the following:
    $ mkdir -p $HOME/framework/ios
    
    If the download was performed with Safari, do the following
    $ mv $HOME/Downloads/opencv2.framework $HOME/framework/ios/
    
    or if the download was either performed with Firefox, do the following
    $ unzip $HOME/Downloads/opencv-4.5.5-ios-framework.zip -d $HOME/framework/ios
    
  • Add opencv2.framework to iPhoneOS existing frameworks
    $ cd `xcrun --sdk iphoneos --show-sdk-platform-path`/Developer/Library/Frameworks
    $ sudo ln -s ~/framework/ios/opencv2.framework
    
  • Add opencv2.framework to iPhoneSimulator existing frameworks
    $ cd `xcrun --sdk iphonesimulator --show-sdk-platform-path`/Developer/Library/Frameworks
    $ sudo ln -s ~/framework/ios/opencv2.framework
    
Note
If you encounter an error with xcrun, check xcrun: error: SDK cannot be located

Getting ViSP source code

Note
The following steps are only working with ViSP 3.0.1 or higher.

Here the goal is to get ViSP source code in a directory denoted <framework_dir>. If <framework_dir> is for example the following folder $HOME/framework there are different ways to get ViSP:

  • You can get the cutting-edge ViSP from GitHub repository using the following command
    $ cd $HOME/framework
    $ git clone https://github.com/lagadic/visp.git
    
  • You can also download a daily snapshot. Once downloaded, uncompress the file using
    $ tar xvzf visp-snapshot-yyyy-mm-dd.tar.gz -C $HOME/framework
    
  • Or you can download the latest release as a zip or a tarball. Once downloaded, uncompress the file using either
    $ tar xvzf visp-x.y.z.tar.gz -C $HOME/framework
    
    or
    $ unzip visp-x.y.z.zip -d $HOME/framework
    
  • We suppose now that ViSP source is in a directory denoted <framework_dir> besides ios folder.
    $ ls $HOME/framework
    ios  visp
    

Building ViSP framework

  • Build ViSP framework
    $ cd $HOME/framework
    $ python3 visp/platforms/ios/build_framework.py ios
    
  • Once build, you will have $HOME/framework/ios/visp3.framework that could be added to a Xcode project for iOS devices. If you follow Getting OpenCV framework (optional) you have also $HOME/framework/ios/opencv2.framework that should also be added to the Xcode project.
    $ ls $HOME/framework/ios
    build           opencv2.framework   visp3.framework
    
  • There is also the possibility to build ViSP framework specifying the deployment target and the arch
    $ cd $HOME/framework
    $ python3 visp/platforms/ios/build_framework.py ios --iphoneos_deployment_target 11.0 --iphoneos_archs arm64 --build_only_specified_archs True
    
Note
ViSP framework is build with capabilities that enables the usage of the following 3rd parties: XML, OpenCV, pthread, apriltag, lapack.

Known issues

xcrun: error: SDK cannot be located

If you encounter the following issue:

$ cd `xcrun --sdk iphoneos --show-sdk-platform-path`/Developer/Library/Frameworks
xcrun: error: SDK "iphoneos" cannot be located
xcrun: error: SDK "iphoneos" cannot be located
xcrun: error: unable to lookup item 'PlatformPath' in SDK 'iphoneos'
-bash: cd: /Developer/Library/Frameworks: No such file or directory

It means that the Xcode command line tools are not installed.

Launch Xcode and go to Preferences, then Locations, and make sure the command line tools is set to the version of Xcode you’re using.

Next tutorial

You are now ready to see the next Tutorial: How to create a basic iOS application that uses ViSP that shows how to use ViSP as a 3rd party to build your own project for iOS devices.