-
Notifications
You must be signed in to change notification settings - Fork 985
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat!: Bump minimum deployment target to 12.0 #1323
Conversation
24bbb7b
to
15145bf
Compare
Codecov Report
@@ Coverage Diff @@
## master #1323 +/- ##
=======================================
Coverage 78.51% 78.51%
=======================================
Files 15 15
Lines 1778 1778
=======================================
Hits 1396 1396
Misses 382 382
📣 We’re building smart automated test selection to slash your CI/CD build times. Learn more |
Question: When we override the iOS deployment target via a preference, does that apply to just the app project or also to CordovaLib? Essentially, if somebody wanted to provide all the old icon sizes using a hook or something, can they lower the deployment target back to 11 using config.xml, or will Xcode error because CordovaLib requires a higher version (even though there's not actually anything in CordovaLib that requires iOS 12) |
It's still not clear if we are going to merge #1309 since some people might want to keep using different icons for different devices or for push notifications. We should have a more formal mail (or vote?) about bumping the deployment target. |
I had the same thought and a discuss thread should be arriving shortly. Will post link once it appears in ponymail. Mail Thread: https://lists.apache.org/thread/mvj3lj5bol89j6d2y74bt948xktb0lvv |
Can it be confirmed if CordovaLib can stay at 11.0, but only bump the project template to 12.0? Maybe the project template could be increased to support new features (one-icon), but allowing anyone else who use only the CordovaLib in their non-Cordova project to continue to support iOS 11. |
I didn't test via code change, but setting the deployment targets manually in xcode will still allows us to build as long as the App target is >= the deployment target of The bigger concern is how XCode behaves if you attempt to configure a target to a version that it no longer supports (and is not selectable via the UI). To test this, I installed cordova-ios@5 platform which tries to set the deployment target to 10.0. The observed behaviour is in the XCode UI, under the App target, you see Deployment Target 10 (when it's normally not selectable in the dropdown menu). Under the When attempting to build this project, the following errors are produced:
So there are two parts:
Shows that despite the UI, CordovaLib is being attempted to built with a deployment target of 10.0, as expected for Cordova-ios@5, but XCode 14.3 is refusing to build it since it can only build deployment targets 11+ Likewise, the same erroris also reproduced for the app target:
This is further reinforced by their documentation for minimum SDK and requirements: So based on this current behaviour there is a chance that XCode 15 will drop support for iOS 11. If that happens and if we aren't proactive on it, then we may need to make another major release to drop support for iOS 11 at that time. I don't think we have any particular deadlines to meet so we can wait to see what XCode 15 will support when it's beta comes out. |
WWDC is June 5th, so we should be able to find out fairly soon. |
Testing with Xcode 15 beta reveals that it has iOS 12 as the minimum supported SDK, and produces a warning (for each project) if the target version is lower. But it builds and runs fine with no issues. I don't think there's a way to get rid of that warning without bumping the version number, but there's also no specific need to bump it. |
One thing that was mentioned on the Android minSDK bump was the Chrome version. We bumped to minSDK 24 and was mentioned that the Chrome version included in the Android image was 52, so we would stick to Chrome's 52 features/support on the javascript side. In example the eslint changes from latest |
It is good point, ES6 (which includes stuff liek arrow functions, native promises, let/const, etc...) has good support since iOS 10, and since Chrome 51. Specific ES6 features like But overall, ES6 features should be pretty safe to use without any external tools, even if we keep iOS 11 as our minimum requirement. |
Sounds like we prefer to keep iOS 11 as the minimum target, so I'll close this. |
Platforms affected
iOS
Motivation and Context
Some features are being introduced (such as #1309) which requires iOS 12+
Description
Bump all occurrences
IPHONEOS_DEPLOYMENT_TARGET
to12.0
, including the app project template, CordovaLib, and test files.Testing
Letting CI do the testing.
Checklist
(platform)
if this change only applies to one platform (e.g.(android)
)