You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: apps/macos/README.md
+14-3Lines changed: 14 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -7,31 +7,42 @@ The mac app does not replace the Python core. It starts the existing `apps.api`
7
7
## Build
8
8
9
9
```bash
10
-
swift build --package-path apps/macos
11
-
apps/macos/Scripts/build-app.sh
12
-
open -n "apps/macos/.build/release/Elephant Agent.app"
10
+
make macos-build
11
+
open -n "apps/macos/.build/release/$(uname -m | sed 's/arm64/aarch64/')-apple-darwin/Elephant Agent.app"
13
12
```
14
13
15
14
Full Xcode is not required when the installed Command Line Tools and macOS SDK match. The packaging script creates a local `.app`, copies the site brand assets into the bundle resources, signs ad hoc by default, and emits a `.dmg`, `.app.zip`, and SHA256 files under `apps/macos/.build/artifacts/<target>/`.
16
15
16
+
By default, `make macos-build` attempts to produce a self-contained app on the current Mac architecture. When `uv` is available and the requested `MACOS_TARGET` matches the host architecture, the bundle includes:
Set `MACOS_BUNDLE_RUNTIME=0` for a lightweight bootstrap build that falls back to the bundled `Install/install.sh` on machines without a developer repo. Set `MACOS_BUNDLE_RUNTIME=1` to require the embedded runtime and fail instead of falling back. Cross-architecture self-contained builds should run on a matching macOS runner or pass `MACOS_RUNTIME_PYTHON=/path/to/python3.12` for the target architecture.
23
+
17
24
The repo-level Makefile wraps the release paths:
18
25
19
26
```bash
20
27
make macos-build
21
28
make macos-build MACOS_TARGET=aarch64-apple-darwin
22
29
make macos-build MACOS_TARGET=x86_64-apple-darwin
23
30
make macos-build-all
31
+
make macos-build MACOS_BUNDLE_RUNTIME=1
24
32
```
25
33
26
34
Developer ID distribution builds can opt into signing and notarization:
27
35
28
36
```bash
29
37
make macos-build-all \
38
+
MACOS_BUNDLE_RUNTIME=1 \
30
39
MACOS_SIGNING_IDENTITY="Developer ID Application: Example Team (TEAMID)" \
31
40
MACOS_NOTARIZE=1 \
32
41
APPLE_ID="apple-id@example.com" \
33
42
APPLE_PASSWORD="app-specific-password" \
34
43
APPLE_TEAM_ID="TEAMID"
35
44
```
36
45
46
+
Without `MACOS_SIGNING_IDENTITY`, builds remain ad-hoc signed and notarization is skipped so local developers can still build a DMG. Ad-hoc artifacts are useful for testing but are not Gatekeeper-clean for broad distribution. Official shareable releases should use Developer ID signing and notarization.
47
+
37
48
`make macos-release-latest` expects `gh` authentication and replaces the GitHub `latest` release/tag with the current local artifacts. The CI workflow `.github/workflows/macos-latest-release.yml` runs the same build on each push to `main`, uploads both macOS architecture artifacts, writes `latest.json`, and replaces the `latest` GitHub release.
0 commit comments