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 <noreply@anthropic.com>
This commit is contained in:
Caggegi
2026-05-15 01:27:37 +03:00
committed by GitHub
co-authored by Claude Sonnet 4.6
parent c06615cdec
commit 94fc98ccef
5 changed files with 19 additions and 13 deletions
+7 -4
View File
@@ -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
+5 -5
View File
@@ -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]}
+4 -2
View File
@@ -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";
+1 -1
View File
@@ -19,7 +19,7 @@
<key>CFBundleShortVersionString</key>
<string>0.27</string>
<key>CFBundleVersion</key>
<string>448</string>
<string>452</string>
<key>LSApplicationCategoryType</key>
<string>public.app-category.utilities</string>
<key>LSMinimumSystemVersion</key>
+2 -1
View File
@@ -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 \