Repository navigation
iOS Extensions #3289
|
Is it possible to create iOS Extensions with .NET MAUI? |
Replies: 39 comments 102 replies
|
i'm also very interested in the story for iOS extensions with .NET MAUI. i couldn't find anything in the wiki @davidortinau |
|
Also casting my vote for this. I cannot migrate from Xamarin to Maui until iOS Extensions are supported. Edit: I've tried digging to find out if this is on the roadmap, but must have missed it if so. Would love for anyone on the team to simply reply and confirm if this is part of the plan or not. Otherwise, I will need to consider moving off of Xamarin/Maui :( |
|
According to @davidortinau this should be possible today: https://twitter.com/davidortinau/status/1529970664467226625 Looks like this is the PR that David is referring to: #5218 and it has some instructions on how to use it |
|
Did anyone find a solution for this ? |
|
This is also the biggest issue holding us back from migrating to Maui as well. iOS extensions are a big part of our applications |
|
Adding my +1 - this is our biggest blocker toupgrading, and I don't see this on the .Net 7 roadmap either. We specifically use an "action extension". |
|
The lack of ios extensions blocks everyone from updating to MAUI who is using pictures in ios notifications (using a notification service extension). |
|
I found a solution, I will publish a solution in the morning! |
|
Does the above solution from the link work? I've tried the same steps as the repo but wasn't able to build with the notification extension project reference added to the main project file. |
|
Did anyone success with Notification Service Extension? I tried every link I can find but no success |
|
Because of this issue, I had to switch from MAUI to Xamarin, and now to ReactNative. it is a pity that MS did not have time to make the tools. I hope that in .NET8 this will be fixed. |
|
Is there any way to integrate a Share Extension in an Android and Ios Project without spliting theam? |
|
@VladislavAntonyuk Please do one video on how to add service extension and content extension..it will be helpful for many |
|
@VladislavAntonyuk (or anyone). I have implemented this and it works, but I do not get the shared url or text in the receiving app. Not even in the share does the debug breakpoint is hit. I have created IDs for both the main app and the extension in the apple developer portal and also created a group and assigned both of them to it. I have uploaded the solution here: https://ix-pubshare.s3.us-west-2.amazonaws.com/testapp1solution.zip Basically, I want the main app to be able to receive share Urls and text from other apps through the iOS share function. |
|
The ditto error comes when compile with Visual Studio in the Windows but it compile ok with Visual Studio Code in the Mac |
|
Has anyone updated to .NET 9 and found that extensions stopped working on physical devices? I had .NET 8 with MAUI 8.0.92 and updated to .NET 9 with MAUI 9.0.90 since Google (Android) now requires API 35, but when I select an action, nothing happens. I can see the extensions, but they don’t do anything. I have a Console.WriteLine in ViewDidLoad but it never reaches that point. On iOS emulators (18.5/18.4) it works fine. I have an iPhone 8 with iOS 16.7.11 and an iPhone 14 with iOS 18.5, and on neither of them does it work. Some tests:
For now, I could keep using .NET 8, but it’s really time to start moving to .NET 9. |
|
Appstore just approved my MAUI dotnet 9 app with share extension. My app critically needed this functionality, especially when taking screenshot and sending to my app for AI OCR scanning. I'm so excited! ScreenRecording_08-06-2025.00-26-07_1.mp4 |
|
In iOS 26 looks like share extension project crashing, investigating why... |
|
Is anyone getting FileProviderExtension working. Edit: We got it now appearing in locations Both the DocumentPickerExtension And the DocumentFileProviderExtension must be included. This is mentioned nowhere and shows that Apple is the worst company. When I tab on it, a white screen with a silly apple spinner pops in and disappears after 1 second. Is there any working sample to look into |
|
I've tried to follow Vladislav's template but when I build and have a look inside my folder: E:\Dev\Projects\Maui\MyApp.ShareExt.StripDown\ShareExtension.iOS\bin\Debug\net9.0-ios\ios-arm64\ShareExtension.iOS.appex All the files contained within have 0 bytes. Below are my host and extension project files. I've checked the following multiple times over and can confirm they are correct.
Any ideas as to why this is happening? MyApp.csproj ShareExtension.csproj |
@VladislavAntonyuk Yeah, no. At least not with Visual Studio 2026 - as Xamarin does not exist anymore. Also, this "solution" has the problem that the other targets will complain because a project reference to an iOS extension is incompatible with Android, Windows and MacOS Catalyst. I find this lack of an official solution very ... disturbing. |
|
Background: We've managed to make a small MAUI iOS & Android application to wrap a PWA (.net 9.0-ios). I started looking into supporting images with our push notifications on iOS a few days ago, as I noticed it was apparently possible. But we had to make a "Service Extension". My heart sank, as iOS is always the most problematic side of the mobile coin for us. TLDR, I really appreciate this thread, there was a lot of great information posted. I did however get the bottom and notice now that ".. you need to use macOS to build your project. It doesn't work well if you build from windows." My heart sank further .. Although after hacking around and using bits of info from here .. dotnet/macios#24052 .. I've managed to build the extension as a sub-project into my main MAUI application, looking into the main application deployment cache it now exists in a /Plugins/NotificationServiceExtension.appex directory! (which I found out is the same structure as is used for macOS extensions). UPDATE: 27/02/2026 OMG .. it started working!! The final issue was the build process ... If I can actually get this into a production solution I'll write the entire thing up! |
|
I've had another go at my project, trying to incorporate ideas from @VladislavAntonyuk and @bnSonic into my csproj files. I'm now working fully on VS Code Mac. The Share Extension is now working on the simulator, but not on a release build I deployed to TestFlight. When I look in the Release bin folder, I can't see any Plugin folder, nor appex file. Any ideas? (Btw I also tried the suggestion from @MarkMcCormackSF , trying out MtouchExtraArgs, UseInterpreter..etc. to no avail) Here is my latest host csproj file: and here is the ShareExt csproj file: |
|
After months of returning to this issue time and time again, only to repeatedly fail, I believe I have finally solved the problem. The command line I have been using to publish my app is this:
For some reason it wasn't generating the extension binaries for the release build. By changing it to:
...it finally works in TestFlight and, though I don't want to speak too soon and jinx it, hopefully it will work in production too. Thanks to all the contributors above, every bit of information helped get me at least one step closer to the final answer. I hope my contributions here can also be of some help to others who have been facing the same problems. This is the final piece of the puzzle in my port from Xamarin to Maui. It's taken around a year for my Maui app to finally achieve par with its Xamarin predecessor, and I have to say, it has been an extremely painful experience, and one which I feel shouldn't have been so hard. In light of this, I'd like to leave a final word to the Maui team. I know you guys work hard on the framework, and there have been some amazing things you have done to get it to where it is today. I also follow your YouTube channels and love the enthusiasm you bring to evangelizing Maui and letting us all know about ways the framework can best be used. But at the same time, if official support was provided for features like this shared extension, which I feel is baseline iOS functionality, it would have saved me, and I'm sure a large number of other developers a lot of pain. It has been disappointing that at least 3 years after Maui's official release, there is still no official pathway to port such a feature from Xamarin. Features like this, which directly affect an app's users, are far more important than new features that can make a developer's life easier, but which give no tangible benefit to the end user. Anyway just my two cents. Thanks again to all. |
|
I'm using the iOS broadcast template provided by @VladislavAntonyuk with .NET 10 and VS Code, after I struggled for few weeks, I finally can get my extension runs on my ipad. But the ProcessSampleBuffer function getting call with video data every 6 seconds +. I can see a lot of these messages from Console. default 08:34:19.121418+0000 replayd <<<< FigVirtualDisplayProcessor >>>> fvdp_ensureWritebackPixelBuffer: frame size: I have tried to build the same with swift, the extension just works fine and no such message appears. Would anyone experienced on this and help? |
|
I just did full trimming on my extension project, and reduced 40mb of size |
|
For anyone who ends up facing this issue: I have an iOS Call Directory extension, which is more constrained than other extensions because it has a strict 12MB memory limit. After upgrading my project to .NET 9, I encountered many issues—the extension kept crashing or failing to connect.
Eventually, I switched Here is my final configuration: Hope this help! |
|
FYI, for anyone investigating this, the appex system is now broken in VS2026 and .NET 10. I previously had mine working with the advice in this thread in VS2022 and .NET 9, but as soon as switched to .NET 10 & VS2026 it broke. This is a known issue as per: No word yet on when it might be fixed it seems. |
|
FIY: For anyone who ends up dealing with this, I decided to rewrite all iOS extensions in native Swift and embed them into the MAUI projects. This approach works with any kind of extension, is faster, provides native support, and avoids getting stuck with issues like this. Trade-off: Of course, it’s not C#, and you can’t reference shared projects. However, I don’t think this will be an issue for most of our use cases. |





https://vladislavantonyuk.azurewebsites.net/articles/Extend-.NET-MAUI-application-with-iOS-Extensions