Skip to content

Fix/mas installer identity#26

Merged
julia-kafarska merged 4 commits into
mainfrom
fix/mas-installer-identity
Jun 28, 2026
Merged

Fix/mas installer identity#26
julia-kafarska merged 4 commits into
mainfrom
fix/mas-installer-identity

Conversation

@julia-kafarska

Copy link
Copy Markdown
Member

What

Resolves the three App Store review rejections for Out Loud 2.0 and ships a few related improvements, bumping to 2.0.1. Removes the external "Buy Me a Coffee" donation link (3.1.1), drops the unused com.apple.security.network.server entitlement and gates the local extension HTTP server off in MAS builds (2.4.5(i)), and adds an application Window menu so a closed window can be reopened (Guideline 4). Also adds an optional name/email capture that maps to PostHog person properties, an MP3/WAV download format dropdown, and self-adapting ONNX GPU execution-provider selection with CPU fallback (CPU stays the default). Builds on the earlier MAS installer-signing/verifier fixes already on this branch.

Why

App Review rejected 2.0.0 (submission 3ae12404-…) on guidelines 3.1.1, 2.4.5(i), and 4. Each change maps directly to a rejection reason:

  • 3.1.1 — external donation links aren't allowed; removed entirely.
  • 2.4.5(i) — the network.server entitlement had no matching functionality once the extension bridge is disabled under the sandbox; removed and the server is skipped when process.mas.
  • Guideline 4 — the app set no application menu, so a hidden/closed window had no reopen path; added a Window menu (⌘1) + standard roles.

The identity capture (opt-in, post-export soft prompt) and MP3 export are product asks. The GPU EP work is investigative: the embedded model is int8-quantized, so GPU providers only cover ~1% of the graph — CPU is kept as the default, with the machinery in place (OUT_LOUD_ACCEL=auto) for a future non-quantized model.

Checklist

  • npm run check passes (lint + fmt + knip + typecheck)
  • npm test passes (no test files; --passWithNoTests)
  • I've tested this locally (npm run electron:dev)

julia-kafarska and others added 4 commits June 21, 2026 13:01
The mas.identity was set to the full "Apple Distribution: ..." string.
electron-builder reuses mas.identity as the search qualifier for the installer
cert too, and that string can never match a "3rd Party Mac Developer Installer"
line, so the pkg step failed with "Cannot find valid identity". Use the bare
"Julia Kafarska (8Y2UTZ2NBZ)" qualifier: the app still resolves to Apple
Distribution (tried first for MAS) and the installer resolves to the 3rd Party
cert.

verify-mas-build.mjs: only require com.apple.security.inherit on Mach-O
executables (helpers, login helper, ffmpeg) that spawn as their own process.
Dylibs/frameworks/.node bundles load in-process and must not carry it — a valid
team signature is enough. Also skip symlinks when walking the bundle so the
framework's Versions/Current alias isn't traversed back into Versions/A.
- Add IdentityDialog component (optional name/email → PostHog person
  properties; missing from the prior commit, which broke App.tsx's import)
- TTS: self-adapting ONNX execution-provider selection with hard CPU
  fallback (OUT_LOUD_ACCEL=auto opts into GPU). Default stays CPU — the
  int8 model leaves GPU EPs ~1% node coverage, so CPU is faster. Dedupe
  the two session-creation paths into a single cached ensureSession.
- Bump version to 2.0.1 for App Store resubmission.
@julia-kafarska julia-kafarska merged commit fa12087 into main Jun 28, 2026
1 check passed
@julia-kafarska julia-kafarska deleted the fix/mas-installer-identity branch June 28, 2026 12:20
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