From 94fc98cceff94cf69a2e7c28f726cf35ab93c461 Mon Sep 17 00:00:00 2001 From: Caggegi Date: Fri, 15 May 2026 00:27:37 +0200 Subject: [PATCH] Add arm64 (Apple Silicon) support with universal binary (#476) - Set ARCHS = "arm64 x86_64" explicitly in project-level Debug and Release configs - Raise MACOSX_DEPLOYMENT_TARGET from 10.12.2 to 11.0 (minimum macOS for Apple Silicon) - Pass ARCHS="arm64 x86_64" in build.sh and CI workflows to guarantee universal output - Update CI action versions (checkout@v3, setup-node@v3, Node 18.x) - Add lipo verification step in build-test CI to confirm universal binary Sparkle.framework was already a universal binary (x86_64 + arm64). Co-authored-by: Claude Sonnet 4.6 --- .github/workflows/build-test.yml | 11 +++++++---- .github/workflows/publish.yml | 10 +++++----- MTMR.xcodeproj/project.pbxproj | 6 ++++-- MTMR/Info.plist | 2 +- build.sh | 3 ++- 5 files changed, 19 insertions(+), 13 deletions(-) diff --git a/.github/workflows/build-test.yml b/.github/workflows/build-test.yml index d341f6c..0e572b6 100644 --- a/.github/workflows/build-test.yml +++ b/.github/workflows/build-test.yml @@ -7,7 +7,7 @@ jobs: runs-on: macOS-latest steps: - - uses: actions/checkout@v1 + - uses: actions/checkout@v3 - name: Run tests run: xcodebuild test -project MTMR.xcodeproj -scheme 'UnitTests' | xcpretty -c && exit ${PIPESTATUS[0]} @@ -16,7 +16,10 @@ jobs: runs-on: macOS-latest steps: - - uses: actions/checkout@v1 + - uses: actions/checkout@v3 - - name: Build - run: xcodebuild archive -project "MTMR.xcodeproj" -scheme "MTMR" -archivePath Release/App.xcarchive DEVELOPMENT_TEAM="" CODE_SIGN_IDENTITY="" | xcpretty -c && exit ${PIPESTATUS[0]} + - name: Build (universal binary) + run: xcodebuild archive -project "MTMR.xcodeproj" -scheme "MTMR" -archivePath Release/App.xcarchive DEVELOPMENT_TEAM="" CODE_SIGN_IDENTITY="" ARCHS="arm64 x86_64" | xcpretty -c && exit ${PIPESTATUS[0]} + + - name: Verify universal binary + run: lipo -info Release/App.xcarchive/Products/Applications/MTMR.app/Contents/MacOS/MTMR diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index d1b03be..961204a 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -12,18 +12,18 @@ jobs: runs-on: macOS-latest steps: - - uses: actions/checkout@v1 + - uses: actions/checkout@v3 - name: Set up Node.js - uses: actions/setup-node@v1 + uses: actions/setup-node@v3 with: - node-version: 12.x + node-version: 18.x - name: Install create-dmg run: npm i -g create-dmg - - name: Build Archive - run: xcodebuild archive -project "MTMR.xcodeproj" -scheme "MTMR" -archivePath Release/App.xcarchive DEVELOPMENT_TEAM="" CODE_SIGN_IDENTITY="" | xcpretty -c && exit ${PIPESTATUS[0]} + - name: Build Archive (universal binary) + run: xcodebuild archive -project "MTMR.xcodeproj" -scheme "MTMR" -archivePath Release/App.xcarchive DEVELOPMENT_TEAM="" CODE_SIGN_IDENTITY="" ARCHS="arm64 x86_64" | xcpretty -c && exit ${PIPESTATUS[0]} - name: Build App run: xcodebuild -project "MTMR.xcodeproj" -exportArchive -archivePath Release/App.xcarchive -exportOptionsPlist export-options.plist -exportPath Release | xcpretty -c && exit ${PIPESTATUS[0]} diff --git a/MTMR.xcodeproj/project.pbxproj b/MTMR.xcodeproj/project.pbxproj index 874daa9..7f782bb 100644 --- a/MTMR.xcodeproj/project.pbxproj +++ b/MTMR.xcodeproj/project.pbxproj @@ -550,6 +550,7 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; + ARCHS = "arm64 x86_64"; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; @@ -595,7 +596,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - MACOSX_DEPLOYMENT_TARGET = 10.12.2; + MACOSX_DEPLOYMENT_TARGET = 11.0; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; SDKROOT = macosx; @@ -608,6 +609,7 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; + ARCHS = "arm64 x86_64"; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; @@ -648,7 +650,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - MACOSX_DEPLOYMENT_TARGET = 10.12.2; + MACOSX_DEPLOYMENT_TARGET = 11.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = macosx; SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; diff --git a/MTMR/Info.plist b/MTMR/Info.plist index 078b880..22a840f 100644 --- a/MTMR/Info.plist +++ b/MTMR/Info.plist @@ -19,7 +19,7 @@ CFBundleShortVersionString 0.27 CFBundleVersion - 448 + 452 LSApplicationCategoryType public.app-category.utilities LSMinimumSystemVersion diff --git a/build.sh b/build.sh index 28283cd..f09a6af 100755 --- a/build.sh +++ b/build.sh @@ -6,7 +6,8 @@ rm -r Release 2>/dev/null xcodebuild archive \ -scheme "$NAME" \ - -archivePath Release/App.xcarchive | xcpretty -c + -archivePath Release/App.xcarchive \ + ARCHS="arm64 x86_64" | xcpretty -c xcodebuild \ -exportArchive \