Any ideas on how to support an earlier iOS version than a certain Xcode version supports and not cause warnings in clients that use the package?
Specifically, I'd like to use Swift packages that support iOS 8 in Xcode 12 without getting
The iOS Simulator deployment target 'IPHONEOS_DEPLOYMENT_TARGET' is set to 8.0, but the range of supported deployment target versions is 9.0 to 14.0.99.
Not sure there is a way -- it's probably possible to shell out in the manifest and use different minimum deployment targets based on the Xcode being used, but that doesn't seem like a particularly great and scalable solution.
I'm thinking Xcode should really ignore these specific warnings for remote dependencies (or maybe all package dependencies). The warning makes sense for letting you know that you should update projects you control, but does not seem particularly helpful for dependencies you are simply using.
A package will be assumed to support all platforms using a predefined minimum deployment version. This predefined deployment version will be the oldest deployment target version supported by the installed SDK for a given platform.
I understand that to mean that when nothing is specified, each toolchain will default to as old as it is capable of. Is this the case or not? If so...
It looks like nanopb is just restating the defaults in a forward‐incompatible way. nanopb could make the problem go away right now by removing the explicit deployment targets.
That wouldn’t solve the general issue with SwiftPM, but it would mean you wouldn’t have to wait for another toolchain to be released to fix your particular case.
Also, it would be useful something like post_script (a la CocoaPods) to override these kind of settings. Would you consider adding something like it to SPM?