feat: [SDK-4364] add .NET MAUI SDK support to Appium harness#32
Merged
fadi-george merged 10 commits intomainfrom Apr 25, 2026
Merged
feat: [SDK-4364] add .NET MAUI SDK support to Appium harness#32fadi-george merged 10 commits intomainfrom
fadi-george merged 10 commits intomainfrom
Conversation
sherwinski
approved these changes
Apr 24, 2026
fadi-george
added a commit
that referenced
this pull request
Apr 25, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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
Wires the shared Appium harness up to drive the .NET MAUI demo app (paired with OneSignal-DotNet-SDK#173). Linear: SDK-4364.
While in here, also picked off a handful of pre-existing flakes and rough edges that were biting across all SDKs.
Details
.NET MAUI support
run-local.shlearns adotnetSDK type alongsideflutter/react-native/cordova. Builds the demo viadotnet buildfor the right RID (iossimulator-arm64/iossimulator-x64/net10.0-android), with the same source-hash caching the other SDKs use so unchanged trees skip the build entirely. Splits the SDK + bindings into their own cached build pass so demo-only edits don't pay the SDK build cost.EmbedAssembliesIntoApk=true,AndroidUseFastDeployment=false) - without it monodroid aborts at startup with "No assemblies found" because Appium just installs the APK rather than running-t:Run.wdio.android.conf.tspicks per-SDKappActivity/appWaitActivityvalues; .NET MAUI's launcher activity iscrc64...MainActivityrather than the RN/Flutter conventions.helpers/selectors.tsadds a .NET-specific locator strategy (MAUI exposes accessibility ids differently from the others on Android).Cross-SDK fixes that fell out of running on .NET
03_iamwould occasionally try to act on a webview handle that had already been torn down by the time the assertion ran; now we re-query handles instead of caching them across awaits.setValueshim moved into the WebDriver proxy so it isn't sprinkled across specs.await pause(...)calls - they were masking real waits with arbitrary sleeps. Specs now wait on actual conditions.What is not changing
01_userthrough12_activity) is the same set that runs against the other SDKs.Testing
Ran the full suite locally end-to-end against:
flutter,react-native,cordova,dotnet) via./scripts/run-local.sh --platform=ios --sdk=<...>.--platform=android --sdk=<...>.All 12 specs pass on every combination, including
12_activity.spec.tsagainst the rebuilt .NET Live Activity widget extension from the companion PR.Made with Cursor