iBurn-iOS

September 25, 2026 · View on GitHub

CI

iBurn is an offline map and guide for the Burning Man art festival. Following the 2014 rewrite, the 2015 release has been updated for iOS 8 and we're starting to write new code in Swift. Persistence is GRDB via the in-repo Packages/PlayaDB package (YapDatabase + Mantle were retired in 2026), and we use MapLibre instead of MapKit for our offline map tiles. Third-party code comes in through Swift Package Manager; see the package dependencies of iBurn.xcodeproj. For users of Android devices, we also develop a version of iBurn for Android.

iBurn App Store Link iBurn Google Play Store Link

Screenshots

Screenshot 1 Screenshot 2

Installation

  • Install the most recent version of Xcode.
  • Fetch submodules. Some of them (Submodules/Onboard, Submodules/PermissionScope, Submodules/iBurn-Data) are local Swift packages the project builds from; everything else is resolved by Swift Package Manager when you open or build the workspace.
$ git clone https://github.com/iBurnApp/iBurn-iOS.git
$ cd iBurn-iOS/
$ git submodule update --init --recursive
  • Download camp data from PlayaEvents (we can't ship ours due to BMorg's location data embargo)
$ curl -o ./Submodules/iBurn-Data/data/2015/2015/camps.json.js http://playaevents.burningman.org/api/0.2/2015/camp/
  • open iBurn.xcworkspace (not the .xcodeproj file!)

  • Create BRCSecrets.m and fill it with the following contents:

    NSString * const kBRCHockeyBetaIdentifier = @"";
    NSString * const kBRCHockeyLiveIdentifier = @"";
    // To generate new passcode (without salt):
    // $ echo -n passcode | sha256sum
    NSString * const kBRCEmbargoPasscodeSHA256Hash = @"";
    NSString * const kBRCUpdatesURLString = @"";
    NSString * const kBRCMapBoxStyleURL = @"https://example.com";
    NSString * const kBRCMapBoxAccessToken = @"";
    
    
  • Create InfoPlistSecrets.h and add

#define MAPBOX_ACCESS_TOKEN test
#define CRASHLYTICS_API_TOKEN test

or run these commands:

$ echo -e "NSString * const kBRCHockeyBetaIdentifier = @\"\";\nNSString * const kBRCHockeyLiveIdentifier = @\"\";\nNSString * const kBRCEmbargoPasscodeSHA256Hash = @\"\";\nNSString * const kBRCUpdatesURLString = @\"\";\n NSString * const kBRCMapBoxStyleURL = @\"https://example.com\";\nNSString * const kBRCMapBoxAccessToken = @\"\";\n" > ./iBurn/BRCSecrets.m
$ echo -e "#define MAPBOX_ACCESS_TOKEN test\n#define CRASHLYTICS_API_TOKEN test\n" > ./iBurn/InfoPlistSecrets.h
  • Create .env file: (optional)
CRASHLYTICS_API_TOKEN=""
  • Compile and Run! On the first build Xcode asks you to trust the LicensePlistBuildTool package plug-in, which generates the Settings.app acknowledgements from license_plist.yml; choose "Trust & Enable". For command-line builds pass -skipPackagePluginValidation to xcodebuild.

Note: Camp, Art and Event location data are embargoed by BMorg until the gates open each year. There isn't anything we can do about this until BMorg changes their policy. Sorry!

Fortunately, you can still run and test the app without it.

Contributing

Thank you for your interest in contributing to iBurn! Please open up an issue on our tracker before starting work on major interface or functionality changes. The easiest place to start is the list of bugs on the issue tracker. Otherwise, feel free to run wild!

  1. Fork the project and do your work in a feature branch.
  2. Make sure everything compiles and existing functionality is not broken.
  3. Open a pull request.
  4. Thank you! :)

Your contributions will need to be licensed to us under the MPL 2.0 and will be distributed under the terms of the MPL 2.0.

Authors

Attribution

License

© 2015 Chris Ballinger, David Chiles

Code: MPL 2.0 (similar to the LGPL in terms of copyleft but more compatible with the App Store)

Data: CC BY-SA 4.0