Files
filip131311 ead834897b build: keep the local daemon builds universal, matching CI (#655)
Companion to software-mansion/argent-private#29. Together they fix #639.

## Split of work

The binaries users install are **not** built by this script — they come
from
`build-native-binaries.yml` in `argent-private`, which duplicates the
compile commands inline. So the
load-bearing fix is
[argent-private#29](https://github.com/software-mansion/argent-private/pull/29);
this PR keeps `build.sh` (the `pack:mcp:local` path) in step, which that
workflow's own comment
promises it mirrors. Letting them drift is how the gap appeared.

## The change

The three daemon compiles built arm64 only while the dylibs five lines
away already cross-compile
both slices, so a locally packed tarball had a universal
`simulator-server` next to an arm64-only
`ax-service`. `-target` is kept and `-arch arm64 -arch x86_64` added —
identical output, but the
platform stays pinned by something that fails loudly rather than by a
flag whose loss would silently
yield a macOS binary that packs fine and only dies at `simctl spawn`.

`tvos-hid-daemon` also gets `-mmacosx-version-min=14.0`. It was the only
compile with no deployment
target, so its floor was whatever Xcode built it — on a current machine
that is macOS 26, which would
exclude nearly every Intel Mac the x86_64 slice exists for. 14.0 is what
the shipped binary already
reports, so this is a no-op against the current artifact.

## Verification

Ran this script end to end against the real private sources:

```
ax-service        x86_64 arm64     IOSSIMULATOR 17.0  (both slices)
tvos-ax-service   x86_64 arm64     TVOSSIMULATOR 17.0 (both slices)
tvos-hid-daemon   x86_64 arm64     MACOS 14.0         (both slices, was 26.0 locally)
libNativeDevtoolsIos.dylib  x86_64 arm64  (unchanged)
```

**Not verified:** that the x86_64 slices *run* — no Intel Mac and no
x86_64 simulator runtime here.
This restores a build pattern the repo already uses everywhere else; it
is not a tested claim of Intel
support, and no doc is changed to say otherwise.

## Note for whoever merges

Merging both PRs is still not enough for the fix to reach an npm
release: `publish-npm.yml` pins a
frozen `argent-<ref>` binaries tag built by a manual dispatch of the
private workflow. After
argent-private#29 lands, that workflow needs a dispatch against the tag
the next release will use.
2026-08-03 10:58:35 +02:00
..