Skip to content

Add shared Tauri Android and iOS client build paths - #21

Draft
LIghtJUNction wants to merge 7 commits into
mainfrom
feat/mobile-client-packaging
Draft

LIghtJUNction wants to merge 7 commits into
mainfrom
feat/mobile-client-packaging

Conversation

@LIghtJUNction

@LIghtJUNction LIghtJUNction commented Oct 22, 2026 •

Copy link
Copy Markdown
Contributor

Purpose

Reuse HireFerry's existing Tauri 2 desktop client for Android and iOS, with a single mobile WebView, a responsive launcher, and explicit build/release boundaries. This branch starts from main 16ceda1 and preserves the site GitHub/star/CSP changes.

Changes

  • Share desktop/mobile Rust entry points while retaining the existing desktop CLI flags and smoke-test path.
  • Validate server origins, restrict native commands to the local launcher, and provide a fixed, parameter-free return-to-settings route.
  • Add Android APK/AAB and iOS simulator/device build orchestration to scripts/mobile.py, platform configuration overlays, and a mobile build workflow.
  • Add a separate manual signing workflow. Android distribution requires the real keystore; iOS device distribution requires macOS/Xcode, a development team, signing identity, provisioning profile and export configuration.
  • Document email OTP login, the current system-browser OAuth session limitation, build prerequisites and exact artifact status.

Verification at this checkpoint

  • Python mobile orchestration tests: 7 passed.
  • Rust origin/navigation policy harness: 5 passed.
  • Locked Cargo metadata, Rust formatting, JavaScript syntax, JSON and workflow YAML checks passed.
  • Launcher browser checks at 393 × 852, 360 × 740 dark, and 768 × 1024: no overflow or JavaScript errors; primary controls at least 44 px high.
  • Android native build/emulator and iOS simulator jobs are the next verification gate; no native binary is claimed yet.

Distribution status

This PR's APK/AAB and simulator app, if CI succeeds, are engineering artifacts, not formal releases. It does not add unavailable downloads to the website or claim App Store / Play Store publication, a signed IPA, notarization, or physical-device verification.

Remaining before review

  • Resolve findings from independent navigation/storage review.
  • Inspect actual Android and macOS job results and fix platform build issues.
  • Record what was actually built and exercised, and retain explicit signing/account prerequisites.

CI maintenance update (2026-10-23)

  • Fixed the Android hardware-keyboard smoke path in b16a781: KEYCODE_ESCAPE dismisses input without sending the app to the launcher.
  • Fixed the login-return smoke path in 130d89e: Android now uses a BROWSABLE, explicit am start -W deep link and requires Status: ok.
  • Local verification on exact head 130d89ef9879308413d63e472256ed6fff63887f: python3 -m unittest tests.test_mobile (9/9), python3 -m py_compile scripts/mobile.py, and git diff --check all passed.
  • GitHub Actions run 39885106014: iOS simulator completed successfully. Android completed build, install, remote isolation, feedback, and warm login-return assertions, but attempts 2 and 3 were terminated by emulator ANRs while handling focus changes (FocusEvent waited 5001 ms; process exit-info recorded ANR/native crash). The Android job remains failed; no assertion or ANR check was weakened.

Reuse the desktop host with isolated mobile navigation, safe launcher return,
Android APK/AAB and iOS simulator/device build paths, signed release gates,
and truthful engineering artifact documentation.
Use the locked npm lifecycle when Xcode and Gradle re-enter Tauri, avoid
removed legacy Android SDK tools, and reject credential/query-bearing
server addresses before any local preference is saved.
Use the SDK's actual versioned package path and supported command-line tools,
collect the real iOS simulator architecture output, and add a parameter-free
app return signal without importing credentials or server URLs. Exercise the
Android launcher, remote navigation and native permission boundary.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant