diff --git a/Xamarin.Forms.ControlGallery.Android/Xamarin.Forms.ControlGallery.Android.csproj b/Xamarin.Forms.ControlGallery.Android/Xamarin.Forms.ControlGallery.Android.csproj
index 34ebaa9faee..6435f0fe56f 100644
--- a/Xamarin.Forms.ControlGallery.Android/Xamarin.Forms.ControlGallery.Android.csproj
+++ b/Xamarin.Forms.ControlGallery.Android/Xamarin.Forms.ControlGallery.Android.csproj
@@ -65,12 +65,6 @@
armeabi-v7a,x86
true
-
- Full
- False
- True
- armeabi-v7a,x86
-
diff --git a/Xamarin.Forms.ControlGallery.iOS/Xamarin.Forms.ControlGallery.iOS.csproj b/Xamarin.Forms.ControlGallery.iOS/Xamarin.Forms.ControlGallery.iOS.csproj
index e1b9736bab4..09fe8aac06d 100644
--- a/Xamarin.Forms.ControlGallery.iOS/Xamarin.Forms.ControlGallery.iOS.csproj
+++ b/Xamarin.Forms.ControlGallery.iOS/Xamarin.Forms.ControlGallery.iOS.csproj
@@ -96,6 +96,9 @@
Entitlements.plist
true
+
+ Full
+
diff --git a/Xamarin.Forms.Platform.iOS/CollectionView/CarouselViewRenderer.cs b/Xamarin.Forms.Platform.iOS/CollectionView/CarouselViewRenderer.cs
index 62aafb9d51e..c8eebf58eba 100644
--- a/Xamarin.Forms.Platform.iOS/CollectionView/CarouselViewRenderer.cs
+++ b/Xamarin.Forms.Platform.iOS/CollectionView/CarouselViewRenderer.cs
@@ -1,4 +1,5 @@
using System.ComponentModel;
+using Foundation;
namespace Xamarin.Forms.Platform.iOS
{
@@ -6,6 +7,7 @@ public class CarouselViewRenderer : ItemsViewRenderer Element;
+ [Preserve(Conditional = true)]
public CarouselViewRenderer()
{
CarouselView.VerifyCarouselViewFlagEnabled(nameof(CarouselViewRenderer));
diff --git a/Xamarin.Forms.Platform.iOS/LinkerSafeAttribute.cs b/Xamarin.Forms.Platform.iOS/LinkerSafeAttribute.cs
new file mode 100644
index 00000000000..00aff5a7390
--- /dev/null
+++ b/Xamarin.Forms.Platform.iOS/LinkerSafeAttribute.cs
@@ -0,0 +1,14 @@
+using System;
+using System.ComponentModel;
+
+namespace Xamarin.Forms.Internals
+{
+ [AttributeUsage(AttributeTargets.All)]
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ class LinkerSafeAttribute : Attribute
+ {
+ public LinkerSafeAttribute()
+ {
+ }
+ }
+}
\ No newline at end of file
diff --git a/Xamarin.Forms.Platform.iOS/Properties/AssemblyInfo.cs b/Xamarin.Forms.Platform.iOS/Properties/AssemblyInfo.cs
index c915edc4b30..9d373106c20 100644
--- a/Xamarin.Forms.Platform.iOS/Properties/AssemblyInfo.cs
+++ b/Xamarin.Forms.Platform.iOS/Properties/AssemblyInfo.cs
@@ -59,4 +59,4 @@
[assembly: Xamarin.Forms.Dependency(typeof(Deserializer))]
[assembly: Xamarin.Forms.Dependency(typeof(ResourcesProvider))]
[assembly: ResolutionGroupName("Xamarin")]
-[assembly: Preserve]
\ No newline at end of file
+[assembly: LinkerSafe]
\ No newline at end of file
diff --git a/Xamarin.Forms.Platform.iOS/Renderers/ButtonRenderer.cs b/Xamarin.Forms.Platform.iOS/Renderers/ButtonRenderer.cs
index 3ab36a98765..05779f0f5c4 100644
--- a/Xamarin.Forms.Platform.iOS/Renderers/ButtonRenderer.cs
+++ b/Xamarin.Forms.Platform.iOS/Renderers/ButtonRenderer.cs
@@ -8,6 +8,7 @@
using Xamarin.Forms.PlatformConfiguration.iOSSpecific;
using Specifics = Xamarin.Forms.PlatformConfiguration.iOSSpecific;
using SizeF = CoreGraphics.CGSize;
+using PreserveAttribute = Foundation.PreserveAttribute;
namespace Xamarin.Forms.Platform.iOS
{
@@ -35,6 +36,7 @@ public class ButtonRenderer : ViewRenderer