You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository has been archived by the owner on Aug 8, 2023. It is now read-only.
#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.
#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
The text was updated successfully, but these errors were encountered: