Explicit extension safety flag - #866
Conversation
| isa = XCBuildConfiguration; | ||
| baseConfigurationReference = D047262919E49FE8006002AA /* Debug.xcconfig */; | ||
| buildSettings = { | ||
| APPLICATION_EXTENSION_API_ONLY = YES; |
There was a problem hiding this comment.
Oh sorry, I didn't have the XCConfig submodule setup correctly. I've reverted this.
| *Please add new entries at the top.* | ||
|
|
||
| 1. Bumped deployment target to iOS 11, tvOS 11, watchOS 4, macOS 10.13, per Xcode 14 warnings | ||
| 1. Explicitly declare `APPLICATION_EXTENSION_API_ONLY` |
There was a problem hiding this comment.
Cool, maybe mention that this is specific to the CocoaPods installation?
|
@NachoSoto once this lands, would you be willing to publish a new release? That way I would be unblocked in making/landing the change to that other repo I mentioned. |
|
I don't think I have privileges to create a CocoaPods release, sorry. But hopefully somebody else can help with that. |
|
CC @mluisbrown @andersio re: the possibility of publishing a new release |
|
I can create a release. I will do it tomorrow 👍 |
|
@lickel 7.1.1 has been released. I did notice (too late to do anything about it) that the Podspec still has iOS 10 as the minimum deployment target, so you will still get warnings about that. |
|
Thanks! And ugh whoops sorry about missing that one. |

This explicitly declares that ReactiveSwift only uses extension safe APIs (and/or APIs in an extension-safe way).
The code was already extension safe; this just forward declares it and enforces it at compile time.
If I can enforce this here, then I can enforce it in Workflow which is heavily dependent on this library.
Without this explicit conformance, it is not straightforward to write CI validation that these libraries remain extension safe.
There is zero harm in explicit conformance. Non-extension applications can call into extension-safe libraries without any restrictions.
Checklist