Aventuras/scripts
The1DW 9f5ae59a60
Some checks are pending
CI / build-desktop (push) Waiting to run
CI / build-android (push) Waiting to run
CI / build-ios (push) Waiting to run
iOS follow-ups: iPadOS detection, backup restore, app icon, and a first pass of iOS bug fixes (#559)
**Summary**

Follow-up to the iOS build target (#541). It fixes problems found while
running the build on real iOS/iPadOS WebViews, and it adds the missing
app icon step. Every behavioural change is behind `isIos()` or lives in
an iOS-only file, so other platforms take the same code path as before.

**Changes**

*Platform detection and restore*
- **iPadOS detection:** an iPad's WKWebView reports a Mac user agent by
default, so `isIos()` and `isMobileDevice()` missed it. The update check
took the desktop path and open dialogs kept filters iOS can't map. A Mac
UA with `maxTouchPoints > 1` now counts as iOS, with tests in
`platform.test.ts`.
- **Backup restore:** the iOS file picker returns a `file://` URL that
the native restore can't `std::fs`-open. iOS now stages it through
`import_saf_to_temp`, as Android does.
- **Restore exit:** the restore flow shows a toast and waits before
`exit(0)`, so quitting doesn't look like a crash.

*Config and build*
- **Updater string:** the updater text now mentions iOS.
- **iOS config:** new `src-tauri/tauri.ios.conf.json` sets
`minimumSystemVersion` to 16.4, the frontend's WebKit floor for Tailwind
v4 `@property`, cascade layers and `color-mix()`. It also empties
`build.features`, so `tauri ios dev` no longer needs the manual
`--config` workaround.
- **App icon:** `tauri ios init` fills the Xcode AppIcon set with the
Tauri placeholder. `scripts/sync-ios-icons.sh` copies
`src-tauri/icons/ios` over it and fails if the catalog names an icon the
Aventuras set lacks. `build-ios-unsigned.sh` and `bootstrap-ios.yml`
both run it.

*UI and services*
- **Update dialog:** on iOS the dialog points to a sideloading tool
(AltStore, Sideloadly or TrollStore), since the `.ipa` is unsigned and
Safari can only save it.
- **TTS volume:** `HTMLMediaElement.volume` is a no-op on iOS. The
settings now note this and disable the volume override switch and slider
there.
- **ComfyUI:** WKWebView's App Transport Security can silently block raw
`fetch()` to a ComfyUI host outside the local-network exception.
- `fetchModelList` now uses Tauri's HTTP plugin on iOS and forwards
`timeoutMs`.
- The SDK's `fetchApi()` (checkpoints, samplers, prompt queueing, image
retrieval) is patched on the instance, iOS only, to use the same plugin.

*Docs*
- `docs/development/ios-build-target.md` and
`docs/development/release.md` are updated. That includes the new config
file and corrections to two stale claims.


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **Improved iOS Support**
* Backup restoration supports selected files and displays completion
instructions before the app closes or prompts you to restart.
  * Image generation connections are more reliable.
* Update instructions explain how to install iOS downloads with a
sideloading tool.
* Volume controls are unavailable with an explanatory notice when the
selected provider does not support them on iOS.
* iOS app builds require iOS 16.4 or later and include synchronized app
icons.
* **Bug Fixes**
* Improved iPad recognition, including iPadOS devices that identify as
Mac computers.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: Claude <noreply@anthropic.com>
2026-10-09 10:56:10 -04:00
..
ci Overhaul CI/CD: Node 24, shared release workflows, faster cached builds (#518) 2026-09-16 22:38:32 -04:00
android-setup.sh Current 2026-01-01 14:55:31 -07:00
build-ios-unsigned.sh iOS follow-ups: iPadOS detection, backup restore, app icon, and a first pass of iOS bug fixes (#559) 2026-10-09 10:56:10 -04:00
check_migrations.js Fix CRLF Migrations (#162) 2026-02-22 15:46:59 -05:00
check_wry_injection.js Add Incognito Keyboard option for Android (#467) 2026-08-26 20:45:30 -04:00
fake-provider.mjs Make the errors surface in the activity report (#569) 2026-10-06 10:28:37 -04:00
package-manager.js Route dev/build/release scripts through aube when it installed node_modules (#552) 2026-09-28 14:34:27 -04:00
package-manager.test.js Route dev/build/release scripts through aube when it installed node_modules (#552) 2026-09-28 14:34:27 -04:00
pm.js Route dev/build/release scripts through aube when it installed node_modules (#552) 2026-09-28 14:34:27 -04:00
release.js Route dev/build/release scripts through aube when it installed node_modules (#552) 2026-09-28 14:34:27 -04:00
remote.js Release script: push over the contributor's own remote instead of a hardcoded HTTPS URL (#432) 2026-08-08 22:08:59 +02:00
remote.test.js Release script: push over the contributor's own remote instead of a hardcoded HTTPS URL (#432) 2026-08-08 22:08:59 +02:00
sync-ios-icons.sh iOS follow-ups: iPadOS detection, backup restore, app icon, and a first pass of iOS bug fixes (#559) 2026-10-09 10:56:10 -04:00
version.js Overhaul CI/CD: Node 24, shared release workflows, faster cached builds (#518) 2026-09-16 22:38:32 -04:00
version.test.js Validated release script, extracted version arithmetic, lint config fixes (#416) 2026-08-08 19:55:23 +02:00