Skip to content

iPadOS: build universal iPhone+iPad archive, allow multitasking#25

Merged
HiLleywyn merged 2 commits into
mainfrom
claude/fix-ui-ux-multidevice-4GV0U
May 9, 2026
Merged

iPadOS: build universal iPhone+iPad archive, allow multitasking#25
HiLleywyn merged 2 commits into
mainfrom
claude/fix-ui-ux-multidevice-4GV0U

Conversation

@HiLleywyn
Copy link
Copy Markdown
Owner

No description provided.

Lleywyn added 2 commits May 9, 2026 02:30
apps/mobile (new) — Capacitor 6 wrapper around the existing Vite
bundle. capacitor.config.ts points webDir at apps/web/dist; the
package's `build` script runs the web build then `cap sync`. The
Android and iOS native folders are gitignored on purpose because CI
re-scaffolds them every run (no Android/Xcode toolchain needed for a
plain `pnpm install` on the workspace). package.json scripts cover
the common flows: open Android Studio / Xcode, assemble debug APK,
xcodebuild archive (unsigned).

apps/desktop — restructured for Tauri 2 mobile.
- Split src/main.rs into a thin desktop bin and a shared lib.rs
  exposing `pub fn run()` annotated with `#[tauri::mobile_entry_point]`,
  so the same crate boots on macOS / Windows / Linux / Android / iOS.
- keyring is now under a target.cfg block so the iOS/Android builds
  don't pull in a desktop-only dep.
- tauri.conf.json updated to a self-contained icons list pointing at
  the freshly generated PNGs (32, 128, 256, 512). icon-source.png at
  1024 is the regen source for `tauri icon`. macOS minimum bumped to
  10.15.
- Marked src-tauri as its own [workspace] so the strict workspace
  Cargo.lock at the repo root doesn't try to manage Tauri's deps.

Brand assets — generated a Tempest gradient + "T" stroke icon using
pure-stdlib Python (no ImageMagick required) at apps/desktop/src-tauri/icons
and apps/mobile/resources, so CI has a source of truth without a
binary commit at first launch.

Workflows under .github/workflows:
- web.yml          — typecheck and build on every push / PR.
- desktop.yml      — Tauri build matrix on macOS arm64, macOS x86_64,
                     Ubuntu 22.04, Windows. Generates icons via
                     `tauri icon` before the build, collects
                     dmg / app.tar.gz / deb / AppImage / msi / exe,
                     uploads as artifacts and attaches to the GitHub
                     release on `v*` tag.
- android.yml      — Capacitor + Gradle. `cap add android` then
                     `assembleDebug` (or `assembleRelease` when
                     ANDROID_KEYSTORE_BASE64 is set), uploads APKs
                     and attaches to release on tag.
- ios.yml          — Capacitor + xcodebuild on macOS-14. CocoaPods
                     install, archive Release with
                     CODE_SIGNING_ALLOWED=NO, wrap into Payload.ipa,
                     upload artifact + attach to release on tag.
- tauri-mobile.yml — manual-only alternative path that uses the
                     Tauri 2 built-in mobile targets, kept for users
                     who prefer the unified Tauri shell on phones.

docs/MOBILE.md walks through running each shell locally, the secrets
needed to sign the Android release APK, and how to take the iOS
unsigned archive into Xcode for distribution. Top-level package.json
scripts gain build:desktop, build:mobile, android:apk, ios:archive
shortcuts for local builds.
The iOS workflow now patches the freshly-scaffolded Xcode project so
TARGETED_DEVICE_FAMILY stays "1,2" (iPhone + iPad), explicitly registers
all four iPad orientations in Info.plist's
UISupportedInterfaceOrientations~ipad, and sets UIRequiresFullScreen
to NO so iPad split-view and slide-over keep working. xcodebuild gets
the same TARGETED_DEVICE_FAMILY override on the command line so the
archive itself never falls back to iPhone-only.

The same defensive sed patch lands in the Tauri-mobile workflow's iOS
job since `tauri ios init` scaffolds its own Xcode project. capacitor
config and docs both call out the iPadOS support explicitly so the next
person reading the repo doesn't have to guess.
@HiLleywyn HiLleywyn merged commit 21dd69f into main May 9, 2026
0 of 6 checks passed
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.

2 participants