build: link libghostty-vt on Apple hosts with native linker

Replaces: https://github.com/ghostty-org/ghostty/pull/13427

Zig's Mach-O linker does not emit LC_ENCRYPTION_INFO_64 for physical
iOS dylibs. This allows libghostty-vt to build successfully but causes
frameworks containing it to fail App Store validation.

I think it'd be cleaner to always just build Apple targets on Apple hosts
with the native linker. We don't need to rely on Zig being correct and 
this helps ensure compatibility for details like this.
This commit is contained in:
Mitchell Hashimoto
2026-07-23 06:38:43 -07:00
parent 30de782e8e
commit d65cb5128a
5 changed files with 375 additions and 1 deletions

View File

@@ -618,7 +618,23 @@ jobs:
build-libghostty-vt-macos:
strategy:
matrix:
target: [aarch64-macos, x86_64-macos, aarch64-ios]
include:
- target: aarch64-macos
platform: 1
arch: arm64
expect_encryption: false
- target: x86_64-macos
platform: 1
arch: x86_64
expect_encryption: false
- target: aarch64-ios
platform: 2
arch: arm64
expect_encryption: true
- target: aarch64-ios-simulator
platform: 7
arch: arm64
expect_encryption: false
runs-on: namespace-profile-ghostty-macos-tahoe
needs: test
env:
@@ -653,6 +669,14 @@ jobs:
nix develop -c zig build -Demit-lib-vt \
-Dtarget=${{ matrix.target }}
- name: Verify Apple dylib
run: |
nix develop -c nu .github/scripts/check-apple-libghostty-vt.nu \
zig-out/lib/libghostty-vt.dylib \
--expect-platform ${{ matrix.platform }} \
--expect-arch ${{ matrix.arch }} \
${{ matrix.expect_encryption && '--expect-encryption' || '' }}
# lib-vt requires the Android NDK for Android builds
build-libghostty-vt-android:
strategy: