- What architecture is your Mac running?
Use “uname -m” (reports x86_64 on my Intel Mac Pro) or Arm (reports arm64 on an Apple M1).
// Intel Mac Pro
$ uname -m
x86_64
// Apple M1 Max
$ uname -m
arm64
Alternative, even though the output is a little sloppy:
Use “arch” command is useful to determine Intel (reports i386 on my Mac Pro) or Arm (reports arm64 on M1).
(Note: This is the same output as “uname -p”.)
As you can see "i386" for a 64 bit Xeon CPU is a little sloppy, right?
// Intel Mac Pro
$ arch
i386
// Apple M1 Max
$ arch
arm64
- What processor is your mac running?
Use "sysctl -n machdep.cpu.brand_string".
Examples (Intel Mac Pro and M1 Macbook Pro):
// Intel Mac Pro:
$ sysctl -n machdep.cpu.brand_string
Intel(R) Xeon(R) CPU E5-2697 v2 @ 2.70GHz
// Apple Macbook Pro M1 Max
$ sysctl -n machdep.cpu.brand_string
Apple M1 Max
- What architecture is your application compiled for?
Or for the application binary itself you can use the (macOS) command line “file”.
Example (I used “*” for all files in the directory, but you can also provide a filename of course):
$ file *
somebinary1: Mach-O 64-bit executable x86_64
somebinary2: Mach-O 64-bit executable arm64
or when 2 architectures are combined in a fat binary (Intel and Arm in this example):
$ file Somebinary3
Somebinary3: Mach-O universal binary with 2 architectures: [x86_64:Mach-O 64-bit executable x86_64
- Mach-O 64-bit executable x86_64] [arm64]
Somebinary3 (for architecture x86_64): Mach-O 64-bit executable x86_64
Somebinary3 (for architecture arm64): Mach-O 64-bit executable arm64