-
Notifications
You must be signed in to change notification settings - Fork 431
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
Explicit extension safety flag #866
Conversation
@@ -1512,6 +1512,7 @@ | |||
isa = XCBuildConfiguration; | |||
baseConfigurationReference = D047262919E49FE8006002AA /* Debug.xcconfig */; | |||
buildSettings = { | |||
APPLICATION_EXTENSION_API_ONLY = YES; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Oh sorry, I didn't have the XCConfig submodule setup correctly. I've reverted this.
CHANGELOG.md
Outdated
@@ -2,6 +2,7 @@ | |||
*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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Cool, maybe mention that this is specific to the CocoaPods
installation?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done!
@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