Skip to content
This repository has been archived by the owner on Aug 8, 2023. It is now read-only.

Restore support for iOS 9–11 #16241

Closed
1ec5 opened this issue Feb 28, 2020 · 1 comment · Fixed by #16242
Closed

Restore support for iOS 9–11 #16241

1ec5 opened this issue Feb 28, 2020 · 1 comment · Fixed by #16242

Comments

@1ec5
Copy link
Contributor

1ec5 commented Feb 28, 2020

#16158 increased the minimum deployment target from iOS 9.0 to iOS 12.0, making it incompatible with the iOS map SDK, which still deploys backward to iOS 9.0. We should revert that part of #16158, restoring support for iOS 9–11 inclusive.

In principle, it’s important that any iOS version supported by the iOS map SDK should also be supported by mbgl. I’m not sure it’s possible for the map SDK to override mbgl’s minimum deployment target from within the gl-native-ios repository, but even if it is possible, that would be like a downstream project unilaterally deciding that mbgl supports GCC 3.0.

The minimum deployment target affects API availability at build time. We want to avoid a situation where we inadvertently introduce an iOS 12 API into mbgl without causing any build warnings, but later the iOS map SDK is unable to upgrade to a newer mbgl release because of that API usage, requiring a last-minute patch release of mbgl.

The minimum deployment target also affects some subtle behavior at runtime. Apple sometimes introduces new behavior that only applies to binaries linked “on or after” iOS 12, to ensure binary compatibility. The test harnesses in this repository could end up relying on that newer behavior. Overriding the minimum deployment target from gl-native-ios would reverse the behavior without the same test coverage.

In the case of #16158, the mismatch in minimum deployment targets caused linker errors and warnings, because iOS 11 dropped the armv7 architecture. We got lucky this time: a less significant jump in minimum deployment targets could’ve resulted in issues that are more difficult to detect.

/ref mapbox/mapbox-gl-native-ios#181 (comment)
/cc @mapbox/gl-native @mapbox/maps-ios

@1ec5 1ec5 added iOS Mapbox Maps SDK for iOS build regression labels Feb 28, 2020
@1ec5 1ec5 added this to the release-unicorn milestone Feb 28, 2020
@1ec5 1ec5 self-assigned this Feb 28, 2020
@1ec5 1ec5 added gl-ios and removed iOS Mapbox Maps SDK for iOS labels Feb 28, 2020
@1ec5
Copy link
Contributor Author

1ec5 commented Apr 14, 2020

We got lucky this time: a less significant jump in minimum deployment targets could’ve resulted in issues that are more difficult to detect.

On macOS, it surfaced as a crash on launch: #16396.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant