Add .NET MAUI sample app#367
Conversation
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 5346aed430
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
Pull request overview
Adds a new .NET MAUI sample application (samples/Exceptionless.SampleMaui) demonstrating how to use the core Exceptionless client from a MAUI app via DI, including local file-based queue storage and file logging.
Changes:
- Introduces a MAUI sample app with a simple UI for sending handled exceptions, warning logs, feature usage, and flushing the queue.
- Adds platform-specific bootstrap files/manifests (Android/iOS/Mac Catalyst/Windows) plus app icon and splash resources.
- Registers the new sample project in
Exceptionless.Net.slnxunder the Samples folder.
Reviewed changes
Copilot reviewed 20 out of 23 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| samples/Exceptionless.SampleMaui/Resources/Splash/splash.svg | Adds MAUI splash screen vector asset. |
| samples/Exceptionless.SampleMaui/Resources/AppIcon/appiconfg.svg | Adds MAUI app icon foreground vector. |
| samples/Exceptionless.SampleMaui/Resources/AppIcon/appicon.svg | Adds MAUI app icon background/vector. |
| samples/Exceptionless.SampleMaui/README.md | Documents configuration and how to run/build the MAUI sample. |
| samples/Exceptionless.SampleMaui/Platforms/Windows/Package.appxmanifest | Adds Windows packaging manifest for the MAUI sample. |
| samples/Exceptionless.SampleMaui/Platforms/Windows/App.xaml.cs | Adds WinUI app bootstrap for MAUI. |
| samples/Exceptionless.SampleMaui/Platforms/Windows/App.xaml | Adds WinUI XAML application definition. |
| samples/Exceptionless.SampleMaui/Platforms/Windows/app.manifest | Adds Windows runtime manifest settings (DPI/long paths). |
| samples/Exceptionless.SampleMaui/Platforms/MacCatalyst/Program.cs | Adds Mac Catalyst entry point. |
| samples/Exceptionless.SampleMaui/Platforms/MacCatalyst/Info.plist | Adds Mac Catalyst app metadata. |
| samples/Exceptionless.SampleMaui/Platforms/MacCatalyst/Entitlements.plist | Adds Mac Catalyst entitlements (sandbox + network). |
| samples/Exceptionless.SampleMaui/Platforms/MacCatalyst/AppDelegate.cs | Adds Mac Catalyst app delegate for MAUI. |
| samples/Exceptionless.SampleMaui/Platforms/iOS/Program.cs | Adds iOS entry point. |
| samples/Exceptionless.SampleMaui/Platforms/iOS/Info.plist | Adds iOS app metadata. |
| samples/Exceptionless.SampleMaui/Platforms/iOS/AppDelegate.cs | Adds iOS app delegate for MAUI. |
| samples/Exceptionless.SampleMaui/Platforms/Android/MainApplication.cs | Adds Android application bootstrap for MAUI. |
| samples/Exceptionless.SampleMaui/Platforms/Android/MainActivity.cs | Adds Android main activity bootstrap for MAUI. |
| samples/Exceptionless.SampleMaui/Platforms/Android/AndroidManifest.xml | Adds Android manifest (internet/network permissions). |
| samples/Exceptionless.SampleMaui/MauiProgram.cs | Configures ExceptionlessClient (DI, storage, file logging, default tags/data). |
| samples/Exceptionless.SampleMaui/MainPage.cs | Implements the sample UI and event submission actions. |
| samples/Exceptionless.SampleMaui/Exceptionless.SampleMaui.csproj | Adds the MAUI project file with multi-targeting and project reference to core client. |
| samples/Exceptionless.SampleMaui/App.cs | Adds MAUI Application with queue processing on sleep. |
| Exceptionless.Net.slnx | Registers the new MAUI sample in the main solution. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: b43a40dbe1
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: c285036943
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| <?xml version="1.0" encoding="UTF-8"?> | ||
| <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> | ||
| <plist version="1.0"> | ||
| <dict> |
There was a problem hiding this comment.
Allow local HTTP traffic on iOS
When running the iOS target with the sample's default http://localhost:7110 server URL, requests are subject to ATS and will fail before events/config can reach the local Exceptionless server because this plist never opts into local clear-text traffic. The .NET MAUI local-web-services guidance calls out adding NSAppTransportSecurity with NSAllowsLocalNetworking for iOS local HTTP, while Android is already configured separately in its manifest: https://learn.microsoft.com/en-us/dotnet/maui/data-cloud/local-web-services?view=net-maui-10.0
Useful? React with 👍 / 👎.
Summary
samples/Exceptionless.SampleMaui, a .NET MAUI sample that uses the coreExceptionlessclient via MAUI DI.IncludePrivateInformation = false.http://localhost:7110for iOS, Mac Catalyst, and Windows;http://10.0.2.2:7110for the Android emulator; and an environment override for physical devices or custom servers.Fixes #366
Validation
dotnet build samples/Exceptionless.SampleMaui/Exceptionless.SampleMaui.csproj -f net10.0-maccatalyst -p:ValidateXcodeVersion=falsedotnet build samples/Exceptionless.SampleMaui/Exceptionless.SampleMaui.csproj -c Release -f net10.0-maccatalyst -p:ValidateXcodeVersion=false -p:RuntimeIdentifier=maccatalyst-arm64dotnet build samples/Exceptionless.SampleMaui/Exceptionless.SampleMaui.csproj -c Release -f net10.0-ios -p:ValidateXcodeVersion=false -p:RuntimeIdentifier=iossimulator-arm64Exceptionless.aotdata.arm64andExceptionless.SampleMaui.aotdata.arm64.EXCEPTIONLESS_SAMPLE_AUTORUN=true,EXCEPTIONLESS_API_KEY=TEST_API_KEY, andEXCEPTIONLESS_SERVER_URL=http://127.0.0.1:18181.GET /api/v2/projects/config?v=0.POST /api/v2/eventscontainingusage(MauiSample.TrackFeature, reference id8c2dac9145584824bc67f0466131bc94),log(Exceptionless.SampleMaui.MainPage, reference idf788aa00d1b84271999a34ea3f902fa4), anderror(reference id5bfd1b7325b94d2e96b45c6f73a84bb6) events.EXCEPTIONLESS_SAMPLE_AUTORUN=trueand no API key or server URL overrides against the real local Exceptionless AppHost.GET http://localhost:7110/api/v2/aboutreturned200.ServerUrl=http://localhost:7110and loggedSent 3 events to "http://localhost:7110".GET /api/v2/events?sort=-date&limit=10showed the submitted MAUI events:usage(MauiSample.TrackFeature, reference ida47a106724d0476285935e8f36548f4a),log(Exceptionless.SampleMaui.MainPage, reference id3a032ef3f2044e01a19b1818809ebdea), anderror(Exceptionless MAUI sample handled exception., reference id2b11511070f942fb9cf48e42376ef6cf).dotnet build Exceptionless.Net.NonWindows.slnxdotnet test Exceptionless.Net.NonWindows.slnx --no-buildLocal MAUI Toolchain Notes
net10.0-maccatalystbuilds are blocked on this machine because the installed .NET Mac Catalyst pack26.5.10284requires Xcode26.5, while this machine has Xcode26.6. The local validation above uses-p:ValidateXcodeVersion=falsefor that reason.net10.0-androidbuilds are blocked on this machine by missing Android SDK/JDK configuration:XA5300: The Android SDK directory could not be found.