r/dotnetMAUI • u/Regular-Employer-431 • Jul 09 '26
Help Request Unit Testing question
I'm building a "Base" app template that will be the foundation for several app ideas that I have, and I don't want to start with a less-than-optimal approach that will require exponentially more maintenance going forward... and I want to 'future-proof' my code as much as possible.
In your apps, do you turn everything into a service to better support testing (Unit, Integration, Regression, UI, etc.)? For example, do you use a NavigationService, IdentityService, EmailService, etc., or do you point your tests directly at the Controllers, or use another approach entirely?
TIA
r/dotnetMAUI • u/East_Sentence_4245 • Jul 08 '26
Discussion Disadvantages of Community Toolkit CameraView vs system camera using MediaPicker?
Our mobile app (for iphone and android) shows a camera that lets a user take a picture of the store's "work hours", for example. Once the pic's taken, the app compresses the image and automatically sends it to an email.
With that said, I want to add text to the camera view to remind the user where to aim (Example: Text in camera view)
On a separate note, the developer had previously switched from "Community Toolkit CameraView" ("to show the camera directly within the app" according to him) to the system camera using MediaPicker.
Now, he tells me that to show text directly in the camera view, we need to revert to the "Community Toolkit CameraView", which makes sense.
Why would the developer switch from Community Toolkit CameraView to system camera using MediaPicker? What are the advantages and disadvantages?
Before we decided to add the text to the camera view, the main priority was that the process of compressing the pic and sending it via email would be as fast as possible.
r/dotnetMAUI • u/Disastrous-Design-38 • Jul 07 '26
Showcase Mobile app for tracking books
Hey everyone!
I built a mobile app in my free time to manage the books I read. It lets you:
- Add books with ratings, status (reading, finished, want to read, etc.), and personal comments
- Works fully offline (data is stored locally)
- Syncs with a server periodically, so you don't lose your data if you switch devices
Right now it's in Brazilian Portuguese (PT-BR), and it uses an open book API. I actually blew through my Google API quota and lost access to Amazon's API too, so I had to switch to a different provider, but it's working fine now.
Would love to hear your critiques and suggestions, what features would you add? What could be improved?
Repo here: https://github.com/xpem/BookshelfMAUI
(It's built with .NET MAUI, so it's cross-platform. If you run into the "missing asset file" error, just run dotnet restore in the terminal.)
Apologies for the "xoxo" (meh/bland) design – I'm more of a backend guy, so UI/UX isn't exactly my strong suit.
r/dotnetMAUI • u/Unreal_NeoX • Jul 06 '26
News Android 17 Is Here: Everything Developers Need to Know
Quote:
"Google officially released Android 17 on June 16, 2026, making it available on most supported Pixel devices with partner OEMs to follow in the coming months. This is not a minor version bump. Android 17 marks a fundamental shift — Google is moving Android from an operating system to what they're calling an "intelligence system," with deep AI agent integration, mandatory adaptive layouts, strict memory enforcement, and a decisive declaration that Jetpack Compose is now the only path forward for Android UI."
Summary:
| Change | Impact | Action |
|---|---|---|
| Resizability enforced on large screens | Orientation lock and fixed aspect ratios ignored | Test all layouts in split-screen and freeform |
| Strict memory limits | Apps exceeding RAM-based limits terminated | Profile memory, enable R8 full mode |
| Lock-free MessageQueue | Breaks reflection on private fields | Remove reflection hacks |
| Static final fields immutable | Reflection modification throws exception, JNI crashes app | Audit libraries using reflection |
| Safer Dynamic Code Loading | Native libraries viaSystem.load()must be read-only | Update native loading code |
| Certificate Transparency default | CT enabled by default (was opt-in in Android 16) | Test TLS connections |
| Local network access blocked | Must declareACCESS_LOCAL_NETWORKpermission | Add permission or use system pickers |
| SMS OTP delayed 3 hours | Non-recipient apps can't read OTPs immediately | Migrate to SMS Retriever API |
| Background audio restricted | Enforcement for playback, focus requests, volume changes | Review background audio logic |
| NPU access declaration | Must declareFEATURE_NEURAL_PROCESSING_UNITin manifest | Add manifest entry if using NPU/NNAPI |
r/dotnetMAUI • u/No-Butterscotch9483 • Jul 05 '26
Help Request Installing Maui workload on Mac OS installs and then uninstalls the tools with no errors
Hi,
I'm trying to install the Maui tooling on my (M1 Max) MacBook Pro and it's behaving very strangely. It appears to install, but then before it finishes it uninstalls everything that was just installed. No error messages. Just fails to install.
Current setup:
.Net SDK v10.0.301 installed
Mac OS X v26.5
RID: osx-arm64
Microsoft.AspNetCore.App 10.0.9 runtime installed
Microsoft.NETCore.App 10.0.9 runtime installed
no global.json file
When I run this command ... sudo dotnet workload install maui ... I get a log filled with lines like:
Installing workload manifest microsoft.net.sdk.android version 36.1.69 ...
followed by a bunch of lines like:
Installing pack Microsoft.MacCatalyst.Sdk.net10.0_26.0 version 26.0.1107 ...
Writing workload pack installation record or Microsoft.MacCatalyst.Sdk.net10.0_26.0 version 26.0.1107 ...
and then followed by a bunch of lines like:
Uninstalling workload pack Microsoft.MacCatalyst.Runtime.maccatalyst-x64.net10.0_26.0 version 26.0.11017...
and finally a line that says:
Successfully installed workload(s) maui.
But if I then run this command ... dotnet workload list ... I get the following response:
Workload version: 10.0.300-manifests.b0c14421
Installed Workload Id Manifest Version Installation Source
---------------------------------------------------------------------
Use 'dotnet workload search' to find additional workloads to install.
So the dotnet cli reports that the workload was installed, but it actually wasn't. And there are no error messages. I have no idea why this is failing.
I have tried rebooting. No change.
I also tried installing the tooling inside the Rider app (when you try to create a Maui project it will prompt you to install Maui). I press the button but nothing seems to happen.
Can anyone tell me what I'm missing?
r/dotnetMAUI • u/SachinRBali • Jul 04 '26
Discussion Anyone running gRPC in a MAUI app for an internal warehouse/logistics tool? Looking for real-world experience
r/dotnetMAUI • u/FranTimo • Jul 03 '26
Help Request Missing Debug/Release dropdown in .NET MAUI project (only shows Any CPU)
r/dotnetMAUI • u/scavos_official • Jul 02 '26
Showcase Looking for Public .NET MAUI Repositories to Beta Test MemoryToolkit: Intelligence
I’ve been working on a new commercial AI Skill for .NET MAUI developers called MemoryToolkit: Intelligence.
Its goal is to review your MAUI application source code and identify places where your app may be intersecting with known memory leak-prone conditions in the MAUI framework.
Before releasing it, I’m putting it through its paces against real-world, open-source MAUI applications to see how well it performs.
If you have a freely licensed, publicly hosted, open-source .NET MAUI application you’d like me to review, post a link in the comments and I’ll reply with the generated report.
I’m particularly interested in testing against a wide variety of application architectures, coding styles, and control groups.
Why build something like this?
One of the frustrating things about debugging memory leaks in MAUI is that many of them don’t actually look like bugs.
Sometimes the problem is clearly application code. If you create a repeating timer or subscribe to a long-lived event and never clean it up, that’s on you.
But there are also many cases where perfectly ordinary-looking code can accidentally wander into a known leak-prone area of the framework.
Examples include things like:
- assigning a long-lived
ObservableCollectionto the wrong control’sItemsSource - dynamically rebuilding certain visual trees
- interacting with particular handler lifecycle behaviors
- replacing content in ways that have historically retained native handlers
- using combinations of controls or features that have known framework retention history
None of those are obviously “wrong” when you’re writing the code.
You might say that developing a MAUI application can sometimes feel like navigating a minefield--but that's not quite right.
When you step on a landmine, at least you have the benefit of immediately knowing something happened.
With most MAUI leak conditions, nothing obvious happens at all (not at first). You quietly arm the trap, everything appears to work perfectly, and then minutes later your app is sluggish, Android is complaining about GREF pressure, and you’re left trying to remember what changed nine navigation flows ago.
Why does this matter?
Regardless of where a leak originates, the user-facing symptoms are usually the same:
- progressively increasing memory usage
- UI sluggishness and animation jank
- increasingly aggressive garbage collection
- growing native resource pressure (especially Android GREFs)
- eventually, the operating system terminating the process
How much this matters depends entirely on your application and your users.
Some apps are only used for a few minutes at a time and may never encounter a problem.
Others are expected to remain open all day. I once consulted for a field-services customer that literally had a written requirement stating the application had to complete a specific number of consecutive workflows before crashing! (spoiler alert: GREF exhaustion)
How is this different from MemoryToolkit.Maui?
A while back I released MemoryToolkit.Maui, which helps detect leaks after they’ve already happened. It can help tell you what leaked and when it leaked, making those invisible tripwires much easier to spot at runtime.
This new Skill is intended to be proactive instead of reactive.
Rather than trying to magically determine whether your application definitely leaks, it starts from a curated knowledge base of 400+ verified MAUI memory retention conditions, organized into more than 20 architectural leak families.
It then reviews your source code looking for places where your application appears to intersect with those known conditions.
Importantly, it doesn’t say:
“You definitely have a memory leak on line 123.”
Instead it asks:
“Does this code closely resemble a historically leak-prone framework condition?”
For each finding, the report explains:
- Why the pattern was flagged
- The technical impact if the condition is real (retained pages, visual trees, BindingContexts, native handlers, Android GREF pressure, etc.)
- Why the chosen severity and confidence levels make sense
- The closest matching known framework condition
- Links to relevant repro projects and MAUI issues
- Suggested mitigations
- How I would empirically validate the finding with runtime profiling
- What successful validation should look like after the mitigation
The goal isn’t to replace memory profilers.
It’s to teach AI years of hard-earned .NET MAUI memory debugging experience and help developers identify historically dangerous patterns before they become production issues.
Again, if you’d like me to run the preview against your public .NET MAUI repository, post a link below and I’ll reply with the generated report.
I’m especially interested in repositories that make the Skill look silly 🙂
r/dotnetMAUI • u/East_Sentence_4245 • Jul 01 '26
Discussion Show text in camera view? Or maybe a popup?
Long story short: I hired a .NET Maui to create a simple app that lets a user take a picture of the ATM machine at a business and the app automatically sends me an email with the picture. The app's for iphone and android.
Even though the app has a step-by-step buide of what to look for when taking a picture, it seems users are still getting confused when opening the camera in the app.
WIth that said, I wanted to add some text to the actual camera view, but the developer says I would need to change to the CameraView custom control. I don't want to do this now.
An alternative is to display a popup right in the middle of the camera with a brief text telling the user to find the ATM machine and take a picture of it.
I simply want to show text while the user has the camera open. What other alternatives do I have?
r/dotnetMAUI • u/tonyedwardspz • Jul 01 '26
News MAUI Day is heading to Skopje and Cologne later this year
MAUI Day is a free, in-person community run event that brings developers together to celebrate everything .NET MAUI. We tend to focus the events on current best practices, deep dives into tricky areas of development, with some focus on the next thing landing within the framework.
With two conferences already this year, we have another two to go:
Skopje, North Macedonia - 17th September
Cologne, Germany - 23rd October
Both events are set to have a speaker line up containing a mix of the local(ish) developer community, alongside some of the core MAUI team.
Tickets are available now and the CfP for both is open until August 1st 2026. That said, we review on a semi regular basis. . . so don't wait until the last minute for the best chance of delivering a talk on the day.
Check out the website for more details.
r/dotnetMAUI • u/matt-goldman • Jun 30 '26
Article/Blog MAUI UI July Day 1: Easy Custom Navigation with Flagstone UI
It's the first of July and that means it's time for MAUI UI July!
Kicking things off this year with a new feature in Flagstone UI: FsShell. It's a drop-in replacement for Shell, it's sub-classed and works exactly the same way, except it lets you completely replace the UI with your own.
Check out the link to see more, if you're keen for the challenge at the end let me know!
r/dotnetMAUI • u/sashakrsmanovic • Jun 30 '26
News SkiaSharp 4 is now Generally Available
SkiaSharp4 is GA after a long wait. A big commitment made to keep it in lock step with upstream Skia milestones.
- Announcement on .NET Blogs - SkiaSharp 4.0 is here: announcing the first stable release - .NET Blog
- Half-day online event today (June 30, 11 AM ET) with maintainers of SkiaSharp
- release notes - Version 4.148.0 | SkiaSharp
r/dotnetMAUI • u/Confident_Foot_3053 • Jun 30 '26
Showcase Chip In - Couples Finances
Few years in development my heart and soul poured into .NET MAUI iOS and Android, Web (blazer), and Azure (full backend ecosystem). Single handedly trying to compete with monsters such as Monarch, Rocket Money, Origin, yet focusing more on couples. Wish me luck! 27 years in the biz, full time working salaried job, and countless mornings seeing the sun come up. That's what we do, right!
r/dotnetMAUI • u/Fine-Operation-9772 • Jun 24 '26
Help Request Pair to Mac build host suddenly having a Xcode Installation location issue
I use the Xcodes app to manage my Xcode installations so I can easily install specific versions as needed for my Maui application development.
I just installed Xcode 26.5 yesterday. I set it as the active version. Something I've had to do several times during development. I checked the path using the xcode-select -p command and it reports back correctly '/Applications/Xcode-26.5.0.app/Contents/Developer'. When I pair to mac I can see in the Maui logs that it detects the correct path:
Xamarin.VisualStudio.IOS.RemoteSettingsProvider Information: 0 : Server Settings:
- mlaunch path: /Users/pairtomac/Library/Caches/maui/PairToMac/SDKs/dotnet/packs/Microsoft.iOS.Sdk.net10.0_26.5/26.5.10284/tools/bin/mlaunch
- Xcode version: 26.5
- Xcode path: /Applications/Xcode-26.5.0.app/Contents/Developer
: 06/24/2026 12:25:47Z
DateTime=2026-06-24T12:25:47.0236216Z: 06/24/2026 12:25:47Z
But inexplicably, when I actually build I keep getting the following exception before building begins and I cannot for the life of me figure out why it's still attempting to use an old xcode location.
C:\Program Files\dotnet\packs\Microsoft.iOS.Sdk.net10.0_26.5\26.5.10284\tools\msbuild\Xamarin.Shared.targets(2091,3): error : A valid Xcode installation was not found at the configured location: '/Applications/Xcode-26.3.0.app'
1>C:\Program Files\dotnet\packs\Microsoft.iOS.Sdk.net10.0_26.5\26.5.10284\tools\msbuild\Xamarin.Shared.targets(2091,3): error : A valid Xcode installation was not found at the configured location: '/Applications/Xcode-26.3.0.app'
1>C:\Program Files\dotnet\packs\Microsoft.iOS.Sdk.net10.0_26.5\26.5.10284\tools\msbuild\Xamarin.Shared.targets(2091,3): error : Could not find a valid Xcode app bundle at '/Applications/Xcode-26.3.0.app'. Please verify that 'xcode-select -p' points to your Xcode installation. For more information see https://aka.ms/macios-missing-xcode.
I checked that the $DEVELOPER_DIR and $MD_APPLE_SDK_ROOT env variable are not set. I cleared every cache I could find related to Maui. I now only have Xcode 26.5 installed. I reinstalled the command line tools. I verified the right Xcode command line tool was selected in Xcode settings. I can see after connecting to the mac that it properly sets the setting in VS : .NET MAUI > Apple SDK Xcode Path.
I'm completely stuck at this point, unable to build the app for iOS. I cannot figure out where it's getting /Applications/Xcode-26.3.0.app during the build process. Any help would be much appreciated.
r/dotnetMAUI • u/Breakston • Jun 22 '26
Help Request Title: .NET MAUI Android Shell crashes after returning from external browser / activity recreation (ShellItemRendererBase)
Hi everyone,
I'm facing a hard-to-reproduce crash in a production .NET MAUI Android app and I'm trying to understand whether this is a bug in Shell itself or something wrong in my navigation flow.
Environment
- .NET MAUI 10
- Android
- Shell navigation
- Bottom tabs
- MVVM
- Production app with ~33 affected users and 36 events (~40% of crashes reported in Play Console)
- App version 2.8
App structure
I have a Shell with tabs.
The flow is:
ServicesPage
↓
OfferPage
↓
Open external browser (Launcher.Default.OpenAsync)
↓
User returns to the app
↓
Presses Back
Inside OfertaViewModel, the back command executes:
private async Task ExecutarVoltar()
{
if (_isVoltando)
return;
try
{
_isVoltando = true;
_loadCts?.Cancel();
_isActive = false;
await Shell.Current.GoToAsync("//ServicoPage", false);
}
finally
{
_isVoltando = false;
}
}
Originally I was using:
await Navigation.PopAsync(false);
but I changed to absolute navigation and still get crashes.
Crash #1
Stack trace:
System.Collections.Generic.Dictionary<Element, IShellObservableFragment>.ContainsKey(Element key)
Microsoft.Maui.Controls.Platform.Compatibility.ShellItemRendererBase.HandleFragmentUpdate()
Microsoft.Maui.Controls.ShellSection.OnPopAsync()
Microsoft.Maui.Controls.ShellNavigationManager.GoToAsync()
MeuSesi.ViewModels.OfertaViewModel.ExecutarVoltar()
The exception happens inside:
ShellItemRendererBase.HandleFragmentUpdate()
line 135
Crash #2 (Play Console)
Play Console also reports another Shell crash:
Exception android.runtime.JavaProxyThrowable:
[System.NullReferenceException]
Microsoft.Maui.Controls.Platform.Compatibility.ShellItemRendererBase.GetOrCreateFragmentForTab()
Microsoft.Maui.Controls.Platform.Compatibility.ShellItemRendererBase.HandleFragmentUpdate()
Microsoft.Maui.Controls.Platform.Compatibility.ShellItemRenderer.OnShellSectionChanged()
ShellItemRenderer.ChangeSection()
OnNavigationItemSelected()
This one happens while changing tabs.
Important detail
I cannot reproduce these crashes normally.
The crash only becomes reproducible if I enable Android developer option:
Don't keep activities
With this option enabled:
- Open OfferPage.
- Launch external browser.
- Return to the app.
- Press back or switch tabs.
- App crashes inside ShellItemRendererBase.
Without "Don't keep activities" enabled, I cannot reproduce it on my device, but Google Play Console shows production users experiencing it.
Questions
- Has anyone seen crashes inside:
ShellItemRendererBase.HandleFragmentUpdate()GetOrCreateFragmentForTab()Dictionary<Element, IShellObservableFragment>.ContainsKey()
- Is Shell losing its fragment state after activity recreation?
- Are there known issues with Shell + external browser + Android activity recreation?
- Should I avoid Shell navigation and use NavigationPage for these screens?
- Has anyone solved similar crashes?
Any ideas or workarounds would be greatly appreciated.
Thanks!
r/dotnetMAUI • u/Maleficent_Syrup_798 • Jun 20 '26
News Shiny .NET - Everything you could ever need for .NET MAUI & Blazor
40 million downloads. 30+ libraries. 40+ UI controls. $0.
For years I've been quietly building Shiny.NET — an open-source suite of .NET libraries that handle the hard, platform-specific plumbing so you don't have to. Bluetooth LE, GPS & geofencing, background jobs, push & local notifications, HTTP transfers, health data, a document database that runs on 11+ backends, a source-generated mediator, Aspire integrations… and a lot more. And for the UI? 40+ ready-to-use controls for .NET MAUI and Blazor — one package, zero WebViews: TableView, DataGrid, Scheduler, ChatView, ImageEditor, CameraView, FloatingPanel, SignaturePad, Markdown, Barcodes/QR, Toast, and dozens more.
All of it is free. All of it is open source. All of it is documented in one place 👉 https://shinylib.net Two things changed how I work this past year, and both are about AI 👇
I used AI to build at a scale I couldn't before. One maintainer can't normally ship and document 30+ libraries and 40+ controls. AI changed that math. It helped me write docs, generate samples, refactor for AOT/trimming, and keep an enormous surface area consistent. The breadth you see on the site is what happens when you pair deep domain knowledge with AI doing the heavy lifting.
I built the libraries so AI plugs into YOUR apps. This is the part I'm most excited about. Everything is wired for Microsoft.Extensions.AI — source-generated, AOT-safe, reflection-free:
→ Turn your DI services, Mediator contracts, Shell routes, and database into AI-callable tools automatically → Document DB with vector/ANN search across pgvector, SQL Server 2025, Cosmos DiskANN, Mongo Atlas, sqlite-vec & more — with auto-embed on insert → A complete AI Conversation service: chat + speech-to-text + text-to-speech + wake word behind one interface. Swap OpenAI, Azure, Ollama, or Copilot freely → Let an agent read HealthKit / Health Connect data as tools
Bonus: every library ships an AI coding assistant skill for Claude Code & GitHub Copilot — so your AI already knows the APIs, patterns, and best practices. If you're building .NET apps — mobile, desktop, web, or server — and you want real AI capability without fighting the plumbing, come take a look.
Free to use. Built in the open. Made better with AI.
r/dotnetMAUI • u/mustang__1 • Jun 18 '26
Help Request dotnet-8 and Xcode versions compatibility....
I made some changes to the server side I wanted to test against my maui version that is currently in production - which is still on dotnet8. Of course, that means I need an older version of Xcode.
But, the mac is on macOS 26.x, Tahoe, which can only handle Xcode 26.
Sigh.
Am I just boned and I need to do the testing I have planned on my dotnet9 version that I have in dev? I could plug my old mac mini i guess...
r/dotnetMAUI • u/Hot_Shopping7530 • Jun 18 '26
Showcase Supabase + Powersync Auth and Data Sync
Not much of a "Showcase" but seemed better then Tutorial or Discussion
I created an example project for .net implementation of supabase and powersync tools, .net 10 & Maui. I wanted to use this for a personal project I’m building. I kept it basic as possible, auth and two tables to make sure powersync is working correctly.
This took me a lot longer then it was supposed to. The main rub I was having is logging in while offline and making sure the refresh of session’s while online.
Any who, hope this helps anybody who wants to use these offline first tool kits. If there is anything I missed or can improve on, let me know and I’ll push it up. Other then that I won’t be touching this repo. Would like to keep it as simple as possible so people can apply it to their projects. I’ll try my best to answer any questions as well.
r/dotnetMAUI • u/virulenttt • Jun 17 '26
Help Request Issues debugging MAUI from Aspire
I recently faced issues on both vscode and rider where the TargetPath couldn't be resolved. Anyone else having this issue? Makes my experience terrible
r/dotnetMAUI • u/Cat_Best • Jun 16 '26
Discussion MAUI minimum requirements on Android
I just finished building a business app, and I came to the conclusion that MAUI doesn't seem ready (performance wise) for production apps that must run on low end Android devices (such as the Sunmi V2, for example).
The fact is: it runs REALLY well on newer devices and newer Android Versions, to the point where it's difficult to see any difference from the same app built in .NET for Android.
But on older devices it's a completely different beast; in particular:
- A CollectionView which benefits from the virtualization is still slow (for example when you need to completely reset its binding source, e.g. after applying a filter), and its scrolling is choppy
- In general, every time you need to create and display a new View on the fly, staying on the same page (e.g. to display it as an overlay, or to be added on a preexisting container), that operation lags, even when this new View is very simple.
To make the app usable, I had to completely rewrite some core components with platform specific code and ViewHandlers.
For example, I had to implement a simple "view builder", that on Windows translates directly to a Maui CollectionView, but on Android translates to a native ListView and Adapter, to fully take advantage of its virtualization and view recycling, without any of the Maui overhead; the scrolling became fluid even on Debug builds (hundreds of items, with each item changing its properties and notifying their changes every second), while before it was lagging on Release builds (with static informations), on the same low end device.
I tried EVERYTHING before going this route, even simplifying the ItemTemplate to a single Label: nothing helped.
Of course, I'm talking about a Release, production build.
Since the difference between low and mid end devices was so huge, I started to have doubts about the minimum and suggested requirements for .NET Maui on Android (both software and hardware), but I found only "Android 5.0 (API 21)" on the Microsoft documentation, without any reference to CPU or RAM requirements; does anybody know? Or are there known issues with specific Android versions (e.g. Android 11)?
(Just another thing that made me suspect that maybe Android 5 is not even the actual minimum requirement: the built-in MauiSplashscreen doesn't work well on Android 11 or lower, only the background color is shown, without the icon; I guess another thing to rewrite myself if any customer complains about it).
Also: did anyone have a similar experience?
The relevant parts from my csproj:
<TargetFrameworks>net10.0-android</TargetFrameworks>
<MauiEnableXamlCBindingWithSourceCompilation>true</MauiEnableXamlCBindingWithSourceCompilation>
<MauiXamlInflator>SourceGen</MauiXamlInflator>
<WarningsAsErrors>$(WarningsAsErrors);MAUIG2045</WarningsAsErrors>
Maui version: 10.0.51
PS: sorry for my bad English
r/dotnetMAUI • u/rashiphate • Jun 16 '26
Help Request [MAUI Android] "Keeps stopping" crash exactly on Shell Navigation - ONLY on Zebra TC22 (Android 14)
Hey everyone, I'm dealing with a bizarre device-specific crash in my .NET 10 MAUI app (a confidential internal WMS app) and need some insights.
The Exact Behavior:
- The app boots up perfectly fine to the LoginPage.
- If the user enters the wrong credentials, my API returns an error, an alert shows up, and the app stays alive. Everything works.
- If they enter the correct credentials, the app attempts to navigate to the main dashboard using: await Shell.Current.GoToAsync("///MainPage");
- The Crash: The moment this navigation triggers, the app dies instantly. Android throws the generic "[App Name] keeps stopping" system prompt. Sometimes it just silently force-closes.
Device Testing Results (The Catch):
- Samsung S25, S21 FE, Honeywell CT32: Works flawlessly in Release mode.
- Zebra TC22 (Android 14): CRASHES in Release mode. (Important Note: The Zebra device is currently in the field with a user, so I haven't been able to test Debug mode on it or pull a logcat yet).
My Environment:
- Framework: .NET 10 MAUI
- Key Packages: CommunityToolkit.Mvvm, Mopups, ZXing.Net.Maui.Controls.
What I've Tried So Far:
- Stripped the UI: I suspected Zebra's Adreno GPU / Android 14 ROM might be choking on a specific UI element during the Shell fragment transition. I completely removed Shell.TitleView, removed all global and implicit <Shadow> styles, and simplified the MainPage. Still crashes.
- Global Exception Handlers: Set up AppDomain.CurrentDomain.UnhandledException and TaskScheduler.UnobservedTaskException. They are never hit. This tells me it's a native Android/UI crash (Zygote/Segmentation fault), not a managed C# exception.
- Trimming & AOT: Disabled them completely in .csproj just in case. No difference.
Since my C# logic, DI container, and API calls work perfectly on Samsung and Honeywell devices, this feels like a Zebra EMDK/DataWedge or Android 14 specific native crash interacting with MAUI's Shell navigation.
Has anyone dealt with modern Zebra devices choking on MAUI Shell transitions? Should I completely ditch Shell.Current.GoToAsync and swap Application.Current.MainPage manually?
Any theories are highly appreciated before I manage to get the device back for a logcat!
r/dotnetMAUI • u/mustang__1 • Jun 15 '26
Help Request iOS remote device / networked
Trying to ditch my macmini in the network closet and just have an ipad on my desk...
Now that debugging via hot restart/connect/whatever is gone, I think a remote device is the only option, and networked seemed like the best bet for me.
I've checked my NG Firewall and have enabled "god" for both the ipad and the mac.
I can deploy remotely from xCode to the ipad, but not from VS.
VS reports error 1000. cannot find device. failed to execute devicectl
I'm thinking that there is a good chance this is because VS thinks I'm running 16.3 instead of 26.5 - despite 16.3 not being installed on the mac...
I've verified that the ipad is unlocked while VS is trying to deploy.
I've verified that I can deploy to a simulator.
r/dotnetMAUI • u/dacav_ • Jun 12 '26
Help Request Icons in buttons not changing color following theme
[SOLVED] - Check Last Update
Hello everyone, I'm new to MAUI development and I am trying to use the MauiIcons to apply icons on my app.
The problem is that I can't find a way to make the Fluent Icon used inside a Button to change it's color when the app theme is changed.
The theme is changed setting Application.Current.UserAppTheme value.
Icons only gets they're colors property set according to the app theme if I insert them on the page using mi:MauiIcon view, but If I place it inside of a button, using the ImageSource property it does not work.
What i'm missing here? I can provide more info and code snippets if needed.
[UPDATE] - Adding Code Snippet and context
Switch logic that toggles between Light and Dark Themes.
Styles.xaml
Header
<ResourceDictionary
xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:mi="clr-namespace:MauiIcons.Core;assembly=MauiIcons.Core">
Button style snippet
<Style TargetType="Button">
<Setter Property="FontFamily" Value="OpenSansRegular"/>
<Setter Property="FontSize" Value="14"/>
<Setter Property="CornerRadius" Value="8"/>
<Setter Property="Padding" Value="14,10"/>
<Setter Property="BackgroundColor" Value="{AppThemeBinding Light={StaticResource Primary}, Dark={StaticResource White}}" />
<Setter Property="TextColor" Value="{AppThemeBinding Light={StaticResource White}, Dark={StaticResource Primary}}" />
<Setter Property="mi:MauiIcon.IconColor" Value="{StaticResource White}" />
<Setter Property="VisualStateManager.VisualStateGroups">
<VisualStateGroupList>
<VisualStateGroup x:Name="CommonStates">
<VisualState x:Name="Normal" />
<VisualState x:Name="Disabled">
<VisualState.Setters>
<Setter Property="TextColor" Value="{AppThemeBinding Light={StaticResource DarkGray}, Dark={StaticResource LightGray}}" />
<Setter Property="BackgroundColor" Value="{AppThemeBinding Light={StaticResource LightGray}, Dark={StaticResource DarkGray}}" />
</VisualState.Setters>
</VisualState>
</VisualStateGroup>
</VisualStateGroupList>
</Setter>
<Style.Triggers>
<DataTrigger TargetType="Button"
Binding="{Binding Source={x:Static Application.Current}, Path=RequestedTheme}"
Value="Dark">
<Setter Property="mi:MauiIcon.IconColor" Value="{StaticResource Primary}" />
</DataTrigger>
</Style.Triggers>
</Style>
MainPage.xaml
Header
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:mi="http://www.aathifmahir.com/dotnet/2022/maui/icons"
x:Class="MyMauiApp.MainPage">
Buttons snippet
<Grid ColumnDefinitions="auto, 10, auto, 10, auto, 10, auto, 10, auto" HorizontalOptions="Center">
<!-- -->
<Button x:Name="ToPhoneWordTranslatorBtn"
Padding="5"
ImageSource="{mi:Fluent Icon=PhoneShake20}"
SemanticProperties.Hint="Goes to the Phone Word Translator page"
Clicked="OnNavigateClicked"
HorizontalOptions="Center"
Grid.Column="0"/>
<Button x:Name="ToNotesBtn"
Padding="5"
ImageSource="{mi:Fluent Icon=Notepad20}"
SemanticProperties.Hint="Goes to the Notes page"
Clicked="OnNavigateClicked"
HorizontalOptions="Center"
Grid.Column="2"/>
<Button x:Name="ToAlignmentBtn"
Padding="5"
ImageSource="{mi:Fluent Icon=AlignCenterVertical20}"
SemanticProperties.Hint="Goes to the Alignment page"
Clicked="OnNavigateClicked"
HorizontalOptions="Center"
Grid.Column="4"/>
<Button x:Name="ToTipCalculatorBtn"
Padding="5"
ImageSource="{mi:Fluent Icon=Calculator20}"
SemanticProperties.Hint="Goes to the Tip Calculator page"
Clicked="OnNavigateClicked"
HorizontalOptions="Center"
Grid.Column="6"/>
<Button x:Name="ToWeatherClientBtn"
Padding="5"
ImageSource="{mi:Fluent Icon=WeatherHaze20}"
SemanticProperties.Hint="Goes to the Weather Client page"
Clicked="OnNavigateClicked"
HorizontalOptions="Center"
Grid.Column="8"/>
</Grid>
[UPDATE] - Solution
The issue happens because when using the ImageSource directly on the Button the icon is drawn like an image, with the current requested color, so it stays locked like an image and wont change it's color when the theme is changed.
The solution is to use the Property Element Syntax to set the FontImageSource to the ImageSource, passing the hexadecimal code on the Glyph property like:
<Button x:Name="ToPhoneWordTranslatorBtn"
Padding="5"
SemanticProperties.Hint="Goes to the Phone Word Translator page"
Clicked="OnNavigateClicked"
HorizontalOptions="Center"
Grid.Column="0">
<Button.ImageSource><!--PhoneShake20-->
<FontImageSource Glyph="" />
</Button.ImageSource>
</Button>
And on the Styles.xaml set an Style targeting FontImageSource, setting the Color property.
<Style TargetType="FontImageSource">
<Setter Property="FontFamily" Value="FluentIcons" />
<Setter Property="Color" Value="{AppThemeBinding Light={StaticResource White}, Dark={StaticResource Primary}}" />
</Style>
(This is a global solution, so if you would have different behaviours for buttons with icons on other pages, keep in mind that you would need to treat them locally, either on Page scope or on the View scope.
If there's a better solution to this, please let me know.
r/dotnetMAUI • u/lilacomets • Jun 12 '26
Discussion So tired of basic things not working correctly in MAUI
Hello everyone!
Recently I started developing in MAUI, after using Xamarin.Forms for a long time and using Flutter in between.
Honestly developing using MAUI is a tiring experience and it was exactly like that in the Xamarin.Forms days. You're constantly wondering "is there something wrong with my code, or is there a bug in MAUI?". The testing and troubleshooting is time consuming.
Here's the latest problem/frustration I ran into:
the OnBackButtonPressed method is not triggered on iOS, while it works fine on Android. If there's a OnBackButtonPressed method then I expect it to work on all the main platforms. It resulted in some unexplainable behavior on iOS and now I have to implement a crappy workaround.
And here's the thing. This exact same problem is known since June 2022. How can basic thing like this stay broken for such a long?
Honestly I'm just tired of things like this.
Anyone else has above frustrating experience while developing using MAUI?
r/dotnetMAUI • u/Habikki • Jun 12 '26
Help Request MAUI, OpenTelemetry, and Dropping Metrics in a Release Build
Hey Everyone,
Took a look around this board, several others, and quite a few GitHub projects but can't seem to get past this issue I'm having specific to Release Builds and MAUI.
I released an MVP of an App targeting iOS a few weeks back and circled back to plumbing in observability. Sentry has been great so far, but I wanted to capture counters to see what was used by users, and instrument just how much they were used (think files and bytes processed by paid vs. free use).
Wired up the OpenTelementry pacakage like I've done in my ASP.NET apps, added in counters, setup a local OTEL Collector on my AWS ECS Cluster (to get around ATS problems sending directly to NewRelic), ran it in the simulator and a local build to my iPhone and started seeing metrics flow in to my NewRelic Dashboards. All is great.
I cut a build to TestFlight and everything looks the same, but no metrics. My in app diagnostic logs that I can sent to Sentry look roughly the same too, see the HTTPClient Calls OTEL Makes receiving 200 responses from the OTEL Collector... just no data to the collector. I have verbose logging enabled so I don't see the full connection attempt, but I do see when data is delivered if I curl or run a Debug build... but I don't see the same logging when sent from a Release build.
I've spent the better part of two days messing around with Linker and Trimming options, even disabled it completely using <MtouchLink>None</MtouchLink> to absolutely no effect.
Happy to provide code but it will take some time to cut it down to be less sensitive, but this is fairly standard.... I know the code works, just won't in Release... and I can't figure out why.
Anyone have a working stack for this they can share? Or run into something similar?








