airmessage / airmessage-server-legacy

AirMessage's message relay server for Mac
Apache License 2.0
68 stars 3 forks source link
imessage

AirMessage Server

This version of AirMessage Server is no longer maintained. Please see airmessage/airmessage-server, which runs as a native macOS app.

AirMessage running on Microsoft Edge

AirMessage lets people use iMessage on the devices they like. AirMessage Server functions as the bridge between AirMessage client apps and iMessage by running as a service on a Mac computer.

Other AirMessage repositories: Android | Web | Connect (community)

Getting started

To build AirMessage Server, you will need version 14+ of the JDK, as well as Node.js.

AirMessage Server uses Java, jOOQ (for database interactions), SWT (for UI), and Gradle (for builds).

AirMessage Server uses a configuration file to associate with online services like Firebase and Sentry. The app will not build without valid configuration files, so to get started quickly, you can copy the provided default files to use a pre-configured Firebase project, or you may provide your own Firebase configuration file:

AirMessage Server uses a combination of Gradle and a shell script to build the app (if someone is more experienced with Gradle, I'd love to move the build to be Gradle-only!) To run the app, run ./gradlew run. To package the app, run ./buildAndSign.sh.

Please note that the authentication screen for signing in to AirMessage Connect will likely not work unless the app is packaged due to Apple's App Transport Security restrictions.

Building a signed app

To create a signed app, run buildAndSign.sh [signing identity] [account username] [account password] [team short name].

The command requires 4 arguments in order to be able to properly codesign and notarize the app:

File structure outline

Building and running for AirMessage Connect

In order to help developers get started quickly, we host a separate open-source version of AirMessage Connect at connect-open.airmessage.org. The default configuration is pre-configured to authenticate and connect to this server. Since this version of AirMessage Connect is hosted in a separate environment from official servers, you will have to connect client apps to the same AirMessage Connect server.

We kindly ask that you do not use AirMessage's official Connect servers with any unofficial builds of AirMessage-compatible software.


Thank you for your interest in contributing to AirMessage! You're helping to shape the future of an open, secure messaging market. Should you have any questions, comments, or concerns, please shoot an email to hello@airmessage.org.