Similar to #31 (closed), we also want Briar Desktop to run on macOS. While for Windows and Linux we modified our own tor-reproducer to build tor binaries, for macOS support we could try using the official toolchain from Tor.
As a first step I asked Tor folks on how to best proceed on this:
Thanks for opening this issue, @richard! Is there anything we can do from our side at Briar to help you with this?
We're currently in the process of developing a desktop application for Briar that is supposed to work on Linux, Windows and macOS. We already modified our self-built tor-reproducer to build x86 and ARM builds for Linux and x86 builds for Windows, but for macOS I'd like to try using the official tor reproducing tool rbm that you mentioned in the forum. If things work out, we could later on switch our whole tor infrastructure to this, including not only little-t-tor but also the pluggable transports.
Maybe you can give me some hints on how to create that new build target? Thanks in advance!
I've made some progress with this in the last few days.
I've started looking into signing on macOS. I considered trying this with self-generated certificates, but then decided to sign up as an Apple developer and spend the 100 bucks to test with "the real thing". If Apple accepts my application, I'll then have an officially acccepted certificate for Mobanisto available for experimenting with executable/package signing.
I've put some effort into repackaging the tor expert bundle binaries into jar files. Because the binaries shipped in the expert bundle are not signed and it has not been decided upstream whether it makes sense to sign them (also a reason why I'd like to start experimenting with signing myself), I also added some code to repackage the binaries from Tor Browser itself. Not sure if signed binaries work out for packaging our app, but at least they are sufficient for running the development version of briar-desktop on a macOS device. That's something at least. I think we already knew that, but I didn't know before that those executables are actually signed and that if they are not, the development version doesn't just work as it did before.
I've looked at distribution of other (open source) apps again for comparison and to learn from their experience.
As a JVM-based software that ships a JDK, JOSM proves to be interesting again (see https://josm.openstreetmap.de/wiki/Download#macOS). What I found interesting is: they publish neither PKG nor DMG files, just plain ZIP packages. As PKG and DMG seem both like more complicated, I've decided to support ZIP as a first step. If it's acceptable to publish as ZIP, that'd be nice. At least it takes some complexity out of the picture for a moment. So I started working on pinpit to support building the distributable application image and zipping it up for distribution (https://github.com/mobanisto/pinpit-gradle-plugin/tree/macos). I can locally build zip distributions now already and the experience seems OK: double clicking the zip file in the finder extracts the app folder without further interaction. The extracted folder has the Briar logo and double clicking the folder launches Briar It'll be interesting what happens when I build the ZIP on the CI and download it from the Internet onto the mac device.
JOSM is also available via homebrew, the unofficial but widely adopted CLI package manager for macOS. Probably would be nice to offer that, too. At least something we could look into. I'm not sure exactly, but I think it builds things from source, much like packages on Arch linux I guess.
macOS packages can have a category (see possible values and high level overview). To confirm whether "social media" would be the right category for us, I went looking for Signal desktop on the Apple app store and was surprised, it is not available from there. Makes me wonder: if Signal didn't find its way into the app store, will we? Maybe the have a blog post about their reasoning or their fight they had with Apple in the past somewhere. Concerning the category: now that I also found the high level overview about available categories, "social media" seems to fit:
For example: interpersonal connections, text messaging, voice messaging, video communication, photo & video sharing, dating, blogs, special interest communities, companion apps for traditional social networking services.