Skip to content

tuyen-vuduc/mapbox-ios-binding

Repository files navigation

Mapbox for Xamarin.iOS

A Xamarin.iOS binding library for Mapbox library.

About

This project is maintained by tuyen-vuduc.
At the momment, I don't have free time to contribute to the project, but if there is a paid request, I am happy to talk to.

Installation

Install-Package MapboxMapObjC.iOS

Usage

  • 1/ How to use: Please follow the official guide here.
  • 2/ Create Mapbox.iOSQs.props file from Mapbox.iOSQs.props.template
// It will look like this
- Mapbox.iOSQS
  |- Mapbox.iOSQs.csproj
  |- Mapbox.iOSQs.props
  • 3/ Replace YOUR_MAPBOX_DOWNLOADS_TOKEN with your real token from Mapbox
<MAPBOX_DOWNLOADS_TOKEN>YOUR_MAPBOX_DOWNLOADS_TOKEN</MAPBOX_DOWNLOADS_TOKEN>
var myResourceOptions = new MBMResourceOptions(
                "YOUR_MAPBOX_TOKEN", // TODO Put your token here
                null, null, null, null);

or you can update Info.plist file

<key>MBXAccessToken</key>
<string>YOUR_MAPBOX_TOKEN</string>

How to upgrade

It takes time to do the binding library and/or upgrade it. Microsoft intends to make it a lot simpler in the future, but not now.

Here are steps if you want to make changes and/or upgrade to the libraries

  • 1/ Download latest artifacts from Mapbox as per its installation guide
  • 2/ Run chmod +x ./gen.sh
  • 3/ Run ./gen.sh
  • 4/ Compile and correct any errors shown up
  • 5/ Update AssemblyInfo.cs files with the right version number
  • 6/ Update *.nuspec files to have the right version number
  • 7/ Run sh build.sh to create nuget packages
  • 8/ Commit and create a PR

NOTES

  • Check symbols in the lib
nm -m 'artifacts/MapboxMaps.xcframework/ios-arm64/MapboxMaps.framework/MapboxMaps' | grep '_TtC10MapboxMaps22AnyTouchGestureHandler'

IMPROTANT

Mapbox SDK for iOS now is written in Swift and not very compatible with Objective-C, hence it won't be that friendly when doing the binding. I have to create an additional framework to make the bridge between Swift & C# in Objective-C, it's really a time consuming task. It'll require support from the developers like you in the community.

Further

Check out the document site for further details.

Maintainer

This project is maintained by tuyen-vuduc in his spare time and/or when requested.

If you find this project is helpful, please give it a star, become a sponsor of the project and/or buy him a coffee.

"Buy Me A Coffee"

License

Mapbox binding library for iOS itself is released under the 3-Clause BSD license. See LICENSE for details.

This license doesn't override and/or replace the licence from Mapbox.