Fixes the issue where our stripped dynamic build did not have a valid dSYM.
Disabling GCC_GENERATE_DEBUGGING_SYMBOLS for SYMBOLS=NO builds meant
that those builds had no debug symbols to strip or add to a dSYM.
This adds a script that automates the process of uploading the
required build output to Fabric. It requires the `FABRIC_KIT_API_KEY`
env variable and another new script called `validate-fabric-zip.sh`.
Our release builds for device (with lipoed simulator binary) create
a dSYM files for both the device and simulator. However the script
only copied the device dSYM file to the output location.
This adds a step to lipo together both the device and simulator dSYM files.
Mapbox.framework.dSYM now holds armv7 and arm64 slices.
* [ios] fixes#4536 include podspec for static framework
* [ios] removed excessive frameworks, libraries and flags from the static podspec
* [ios] cleaned up the podspec
* [core] geometry.hpp 0.8.0
* geojsonvt @ 6.0.0
* Update platform deps, build scripts
* Perf optimizations/cleanup
* Rebase in geometry@080
* D.R.Y. etc
* Ensure fill annotation geometries have closed rings.
* Optimizations
* Update to geojsonvt @ 6.1.0 for clean handoff between geojson parsing and geojsonvt
* Apply close multi/poly geoms for line annotations as well
- Based on Jazzy's "full width" theme.
- Add ellipsis to overlong items in navigation menu.
- Set minimum width for navigation menu.
- Use Open Sans font face.
- Inline GitHub header icon as SVG.
- Center images by default.
- Add GitHub SVG icon to 'show on github' link.
- Wrap overlong method names on class pages.
Added a separate target to produce the example Settings.bundle. Use the build product in iosapp instead of a folder reference.
Added the bundle and settings targets as dependencies on the dynamic and static targets instead of listing them explicitly in various schemes.
Added a target that produces Mapbox.bundle.
Replaced $BUNDLE_RESOURCES and $PLACE_RESOURCE_BUNDLES_OUTSIDE_FRAMEWORK with a single variable, $SELF_CONTAINED, that determines whether the output static framework is self-contained – that is, whether it contains Mapbox.bundle, Settings.bundle, and LICENSE.md. Eliminated the ability to produce a static framework that has the same layout as a dynamic framework. Now, resources are always in Mapbox.bundle; self-containment only determines where that bundle resides.
Added a separate source Info.plist to be placed in both the static framework and its resource bundle, but only after we give the build system a chance to expand variables within it. Now nearly all the Info.plist keys are filled in by the build system rather than using plutil in package.sh.
Fixed some regressions introduced in 9c9ff2d2d4 for #4802. A backslash was missing from a shell script, causing arguments to get dropped and output to go in the repo root. Paths in the jazzy configuration file needed to be updated so jazzy could find the headers.
Consolidated NSValue categories to work around realm/jazzy#539. Documented MGLErrorCode. Moved jazzy configuration file into platform/ios/. Removed redundant include/Mapbox.h that was only being used by jazzy, now that the static frameworks’s umbrella header is based on that of the dynamic framework. Moved framework/Mapbox.h to include/Mapbox.h for consistency.
A workspace places derived data under ~/Library/ by default. We need it to live under build/ for all users. Instead of a legacy-style build products directory, force a workspace-relative DerivedData directory that matches the standard Xcode 4+ layout. Share the workspace settings file that forces the setting. Note that Xcode places its build and index output one level deeper than xcodebuild does.
Also fixed make ipackage-sim by conditionalizing anything related to the .dSYM file, which isn’t generated in the Debug configuration.
Halved the number of xcodebuild invocations, using a new scheme to string the dynamic and static builds together in each invocation. Removed unnecessary build flag overrides like ARCHS.
Removed support for building the SDK without Bitcode support via an environment variable. If you need to build without Bitcode support, set the ENABLE_BITCODE build setting in the project editor for the relevant Xcode target.
Added a new Cocoa Touch dynamic framework target and Cocoa Touch static library target to the main iOS Xcode project. The targets are based on the templates provided by Xcode. They contain headers and source files in the darwin/ and ios/ subdirectories. Headers are explicitly marked public or project-internal instead of implicitly by subdirectory.
The SDK targets have a few dependencies that are managed by mason. Transform the config.gypi generated by configure into an .xcconfig file that Xcode uses to fill in compiler and linker flags.
Removed the iossdk target from platform.gypi and pared down the platform-lib target. make iproj opens the overall Xcode workspace instead of just the core project.
Resolved some warnings that are only now appearing because we’re using the standard warning and error flags instead of the pedantic and somewhat inappropriate flags that were forced by the gyp configuration files. Removed a console message informing developers of a long-ago deleted delegate method; the message was triggering a “selector not found” warning. Conditionalized some deprecated symbol usage that’s still needed for the static framework but not the dynamic framework, due to differing minimum deployment targets.
Added a build phase to the static library target that copies headers for use with the static library itself. This would allow us to potentially include a header in the dynamic framework but not the static library and vice-versa.
Updated the changelog to note that unused SVG files have been removed from the distribution.
ios.xcodeproj is an ordinary Xcode project with ordinary Xcode targets for iosapp and ios-bench, all contained in an ordinary Xcode workspace that happens to also reference the gyp-generated platform.xcodeproj. The iosapp target links to and embeds Mapbox.framework, which is a product of the gyp-generated platform.xcodeproj. ios-tests.xcodeproj is also in the workspace, enabling simultaneous debugging of KIF tests, the SDK, and core code.
Moved storyboards into Base.lproj and image assets into an asset catalog. Removed iOS 6 assets from the iosapp asset catalog. Moved the original ios-bench application icon SVG into a non-project location.
Removed app/Settings.bundle, which is identical to framework/Settings.bundle.
Removed a broken reference to an unused header from the ios-tests project.
* Main gyp files are now standardized as platform/<platform>/platform.gyp.
* Each platform gyp file defines appropriate loop_lib and headless_lib variables.
* Each platform gyp file includes mbgl.gypi, which defines base targets which may be useful to all platforms.
* CI targets are consistent across platforms: `make $(PLATFORM) && make test-$(PLATFORM)`.
* Renamed the "linux" test app to "glfw". It's now built in OS X CI.
* Android build flakiness is fixed.
* iOS CI builds the bench and iosapp targets.
* Mesa version is now in one place.
* CI scripts use bash "strict mode" and correct error handling.
* All build output goes to the build directory.
* Removed vestigial iOS/OS X/Android Travis scripts.
A large part of the iOS SDK deploy process is creating the various
binary flavors, uploading them to s3, and then testing that those
uploads worked by downloading them from s3 before uploading and
attaching them to the github release.
This script automates that build, upload, download, upload and
attach process and can be run after `mbx auth`.