Commit Graph

751 Commits

Author SHA1 Message Date
Minh Nguyễn
b3be8ee8f7 [ios] Removed armv7s slice from iOS gyp targets
All gyp-generated iOS targets build for the standard architectures, which do not include armv7s.

Fixes #4704.
2016-04-16 22:46:23 -07:00
Minh Nguyễn
7a38e56819 [ios] Removed alternative to -ObjC
Xcode’s static library template comes with the -ObjC linker flag by default. Instead of removing that flag, this change removes the various imperfect workarounds we’ve been using to ensure that private SDK categories link. Given the size decrease in this static library since #2966 was fixed, we should have room to spare for the more straightforward approach. Moreover, an application that uses MGLMapView in a storyboard no longer needs to add -ObjC to the application target, which bloated the entire application, including other frameworks that had no need for -ObjC.

-ObjC isn’t even needed for dynamic frameworks, and the OS X SDK is only built as a dynamic framework.
2016-04-16 22:46:23 -07:00
Minh Nguyễn
4175a09b4b [ios] Build CI-specific scheme in CI
The new scheme builds both the All aggregate target generated by gyp and the iosapp target.
2016-04-16 22:46:23 -07:00
Minh Nguyễn
cc4da960c0 [ios] Moved KIF project out of ios-tests project 2016-04-16 22:46:23 -07:00
Minh Nguyễn
7ae6b13003 [ios] Only assert protocol conformance in Debug
Fixed some warnings when building Release.
2016-04-16 22:46:22 -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
1549b2b249 [ios] Shared Objective-C exception breakpoint
It’s common enough to need a general Objective-C exception breakpoint that it should be made available to all developers by default. It’s disabled by default, since it may obscure the exception message.
2016-04-16 13:20:22 -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
Jason Wray
253a007d99 [ios][bench] Add total and avg FPS to final summary 2016-04-14 22:33:33 -04:00
John Firebaugh
3af3e72bb3 [all] Replace HTTPContextBase/HTTPRequestBase with FileSource 2016-04-14 14:18:19 -07:00
John Firebaugh
204c7fee03 [core] Render from the main thread
Do not create a thread for the MapContext anymore.
2016-04-14 13:44:08 -07:00
Jason Wray
7e0a2e36e6 [ios] Convert telemetry test server setting to user default
- Previously looked in app's Info.plist, now looks at NSUserDefaults
2016-04-13 18:04:06 -04:00
Jason Wray
eda132d922 [ios] Restart user location heading updates on validation
Fixes #4668. Thanks to @JThramer for reporting.
2016-04-11 23:21:05 -04:00
John Firebaugh
be47e35a97 [ios, osx] The return of xcpretty, part II (#4676) 2016-04-11 16:45:14 -07:00
Minh Nguyễn
bbde70e3f0 [ios] Fixed style count assertion 2016-04-11 13:28:04 -07:00
John Firebaugh
1c7c5af69d [ios] Run core unit tests in CI 2016-04-11 11:00:34 -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
Jesse Bounds
89db01fef0 [ios] Add script to automate s3 build and publish process
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`.
2016-04-07 16:44:43 -04:00
Minh Nguyễn
3671765a51 [ios] Converted MBXViewController to Objective-C
Converted MBXViewController from Objective-C++ to Objective-C. In the process, the dependency on default_styles.hpp was replaced by a hardcoded list of style URLs along with runtime assertions that the list of styles is the right length.
2016-04-07 00:58:23 -04:00
Minh Nguyễn
8814463380 [ios] Onward to 3.3.0! 2016-04-06 14:14:32 -04:00
Jesse Bounds
b5858625c5 ios-v3.2.0
Update podspec files for version 3.2.0
2016-04-06 13:44:37 -04:00
Minh Nguyễn
3d18d101c7 ios-v3.2.0-rc.1
Switched away from the -symbols build but added a new podspec that still uses it.
2016-04-06 13:44:37 -04:00
John Firebaugh
08d12f860e [ios] Fix make ipackage 2016-04-05 15:03:05 -07:00
John Firebaugh
11f7db293e [ios] Remove KIF-based tests from CI. They just don't work reliably. 2016-04-04 12:14:17 -07:00
John Firebaugh
879382f724 [ios, osx] Replace libuv with native implementations 2016-04-01 09:26:54 -07:00
John Firebaugh
5eda74a514 Merge branch 'release-ios-3.2.0-android-4.0.0' 2016-03-30 17:43:37 -07:00
Ansis Brammanis
b6a181097c [core] fix reparsing overscaled geojson tiles
fix #3838
2016-03-30 13:57:47 -07:00
Ansis Brammanis
387f37d035 [core] increase geojson buffer size to match -js 2016-03-30 13:13:53 -07:00
Minh Nguyễn
e84c937dc0 ios-v3.2.0-beta.3 2016-03-29 12:50:28 -07:00
Jason Wray
593f3d511a [ios] Make showAnnotations default padding proportional at smaller frame sizes 2016-03-29 15:17:04 -04:00
Jason Wray
d20795b891 [ios] Don't use negative content insets
When a map view was smaller than the entire viewport, negative content insets would be applied. Negative content insets would only be valid if the map view extended outside of its frame, which cannot happen.

Fixes #4440.
2016-03-29 15:17:04 -04:00
Minh Nguyễn
38116e39c5 [ios, osx] Require progress to be requested manually
Requesting progress is expensive, so it is once again computed only on demand, rather than automatically at launch. Moved progress requesting back to iosapp and osxapp.
2016-03-29 11:46:27 -07:00
Minh Nguyễn
55f1ad11c4 [ios, osx] More accurate KVO, private delegate, descriptive fallback name, fewer reloads
Made MGLOfflineStorage.packs strong rather than copy so that KVO notifications on that key path include index paths. Replaced custom KVO mutable collection methods with calls to -mutableArrayValueForKey:, avoiding redundant casts.

Privatized MGLOfflinePackDelegate and made its methods required, since MGLOfflineStorage is the only conforming implementation. Require a pack to be explicitly invalidated before deallocation by its owner (MGLOfflineStorage). Added a method to reload the canonical collection of packs.

Previously, if the user adds an offline pack without specifying a name in the alert, the pack would be named “Untitled n” for the nth pack created since the application was launched. This logic could result in identically named packs (for example, if the user relaunches and creates another unnamed pack). Instead, use the visible coordinate bounds as a placeholder and fallback name.

Resume a pack upon successful addition. Removed an extraneous weakSelf/strongSelf dance. When possible, update individual labels in a cell instead of reloading the entire cell. That way, if the user swipes to the left to reveal the Delete accessory button while the pack is actively downloading, the accessory button remains on screen as progress updates come in.
2016-03-29 11:46:26 -07:00
Minh Nguyễn
a1e5701fa3 [ios, osx] Centralized offline pack management
MGLOfflineStorage now maintains a centralized, strongly held, KVO-compliant collection of all extant offline packs. MGLOfflineStorage issues notifications for progress updates. Client code can now react to the successful addition of an offline pack either via the completion block or via a KVO insertion.

Fixes #4287.
2016-03-29 11:46:25 -07:00
Jesse Bounds
1d6ce5e809 [ios] Make more adjustments to the pod readme for the static framework case 2016-03-29 10:10:34 -07:00
Minh Nguyễn
5adb102d98 [ios] Copyedited changelog
Corrected a few Xcode terms in the changelog entry about static framework installation fixes. Merged that entry with the one above it because they discuss the same fixes. Also moved the combined entry to the top, because it’s about as close to a breaking change as we can get without incurring a major version bump.
2016-03-29 10:10:34 -07:00
Jesse Bounds
c4d435ce71 [ios] Update the pod-README and changelog regarding static lib changes 2016-03-29 10:10:34 -07:00
Minh Nguyễn
4522bf02c9 [ios] Use current Swift version with jazzy
Fixes #4468.

Cherry-picked from 85297e2c6b.
2016-03-28 16:52:07 -07:00
Minh Nguyễn
2bd9b4a591 [ios] Nixed duplicate changelog entry from bad merge 2016-03-28 11:32:33 -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
71f6773208 [ios] Copyedited changelog
Changes are generally arranged by descending developer or user impact.
2016-03-26 22:08:30 -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
85297e2c6b [ios] Use current Swift version with jazzy
Fixes #4468.
2016-03-25 11:19:29 -07:00
Minh Nguyễn
2a56565a9c [ios, osx] Wrap coordinates converted from points
ref #4444
2016-03-25 11:03:06 -07:00
Brad Leege
abec88642b [android] [ios] #4432 - Splitting the CHANGELOG into iOS and Android specific CHANGELOGS 2016-03-25 10:17:57 -05:00
John Firebaugh
39cbfcb5c9 [core] Update to variant 1.1.0 2016-03-23 15:26:34 -07:00
John Firebaugh
6ff887ff24 [ios] Use make itest instead of Bitrise build step 2016-03-23 12:26:54 -07:00
John Firebaugh
8cc0826620 [ios] Remove unnecessary build steps 2016-03-23 09:57:17 -07:00
Konstantin Käfer
c587eefbb1 [ios] make unit tests work on iOS and iOS Simulator 2016-03-22 11:56:01 -07:00
Konstantin Käfer
61920071cd [core] split headless_view.cpp into implementation-specific files
also adds a EAGL implementation for iOS
2016-03-22 11:56:01 -07:00