Conversation
Adds a manually-triggered workflow (release-apps.yml) that: - Builds a signed Android AAB and deploys to Google Play Internal Testing - Builds a signed iOS IPA and deploys to TestFlight - Uses GitHub environments (android-release, ios-release) for deployment gates - All signing config is passed via -p: MSBuild properties (no csproj changes) - Version and build number are specified as workflow_dispatch inputs Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
After uploading to TestFlight, the workflow now: 1. Generates a JWT for the App Store Connect API 2. Looks up the 'MAUI Team' beta group 3. Polls until Apple finishes processing the build (up to 30 min) 4. Adds the build to the external tester group Uses the same APPSTORE_* secrets — no new secrets needed. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Build number now auto-increments via run_number. Can still be overridden by providing a value in the workflow_dispatch input. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Build number = github.run_number + offset. Offset defaults to 0 (from repo variable BUILD_NUMBER_OFFSET) and can be overridden per-run via the build_number_offset input. This guarantees strictly increasing build numbers even after manual overrides. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Runs daily at 06:00 UTC but skips if no commits in the last 24 hours. Manual dispatch always releases. Scheduled runs use the APP_VERSION repo variable (or default 1.0.0) since there's no input prompt. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
When a Direct Connection fails on Apple platforms (Mac Catalyst/iOS), the exception message contains raw NSUrlSession status codes like 'net_webstatus_ConnectFailure' instead of human-readable text. Add ErrorMessageHelper.Humanize() to translate known platform-specific error patterns into user-friendly messages. Applied at all user-facing error display points: Dashboard init, Settings reconnect, SendAsync errors, and SessionErrorEvent handling. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
90081a3 to
10a37f3
Compare
…tatus_ The previous commit missed the Dashboard.HandleError path — errors from WsBridgeClient.OnError pass raw strings that weren't humanized. Also add: - Catch-all for unrecognized net_webstatus_* codes - 'No route to host', 'Host is down', 'Name or service not known' patterns - Tests for all new patterns Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
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.
Bug
When a Direct Connection fails on Apple platforms (Mac Catalyst/iOS), users see a raw platform error string like
net_webstatus_ConnectFailureinstead of a human-readable message.Root Cause
Apple's NSUrlSession embeds
WebExceptionStatusenum values in exception messages. The app was showingex.Messagedirectly at all error display points (Dashboard init, Settings reconnect, SendAsync errors, SessionErrorEvent).Fix
Added
ErrorMessageHelperutility that translates known platform-specific error patterns into user-friendly messages:net_webstatus_ConnectFailure→ "Connection refused — the server is not reachable..."net_webstatus_NameResolutionFailure→ "Could not resolve the server address..."net_webstatus_Timeout→ "Connection timed out..."Applied at all 5 user-facing error display paths.
Tests
ErrorMessageHelperTests.cscovering all platform error patterns, case insensitivity, exception unwrapping, and passthrough of normal messages