Files
MapLibreParticleLab/platform/ios/INSTALL.md
Minh Nguyễn 1420a49689 [ios] Generate API documentation using jazzy
Replaced appledoc usage with jazzy, which understands modern Objective-C syntax by virtue of using Clang ASTs. Nevertheless, we have to make lots of changes to our documentation syntax, which was tailored to appledocs quirks. The new syntax jives much better with what Xcode expects in terms of auto-indentation and Quick Help.

Fixes #1420.
2016-01-05 12:41:54 -08:00

3.3 KiB

Integrating the Mapbox iOS SDK into your application

This document explains how to build a development version of Mapbox iOS SDK for the purpose of incorporating it into your own Cocoa Touch application.

Requirements

The Mapbox iOS SDK and iosapp demo application build against the iOS 7.0 SDK. They are intended to run on iOS 7.0 and above on the following devices and their simulators:

  • iPhone 4S and above (5, 5c, 5s, 6, 6 Plus)
  • iPad 2 and above (3, 4, Mini, Air, Mini 2, Air 2)
  • iPod touch 5th generation and above

Build

  1. Install core dependencies.

  2. Install jazzy for generating API documentation:

    [sudo] gem install jazzy
    
  3. Run make ipackage. The packaging script will produce the statically-linked libMapbox.a, Mapbox.bundle for resources, a Headers folder, and a Docs folder with HTML API documentation.

Access Tokens

The demo applications use Mapbox vector tiles, which require a Mapbox account and API access token. Obtain an access token on the Mapbox account page.

Set up the access token by editing the scheme for the application target, then adding an environment variable with the name MAPBOX_ACCESS_TOKEN.

edit scheme

setting access token in Xcode scheme

Test

In the context of your own app, you can now either:

CocoaPods

Currently, until #1437 is completed, to install a development version of Mapbox GL using CocoaPods you will need to build it from source manually per above.

  1. Zip up the build product.

    cd build/ios/pkg/static
    ZIP=mapbox-ios-sdk.zip
    rm -f ../${ZIP}
    zip -r ../${ZIP} *
    
  2. Modify a custom Mapbox-iOS-SDK.podspec to download this zip file.

    {...}
    
    m.source = {
        :http => "http://{...}/mapbox-ios-sdk.zip",
        :flatten => true
    }
    
    {...}
    
  3. Update your app's Podfile to point to the Mapbox-iOS-SDK.podspec.

    pod 'Mapbox-iOS-SDK', :podspec => 'http://{...}/Mapbox-iOS-SDK.podspec'
    
  4. Run pod update to grab the newly-built library.

Binary

  1. Built from source manually per above.

  2. Copy the contents of build/ios/pkg/static into your project. It should happen automatically, but ensure that:

    • Headers is in your Header Search Paths (HEADER_SEARCH_PATHS) build setting.
    • Mapbox.bundle is in your target's Copy Bundle Resources build phase.
    • libMapbox.a is in your target's Link Binary With Libraries build phase.
  3. Add the following Cocoa framework dependencies to your target's Link Binary With Libraries build phase:

    • GLKit.framework
    • ImageIO.framework
    • MobileCoreServices.framework
    • QuartzCore.framework
    • SystemConfiguration.framework
    • libc++.dylib
    • libsqlite3.dylib
    • libz.dylib
  4. Add -ObjC to your target's "Other Linker Flags" build setting (OTHER_LDFLAGS).

Troubleshooting

On OS X, you can also try clearing the Xcode cache with make clear_xcode_cache.