Skip to content
This repository was archived by the owner on Aug 8, 2023. It is now read-only.

Releasing the Mapbox iOS SDK

Jesse Bounds edited this page Jun 29, 2017 · 59 revisions

(Consider releasing the Mapbox macOS SDK at the same time.)

Version the packages

  1. Choose a version number per Semantic Versioning and our tagging rules. Let's call it ios-vX.Y.Z. If this is a pre-release, go with ios-vX.Y.Z-pre.P, where P begins at 1 and increments for each pre-release.
  2. If necessary, update the screenshot.
  3. Update the version in the podspec and -symbols podspec.
  • Use X.Y.Z{-alpha|beta.P} to provide smaller, non-symbolicated downloads.
  • The -symbols suffix is used in -symbols podspec for intermediary dev releases to gather useful crash info (e.g. X.Y.Z{-alpha|beta.P}-symbols). This causes the larger, symbolicated install to be used in the integrating project.
  1. Update the CHANGELOG.md for the release.
  1. Run tx pull -a to add or update translations.
  2. Create a pull request with these changes and have it approved/merged.
  3. Create a tag ios-vX.Y.Z.
  4. git push origin ios-vX.Y.Z

Build and release

You can follow the manual instructions in this gist. However, we expect to deprecate that approach in the future in favor of a more automated approach on a CI server. In the interim, a script automates most of the work so you can follow these simple steps:

  • Run mbx auth <your-2fa-code> (If you do not already have AWS credentials, ask a team member for help in setting this up.)
  • [First time only] To create a GitHub release from the command line, you will need to:
    • Create a new GitHub access token and add it as the GITHUB_TOKEN environment variable — e.g., export GITHUB_TOKEN='8BADF00DDEADBEEFC00010FF' in your ~/.bash_profile.
  • Run make ideploy. This will:
  • Build all the packages (static and dynamic framework files and friends).
  • Upload to s3 (if you've run mbx auth above).
  • Test that downloads from s3 work.
  • Make a new Github release draft and upload all of the compressed release files to the Github release (if you've set your GITHUB_TOKEN as noted above).
  • Go to https://github.com/mapbox/mapbox-gl-native/releases to find the draft, confirm that it is valid, and add notes from the changelog.
  • When you are satisfied with the release draft, click the button to publish it.

Stable releases

cocoapods

  • Run pod trunk push platform/ios/Mapbox-iOS-SDK.podspec.

Documentation

Pre-releases

Documentation

Publish API documentation in the mapbox/ios-sdk repo. After generating the docs, only commit the new api/X.X.X/ folder — this makes them publicly available, but leaves the stable version as the default.

Clone this wiki locally