iOS deployment target is set to 11.0 which is no longer supported
In the plugin.xml for this package, the deployment-target for iOS is set to 11.0. This version is no longer supported and should be updated.
See for the exact line; https://github.com/ionic-team/cordova-plugin-ionic-webview/blob/e591d7c73bf0abe973b7a7eaaf8e95b50c0e5708/plugin.xml#L65C53-L65C57
Deployment target is forced/lowered by the plugin, breaking pods that require higher iOS versions (Intercom / Firebase)
I’m seeing pod install failures when adding plugins that require a higher iOS deployment target (e.g. intercom-cordova and cordova-plugin-firebasex). The root cause is that cordova-plugin-ionic-webview overrides the app’s iOS deployment target from config.xml by setting its own value in plugin.xml (see lines around this snippet). That effectively lowers the deployment target for the Pods project and causes CocoaPods to reject dependencies which require a higher minimum.
Repro
- In config.xml, set:
<platform name="ios">
<preference name="deployment-target" value="15.0"/>
</platform>
- Add cordova-plugin-ionic-webview.
- Add a plugin that pulls pods requiring iOS ≥ 13 (e.g. Intercom ~> 18.x or Firebase 12.x).
- pod install fails with “requires a higher minimum deployment target”, because the WebView plugin has overridden the target to a lower value.
Why this is problematic
- The app-level deployment-target should be authoritative. A plugin shouldn’t lower it globally.
- Multiple ecosystem plugins (Intercom, Firebase 12.x, etc.) now require iOS 13+; forcing a lower target makes them fail to resolve.
Proposed fix (aligns with the spirit of #696)
- Don’t override the project’s target if it’s already higher.
- Only enforce a minimum (e.g. 11.0) in case the project is lower than that—never lower a higher target set by the app.
For example, in the plugin’s CocoaPods post-install hook (or wherever the setting is applied), use conditional logic:
post_install do |installer|
min_ios = '11.0' # or whatever baseline the plugin needs
installer.pods_project.targets.each do |t|
t.build_configurations.each do |config|
current = (config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] || min_ios).to_s
if Gem::Version.new(current) < Gem::Version.new(min_ios)
config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = min_ios
end
# else: leave it alone if it's already higher (e.g. 13.0, 15.0)
end
end
end
This way:
- Apps that set deployment-target to 13/14/15 in config.xml won’t be downgraded.
- Older projects still get a sensible minimum.
Relation to #696
PR #696 moves away from hard-coded settings and is a step toward respecting the host project’s configuration. This issue is the same theme: please avoid forcing a lower deployment target than what the app declares. A conditional “raise-to-minimum, never lower” approach would resolve this class of conflicts.
Happy to test a patch if you’re open to it.
Meanwhile…
For people who read me before it's fixed, you still can apply this patch manually to the plugins dir.
curl -Ls https://github.com/ionic-team/cordova-plugin-ionic-webview/pull/696.patch | git apply --directory=plugins/cordova-plugin-ionic-webview
I hope this is merged. Using the patch above worked for me.