- 
                Notifications
    
You must be signed in to change notification settings  - Fork 1.3k
 
Releasing the Mapbox iOS SDK
(Consider releasing the Mapbox macOS SDK at the same time.)
- 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 withios-vX.Y.Z-pre.P, wherePbegins at1and increments for each pre-release. - If necessary, update the screenshot.
 - Update the version by running 
./platform/ios/scripts/update-version.sh vX.Y.Z-pre.P, wherevX.Y.Z-pre.Pis the full semantic version. - Update the 
CHANGELOG.mdfor the release.- Add today’s date to the header for the release.
 - #protip: you can use the compare (
ios-v#.#.#-previous-beta.#...release-N|master) feature in github to more easily find intra-release changes (i.e. https://github.com/mapbox/mapbox-gl-native-ios/compare/ios-v5.7.0-alpha.1...ios-v5.7.0-beta.1). 
 - Run 
tx pull -ato add or update translations. - Create a pull request with these changes and have it approved/merged.
 - Create a tag 
ios-vX.Y.Z. git push origin ios-vX.Y.Z
The release build and deployment process starts on CircleCI once you push the tag. This will automatically:
- Build, package, and upload the different release flavors to s3 and GitHub.
 - Create a draft release on GitHub.
 
Once the ~35 minute deployment process is finished, you should:
- Copy the release notes to the draft GitHub release.
 - Check that the attached packages are valid.
 - Push the publish button. 💚
 
In times of dire need, you can still deploy manually by following the instructions in this old revision, which relies on this script.
Note: You should first register a CocoaPods id and be added as a CocoaPods collaborator for the Mapbox-iOS-SDK pod
- Run 
pod trunk push platform/ios/Mapbox-iOS-SDK.podspec. 
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.
Workflow: Code, Makefile, CMake, Xcode, ccache, Debugging, CI, JS/Native, Code Generation, Versions & Tagging, Contributing, Troubleshooting
Architecture: Threads, Immutability, Expressions, Text Rendering, Collision Detection, CJK Text
Rendering: OpenGL, Coordinate Systems
Android: checkstyle, APK Size, 4→5, 5→6, 6→7, Symbolication
iOS/macOS: 3→4
Releasing: iOS, macOS, Merging back
Misc: Terminology