feat: build universal (Apple Silicon + Intel) macOS Tauri binaries by default - #30
Merged
Merged
Conversation
… default
Ports a change made locally (and unsafely — it would've been lost on the
next `./build.sh update`, since build-tauri-macos.sh is a managed file) in
a downstream project: macOS Tauri builds now request
`tauri build --target universal-apple-darwin` when rustup is available,
producing a single lipo'd .app that runs on both Apple Silicon and Intel.
Falls back to a host-arch-only build with a warning when rustup is
missing; set TAURI_UNIVERSAL_MACOS=false to opt out.
Also fixes a gap this surfaced: ARTIFACT_PATTERNS["tauri"] only matched
src-tauri/target/release/bundle/*/*, so discover_artifacts() couldn't find
anything under the target-triple-specific path a universal (or any
explicit --target) build produces. Signed builds were unaffected (the
signed .pkg path doesn't depend on the target triple), but unsigned
builds would silently report no artifacts to open or publish. Added the
per-triple bundle patterns to a separate constant scanned by
discover_artifacts() without feeding preferred_output_roots()'s prefix
grouping — folding them into ARTIFACT_PATTERNS directly would have
collapsed the preferred root down to the noisy top-level target/
directory shared with the default bundle pattern.
Bumps VERSION to 3.7.0 so install.sh's pinned v{VERSION} release ref
serves this.
3 tasks
kimdzhekhon
added a commit
that referenced
this pull request
Jul 18, 2026
…too (#33) signing/build superseding the raw bundle output only checked the default src-tauri/target/release/bundle path. Universal macOS builds (Apple Silicon + Intel, default since #30) land under src-tauri/target/<triple>/release/bundle instead, so a signed .pkg build still left the dmg/macos/create-dmg raw bundle folders open alongside the final signing/build/*.pkg. Bump to 3.7.2 and regenerate the manifest so release-tag-based self-update picks this up. Co-authored-by: Kim Jaehyun <231584193+kimdzhekhon@users.noreply.github.com> Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
kimdzhekhon
added a commit
that referenced
this pull request
Jul 29, 2026
… default (#30) Ports a change made locally (and unsafely — it would've been lost on the next `./build.sh update`, since build-tauri-macos.sh is a managed file) in a downstream project: macOS Tauri builds now request `tauri build --target universal-apple-darwin` when rustup is available, producing a single lipo'd .app that runs on both Apple Silicon and Intel. Falls back to a host-arch-only build with a warning when rustup is missing; set TAURI_UNIVERSAL_MACOS=false to opt out. Also fixes a gap this surfaced: ARTIFACT_PATTERNS["tauri"] only matched src-tauri/target/release/bundle/*/*, so discover_artifacts() couldn't find anything under the target-triple-specific path a universal (or any explicit --target) build produces. Signed builds were unaffected (the signed .pkg path doesn't depend on the target triple), but unsigned builds would silently report no artifacts to open or publish. Added the per-triple bundle patterns to a separate constant scanned by discover_artifacts() without feeding preferred_output_roots()'s prefix grouping — folding them into ARTIFACT_PATTERNS directly would have collapsed the preferred root down to the noisy top-level target/ directory shared with the default bundle pattern. Bumps VERSION to 3.7.0 so install.sh's pinned v{VERSION} release ref serves this. Co-authored-by: Kim Jaehyun <231584193+kimdzhekhon@users.noreply.github.com>
kimdzhekhon
added a commit
that referenced
this pull request
Jul 29, 2026
…too (#33) signing/build superseding the raw bundle output only checked the default src-tauri/target/release/bundle path. Universal macOS builds (Apple Silicon + Intel, default since #30) land under src-tauri/target/<triple>/release/bundle instead, so a signed .pkg build still left the dmg/macos/create-dmg raw bundle folders open alongside the final signing/build/*.pkg. Bump to 3.7.2 and regenerate the manifest so release-tag-based self-update picks this up. Co-authored-by: Kim Jaehyun <231584193+kimdzhekhon@users.noreply.github.com> Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
kimdzhekhon
added a commit
that referenced
this pull request
Jul 29, 2026
… default (#30) Ports a change made locally (and unsafely — it would've been lost on the next `./build.sh update`, since build-tauri-macos.sh is a managed file) in a downstream project: macOS Tauri builds now request `tauri build --target universal-apple-darwin` when rustup is available, producing a single lipo'd .app that runs on both Apple Silicon and Intel. Falls back to a host-arch-only build with a warning when rustup is missing; set TAURI_UNIVERSAL_MACOS=false to opt out. Also fixes a gap this surfaced: ARTIFACT_PATTERNS["tauri"] only matched src-tauri/target/release/bundle/*/*, so discover_artifacts() couldn't find anything under the target-triple-specific path a universal (or any explicit --target) build produces. Signed builds were unaffected (the signed .pkg path doesn't depend on the target triple), but unsigned builds would silently report no artifacts to open or publish. Added the per-triple bundle patterns to a separate constant scanned by discover_artifacts() without feeding preferred_output_roots()'s prefix grouping — folding them into ARTIFACT_PATTERNS directly would have collapsed the preferred root down to the noisy top-level target/ directory shared with the default bundle pattern. Bumps VERSION to 3.7.0 so install.sh's pinned v{VERSION} release ref serves this. Co-authored-by: Kim Jaehyun <231584193+kimdzhekhon@users.noreply.github.com>
kimdzhekhon
added a commit
that referenced
this pull request
Jul 29, 2026
…too (#33) signing/build superseding the raw bundle output only checked the default src-tauri/target/release/bundle path. Universal macOS builds (Apple Silicon + Intel, default since #30) land under src-tauri/target/<triple>/release/bundle instead, so a signed .pkg build still left the dmg/macos/create-dmg raw bundle folders open alongside the final signing/build/*.pkg. Bump to 3.7.2 and regenerate the manifest so release-tag-based self-update picks this up. Co-authored-by: Kim Jaehyun <231584193+kimdzhekhon@users.noreply.github.com> Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
--target universal-apple-darwin(arm64+x86_64 lipo, .app 1개)로 빌드됨.rustup없으면 경고 후 호스트 아키텍처만 빌드.TAURI_UNIVERSAL_MACOS=false로 끌 수 있음update에 사라질 상태였음ARTIFACT_PATTERNS["tauri"]가target/release/bundle/*/*만 매치해서,--target지정 빌드(유니버설 포함)의 산출물을discover_artifacts()가 못 찾음 → 서명 안 한 빌드는 폴더 열기/publish둘 다 "산출물 없음" 오탐. per-triple 패턴을 별도 상수로 추가해서 해결하되,ARTIFACT_PATTERNS에 직접 안 넣음 (넣으면preferred_output_roots()가 공통 조상을 시끄러운 최상위target/까지 넓혀버림)Test plan
python3 -m unittest tests.test_python_core -v— 31/31 통과 (유니버설 빌드 산출물 탐색 회귀 테스트 포함)bash tests/test-detection.sh— 유니버설 빌드 경로용 신규 테스트 추가, 기존 서명/패키징 테스트는TAURI_UNIVERSAL_MACOS=false로 격리해 회귀 없음 확인test-python-adapters.sh/test-install.sh/test-update.sh전부 통과