When will work start on a version for mac on Arm devices.
My guess is that this is probably linked to the node runtime and apple's rosetta. Does anyone know if rosetta supports node yet?
We've been asking for a Windows ARM64 version since last year on this issue - https://github.com/signalapp/Signal-Desktop/issues/3745
With the advent of the PinePhone, Librem 5, and probably other Linux smartphones I can see why this could be a good idea (or making Axolotl better - I know it is unofficial -), just support ARM64 in general on desktop side of things, I'm not a developer but if I am right, because of Electron, it shouldn't be that hard on Linux and Windows, I can't speak for Mac OS X (or whatever it is called now), though.
Seems to be dependent on Electron 11.
Knowing that Signal Desktop is Electron based I'd propose to work to make Catalyst version of the iOS app for Mac. We get native code and Apple Silicon support for free.
In that case, users should have both options because they can't register the same account on two devices. However, if going for the Catalyst route, it still leaves out the other emerging ARM64 platforms.
@tonilampela
I installed the iPad version on my Mac M1 (with iMazing), there is no reason they couldn't just make it available as it works and looks perfectly fine on my Mac.
Makes me wonder why they opt'ed out of displaying the iOS version it in the App Store .. ??
@tonilampela
I installed the iPad version on my Mac M1 (with iMazing), there is no reason they couldn't just make it available as it works and looks perfectly fine on my Mac.
Makes me wonder why they opt'ed out of displaying the iOS version it in the App Store .. ??
I'd like them to see to take advantage new "Optimized for Mac" options available in Big Sur's Catalyst. Maybe that is the plan and they don't want to confuse people with this stop-gap option of publishing iOS version?
@tonilampela
I'd like them to see to take advantage new "Optimized for Mac" options available in Big Sur's Catalyst. Maybe that is the plan and they don't want to confuse people with this stop-gap option of publishing iOS version?
true, that might be the case..
Comes up on my M1 MBP but then on each message says 'Error handling incoming message'?
Ya nevermind on my comment, turned out resetting convo fixed it.
Hey guys, any updates?
Also interested.
@EvanHahn-Signal commented on December 18th:
Thanks for reporting. We're planning on upgrading to Electron 11 in early 2021 which should address this issue.
So that should help!
I've tried with node@12 (12.20.1) (node built from source so it could run without rosetta2) and build was faild.
Problem on node-gyp rebuild looks like it is from node-ffi
and looks like it doesn't even support ARM64 windows, and nobody is tring to update it, so looks like we need to find a way NOT TO USE or UPDATE(I think it'll be painful) node-ffi
and after I somehow installed it, it came with error
[10/38] ⠂ ffi-napi
error (WorkDir)/Signal-Desktop/node_modules/ffi-napi: Command failed.
Exit code: 1
Command: node-gyp rebuild
Arguments:
Directory: (WorkDir)/Signal-Desktop/node_modules/ffi-napi
Output:
gyp info it worked if it ends with ok
gyp info using [email protected]
gyp info using [email protected] | darwin | arm64
......
gyp info spawn args [ 'BUILDTYPE=Release', '-C', 'build' ]
CC(target) Release/obj.target/ffi/deps/libffi/src/prep_cif.o
In file included from ../deps/libffi/src/prep_cif.c:27:
../deps/libffi/include/ffi_common.h:17:10: fatal error: 'fficonfig.h' file not found
#include <fficonfig.h>
^~~~~~~~~~~~~
1 error generated.
make: *** [Release/obj.target/ffi/deps/libffi/src/prep_cif.o] Error 1
gyp ERR! build error
gyp ERR! stack Error: `make` failed with exit code: 2
looks like related issue : https://github.com/node-ffi/node-ffi/issues/533#issuecomment-692875625
This also looks like same problem on same project, so looks like we need to find a way not to use or update node-ffi (AGAIN) to run on ARM64(Apple Silicon) device.
A temporary workaround to having Signal work natively on macOS is to allow the Signal app on the iOS App Store to be installed on macOS. Currently it does not show up in searches.
Is there a tracking issue or pull request for the Electron 11 upgrade? I know #4718 mentioned upgrading to Electron 11 to fix the restart mechanism, which incidentally also brings ARM support, but is there some authoritative issue / pull request for Electron 11 itself too?
Here's the PR to track progress on ffi-napi support of M1. Frankly, M1 works just fine now (it seems), but I have to restore the support of all other platforms 😂
Update: ffi-napi builds on most OS now, and I believe it will be released as a major version bump soon. FWIW, brew install vips is required on M1 chips, since no prebuilt version of library is available for arm64 just yet.
signal-zkgroup-node also requires an update. Universal dylib could be created using (lipo -create -output universal.dylib x86_64.dylib arm64.dylib) and used for ARM64 builds.
Made good progress on a build for Apple Silicon alongside Windows on ARM (thanks @KishanBagaria for giving me access to your temporary MacStadium Apple Silicon machine!):
Here's an overview of dependencies that need to be updated:
webrtc can't be built for Apple Silicon just yet)Here's my branch in case you want to try building it yourself in the meantime. It includes the pending PRs above - ignore the branch name as it's not only for Windows anymore: https://github.com/dennisameling/signal-desktop/tree/windows-multi-arch-support
I was able to create a build with yarn build:dev using the branch above, but since webrtc/ringrtc can't be built for Apple Silicon just yet, Signal refuses to start:

As soon as webrtc can be built for Apple Silicon, I'll be able to continue working on this. Let's hope that will happen soon 🚀
any news on this ?
Any progress made? Just noticed how poorly is Signal performing via Rosseta 2. Signal is using more than 5GB of RAM on my base MBA M1, not to mention energy usage overall.

any news on this ?
The Signal team will have to look into the PRs I mentioned above, then they'll have to add Apple Silicon to their release pipeline. I haven't come across any official announcements regarding Apple Silicon from their side, so it might take a while for this to happen. Fingers crossed things will be moving soon in this area 🤞🏼
Most helpful comment
Made good progress on a build for Apple Silicon alongside Windows on ARM (thanks @KishanBagaria for giving me access to your temporary MacStadium Apple Silicon machine!):
Here's an overview of dependencies that need to be updated:
webrtccan't be built for Apple Silicon just yet)Here's my branch in case you want to try building it yourself in the meantime. It includes the pending PRs above - ignore the branch name as it's not only for Windows anymore: https://github.com/dennisameling/signal-desktop/tree/windows-multi-arch-support
I was able to create a build with
yarn build:devusing the branch above, but sincewebrtc/ringrtccan't be built for Apple Silicon just yet, Signal refuses to start:As soon as
webrtccan be built for Apple Silicon, I'll be able to continue working on this. Let's hope that will happen soon 🚀