All Projects → airmessage → airmessage-server-legacy

airmessage / airmessage-server-legacy

Licence: Apache-2.0 license
AirMessage's message relay server for Mac

Programming Languages

java
68154 projects - #9 most used programming language
shell
77523 projects

Labels

Projects that are alternatives of or similar to airmessage-server-legacy

nodemessage
interact with your local iMessage database
Stars: ✭ 39 (-41.79%)
Mutual labels:  imessage
cve-2016-1764
Extraction of iMessage Data via XSS
Stars: ✭ 52 (-22.39%)
Mutual labels:  imessage
ichat2json
Reads an .ichat binary plist file and writes newline-separated JSON to STDOUT
Stars: ✭ 30 (-55.22%)
Mutual labels:  imessage
alfred-imessage-2fa
iMessage 2FA Workflow for Alfred
Stars: ✭ 71 (+5.97%)
Mutual labels:  imessage
leftonread
Left on Read
Stars: ✭ 22 (-67.16%)
Mutual labels:  imessage
imessage-chatbot
💬 Recurrent neural network -- generates messages in your style of speech! Trained on imessage data. Sqlite3, TensorFlow, Flask, Twilio SMS, AWS.
Stars: ✭ 33 (-50.75%)
Mutual labels:  imessage
unity-in-framework
Wrap Unity generated Xcode project in Framework
Stars: ✭ 20 (-70.15%)
Mutual labels:  imessage
iMessageBubble
A sub class of UITableViewCell to create exactly the same kind of bubbles that iMessage uses in iOS 8. Very easy to use and highly customizable.
Stars: ✭ 34 (-49.25%)
Mutual labels:  imessage
RecreatingiMessageConfetti
An Xcode Playground to show the internals of iMessage's Confetti implementation.
Stars: ✭ 29 (-56.72%)
Mutual labels:  imessage
text-sdk-php
PHP SDK to send messages with CM.com
Stars: ✭ 18 (-73.13%)
Mutual labels:  imessage
airmessage-web
AirMessage for the web
Stars: ✭ 109 (+62.69%)
Mutual labels:  imessage
ViziMessage
Visualize your iMessage history and interactions.
Stars: ✭ 18 (-73.13%)
Mutual labels:  imessage
airmessage-android
AirMessage for Android phones, tablets, and laptops
Stars: ✭ 94 (+40.3%)
Mutual labels:  imessage
message-indicator
🔵 SIMBL plugin that adds an indicator to messages in which you haven't responded
Stars: ✭ 21 (-68.66%)
Mutual labels:  imessage
zen-client
Zen's cross-platform desktop client 💬💻
Stars: ✭ 38 (-43.28%)
Mutual labels:  imessage
cat-message
Finds cat images/videos/gifs on reddit, sends them to my mom via applescript
Stars: ✭ 35 (-47.76%)
Mutual labels:  imessage
bluebubbles-app
A cross-platform app ecosystem, bringing iMessage to Android, PC (Windows, Linux, & even macOS), and Web!
Stars: ✭ 338 (+404.48%)
Mutual labels:  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:

  • connectauth/secrets.default.json > connectauth/secrets.json
  • src/main/resources/secrets.default.properties > src/main/resources/secrets.properties
  • src/main/resources/sentry.default.properties > src/main/resources/sentry.properties (no-op)

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:

  • [signing identity]: Used with the codesign command. Run security find-identity -v -p codesigning to list codesign identities. Provide the full string value of the identity, like Developer ID Application: John Doe (DUCNFCN445).
  • [account username]: Used with altool. The email address of an Apple ID with access to App Store Connect.
  • [account password]: Used with altool. An app-specific password for the Apple ID. Either the name of the Keychain entry of the password in the format of @keychain:ENTRY_NAME, or in plaintext (not recommended).
  • [team short name]: Used with altool. The short name of the team to use for signing. Run xcrun altool --list-providers -u "AC_USERNAME" -p "@keychain:ENTRY_NAME" to list providers.

File structure outline

  • /src holds the regular Java source code and resources.
  • /connectauth holds a webpack page that is used for Firebase Authentication.

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 [email protected].

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].