Commit Graph

55 Commits

Author SHA1 Message Date
Jason Wray
5cad92cc33 [ios] Print Xcode and SDK version during packaging 2017-08-25 16:12:00 -04:00
Jason Wray
82c2d4b3ca [build] Include bcsymbolmap files in iOS dynamic framework package 2017-07-26 15:49:23 -04:00
Jason Wray
612a1e8377 [build] Remove unused iOS 'self contained' static framework packaging
This was a faux framework once required by Fabric.
2017-07-25 14:31:40 -04:00
Jesse Bounds
655b7c035c [ios] Search for ICU path using cmake cache 2017-02-16 10:59:54 -08:00
Konstantin Käfer
62ea1f2185 [core] remove trailing whitespace, add trailing newlines, add space after // 2017-01-27 11:44:16 +01:00
Jason Wray
9a92a3a5dd [ios][build] Validate dSYM and framework UUIDs 2016-09-30 18:49:05 -04:00
Jason Wray
c72deacdcf [ios][build] Generate debug symbols for all builds
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.
2016-09-30 18:49:05 -04:00
Konstantin Käfer
94ceeb739d [build] fix iOS packaging 2016-08-05 11:42:22 +02:00
Konstantin Käfer
692fe1f3ff [build] switch to CMake
This is very much a work in progress.
2016-08-05 11:42:22 +02:00
Romain Quidet
e1351751c2 5782: build static framework correctly (#5783)
* 5782: build static framework correctly

* 5782: updated changelog
2016-07-25 11:26:43 -07:00
Jesse Bounds
e686d32922 [ios] Add simulator dSYM slices to build output. (#5740)
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.
2016-07-21 11:51:42 -07:00
Minh Nguyễn
244700e560 Merge branch 'release-ios-v3.3.0' 2016-07-14 16:31:08 -07:00
Fredrik Karlsson
c531686ecc [ios] fixes #4536 include podspec for static framework (#5653)
* [ios] fixes #4536 include podspec for static framework

* [ios] removed excessive frameworks, libraries and flags from the static podspec

* [ios] cleaned up the podspec
2016-07-14 11:30:20 +02:00
Jesse Bounds
23caa9f7aa Merge branch 'release-ios-v3.3.0' into master 2016-07-07 15:40:07 -07:00
Young Hahn
71a3b1d0db [core] geometry@0.8.0 / geojsonvt@6.0.0 (#5514)
* [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
2016-07-06 17:29:34 -04:00
Fredrik Karlsson
d4f5a37c43 [ios] omit podspec for static lib (#5595) 2016-07-06 22:13:02 +02:00
Fredrik Karlsson
9993017cc9 [ios] fixes #4536 include podspec in iOS releases (#5569) 2016-07-06 11:09:50 +02:00
Jason Wray
f41546e614 [ios] Default to Debug BUILDTYPE, but explicitly set Release for deploys 2016-06-01 15:54:46 -04:00
Jason Wray
c08a54dd82 [ios] Fix static framework conglomeration
- Include libMapbox.a, which contains our Obj-C classes, in the fat archive.
- Simulator libraries now always include x86_64 slices.
2016-06-01 15:54:46 -04:00
Minh Nguyễn
c376380112 [ios] Added separate target for Settings.bundle
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.
2016-04-24 17:58:05 -07:00
Minh Nguyễn
f85f4f4105 [ios] Streamlined resource bundling
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.
2016-04-24 16:18:23 -07:00
John Firebaugh
4bc4d35c60 [ios] Build output goes to build/ios 2016-04-19 16:28:30 -07:00
Minh Nguyễn
f83c7a8b81 [ios] Force workspace-relative DerivedData
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.
2016-04-16 22:46:26 -07:00
Minh Nguyễn
f791eb32b9 [ios] Streamlined package.sh
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.
2016-04-16 22:46:23 -07:00
Minh Nguyễn
b8c39667ff [ios] Moved SDK from gyp into Xcode project
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.
2016-04-16 22:45:59 -07:00
Minh Nguyễn
96d3ccb022 [ios] Added Xcode project for iosapp, ios-bench; workspace for ios-tests
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.
2016-04-16 13:20:12 -07:00
John Firebaugh
be47e35a97 [ios, osx] The return of xcpretty, part II (#4676) 2016-04-11 16:45:14 -07:00
John Firebaugh
f964e40e7e [build] Refactor and simplify build system
* 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.
2016-04-07 18:01:02 -07:00
John Firebaugh
08d12f860e [ios] Fix make ipackage 2016-04-05 15:03:05 -07:00
John Firebaugh
879382f724 [ios, osx] Replace libuv with native implementations 2016-04-01 09:26:54 -07:00
Jesse Bounds
62f636f0c0 [ios] Fix issues with static lib signing and app store submission
Fix issues with static build configuration that caused it to be
problematic for host applications when they were installed on device.
Also fixes issues that broke the iTunes Connect validation and upload
process. This also updates the `binary` instructions in INSTALL.md to reflect
these changes.
2016-03-28 09:52:36 -07:00
Minh Nguyễn
8cdb4f74e1 [ios] Fixed changelog processing
Fixed a regression introduced in #4466 in which the changelog is essentially empty.

Fixes #4469.
2016-03-25 12:24:14 -07:00
Minh Nguyễn
ec072b437a [ios] Copy dynamic framework .dSYM into distribution 2016-03-18 00:29:58 -07:00
Minh Nguyễn
1962fce1de [ios] Copy .der files into static framework
Fixes #4316.
2016-03-15 11:08:34 -07:00
Minh Nguyễn
c2cd9335e9 [ios] Non-embedded static framework
Added a new ifabric Make target for packaging up a static framework similar to the one released as 3.0.1. Place artwork and certificate assets inside Mapbox.bundle inside Mapbox.framework. Link SystemConfiguration in the umbrella header.

Distinguish between the framework bundle and the resources bundle. For the dynamic frameworks and embedded static frameworks, the two are the same; for the non-embedded static framework, the latter resides inside the former.
2016-03-08 11:20:12 -08:00
Jesse Bounds
cb9054f9ec Update package script to reflect file path change 2016-02-27 06:58:31 -08:00
Minh Nguyễn
17f44d7bd9 Merge branch 'release-ios-v3.1.0' 2016-02-24 09:06:43 -08:00
Minh Nguyễn
1c25dc098e [ios] Import required frameworks with static framework umbrella
The umbrella header inside the static framework now imports the required iOS SDK frameworks so manual linking is unnecessary. This change corrects a regression introduced in #3183, when the umbrella header used in version 3.0.1 was removed.
2016-02-18 14:41:47 -08:00
Minh Nguyễn
55fca26ea5 [ios] Distinguish between AGV and semver
Distinguish between Apple Generic Versioning and Semantic Versioning in Info.plist. Also fill in the build number in the dynamic framework.

Fixes #3911.
2016-02-13 09:56:44 -08:00
John Firebaugh
13e2acbc75 [ios, osx] Consolidate remaining files in platform/{ios,osx} 2016-02-12 14:53:52 -08:00
Minh Nguyễn
f65ff9ef30 [ios] Split API index from package readme
The API index page serves a different purpose than the readme. It doesn’t need installation instructions, but it does need a brief What’s New section.
2016-01-22 14:45:58 -08:00
Minh Nguyễn
83deed6a88 [ios] make idocument
Split API documentation generation into a separate make target that can be run independently of building the SDK.
2016-01-22 14:45:58 -08:00
Minh Nguyễn
5d516c3603 [ios] Split changelog out from readme
CocoaPods dings this pod for not having a separate changelog.
2016-01-22 14:45:58 -08:00
Minh Nguyễn
9427ddd373 [ios] Polished package readme
Omit setup instructions for package formats not included in the build output.
2016-01-22 14:45:58 -08:00
Minh Nguyễn
5213abbde5 [ios] Rewrote package readme
The build output’s readme now explains in full detail the installation process, rather than linking to an online resource that may not match the current version. Also cleaned up the tag-finding code to better handle double-digit situations.
2016-01-22 14:45:58 -08:00
Minh Nguyễn
7338db692d [ios] Refactored build scripts
package.sh now recognizes several environment variables through make that influence the build settings and targets. Info.plist variables are substituted with the correct values in both the static and dynamic frameworks.

Fixes #3656.
2016-01-22 14:45:57 -08:00
Minh Nguyễn
f986417f5c [ios] Put static library inside framework bundle 2016-01-22 14:45:57 -08:00
Minh Nguyễn
f9360c3f4f [ios] Strip Simulator content when archiving
Copied strip-frameworks.sh from realm/realm-cocoa@7cc31db631 for realm/realm-cocoa#2759. This script, which is embedded in the dynamic framework, strips out content for invalid architectures from any embedded framework and specifically strips out Simulator content when archiving to work around an App Store bug.

Rewrote the iOS setup documentation. In particular, the MAPBOX_ACCESS_TOKEN environment variable is only for use with the iosapp demo application and doesn’t work in third-party applications.
2016-01-22 14:45:57 -08:00
Minh Nguyễn
9350d3f78c [ios] Converted iOS SDK into dynamic framework
make iproj now produces a target that pulls together static libraries like core and platform-ios into a real dynamic framework. iosapp is pretty much just a regular iOS application that links Mapbox.framework (except for the inclusion of default_styles.hpp). iosapp runs fine in the Simulator and on a device, and the same is true for any application linking against Mapbox.framework.

The ipackage target produces both a Bitcode-disabled static framework and a Bitcode-enabled dynamic framework, eliminating the need for a separate framework.sh. It disables code signing, since that happens on copy when the framework is embedded inside the application bundle. It also merges the device and simulator builds into a single fat framework.

Also bumped itest minimum deployment target to iOS 8.0, the first version that supports linking frameworks.

Fixes #828.
2016-01-22 14:45:56 -08:00
Minh Nguyễn
27b308a234 [core] Separated AnimationOptions from CameraOptions 2016-01-14 00:39:12 -08:00