Avoid KVO on CALayer by introducing an Apple PlatformInterop #30861
+935
−135
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description of Change
On a recent
macios
workload, a regression caused issues withWeakReference
s bringing lots of crashes in our app, all tied toKVO
s.So, once again I felt the fragility of key-value-observers.
This PR introduces an
.xcframework
for Apple platforms which could really help in the future also for other purposes.For now, I
swizzle
dCALayer.setBounds
methods and added a newplatformAutoresizingMask
property.This enables us to do things like:
Where the extension method is simply doing:
... I could have added
ApiDefinition.cs
C# binding, but I didn't want to expose those symbols publicly.Security
For security concerns, the MAUI team should use the attached script to re-build the
.xcframework
and commit that on my behalf like we did with Android in the past.This is how the project looks like: