- Swift 99.7%
- Python 0.2%
- Shell 0.1%
- Voice replies: a voice message started while replying shows the reply above it with a way to cancel. Element moved the box around voice messages out of its views, so ours draws it now. - Image reactions: the Fluent pills and the who-reacted sheet show the custom image instead of the word "Reaction". - The reaction count shows from 1, as in Element. Element's confetti on reactions isn't carried over: it's a developer option that is off in Release builds. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> |
||
|---|---|---|
| .agents/skills | ||
| .claude | ||
| .forgejo/workflows | ||
| .githooks | ||
| .github | ||
| AccessibilityTests | ||
| ci_scripts | ||
| Components | ||
| compound-ios | ||
| docs | ||
| ElementX | ||
| ElementX.xcodeproj | ||
| Enterprise@b391a9140c | ||
| IntegrationTests | ||
| NSE | ||
| openmessenger | ||
| PreviewTests | ||
| ShareExtension | ||
| Tools | ||
| UITests | ||
| UnitTests | ||
| .editorconfig | ||
| .gitattributes | ||
| .gitignore | ||
| .gitmodules | ||
| .periphery.yml | ||
| .swiftformat | ||
| .swiftlint.yml | ||
| AGENTS.md | ||
| app.yml | ||
| CHANGES.md | ||
| CLAUDE.md | ||
| codecov.yml | ||
| CONTRIBUTING.md | ||
| LICENSE | ||
| LICENSE-COMMERCIAL | ||
| localazy.json | ||
| NOTICE.md | ||
| OPENMESSENGER.md | ||
| Package.resolved | ||
| Package.swift | ||
| project.yml | ||
| README.md | ||
| renovate.json | ||
| SECURITY.md | ||
openMessenger for iOS
openMessenger for iOS is a Matrix messenger by UnityStack for iOS 18.5 and later. It is a fork of Element X iOS and uses the Matrix Rust SDK.
How this fork differs from Element X iOS and how upstream releases are merged: OPENMESSENGER.md.
Status
Builds run in the iOS Simulator only so far. The project is set to UnityStack's Apple team, but device builds, TestFlight and push notifications still need the steps listed under "Later steps" in OPENMESSENGER.md.
Prerequisites
-
macOS with Xcode (the version CI uses is set in
ci_scripts/ci_common.sh) and an iOS Simulator runtime. -
After cloning, run once:
swift run tools setup-projectThis installs the build tools (XcodeGen, SwiftGen, SwiftFormat, Sourcery, Git LFS and others) with Homebrew, points git at the hooks in
.githooksand generates the Xcode project.
More on the development environment: CONTRIBUTING.md (from Element X iOS).
Build
xcodegen
xcodebuild -project ElementX.xcodeproj -scheme ElementX -destination 'platform=iOS Simulator,name=iPhone 17 Pro,OS=latest' build
Simulator builds need no signing setup and no access to the team: Xcode signs the simulator build ad hoc ("Sign to Run Locally") and embeds the entitlements, including the app group, in the binaries. The app lands in ~/Library/Developer/Xcode/DerivedData/ElementX-<hash>/Build/Products/Debug-iphonesimulator/ElementX.app. Install and start it with xcrun simctl install booted <path to ElementX.app> and xcrun simctl launch booted eu.openmessenger.ios.
Security
See SECURITY.md.
Licence
AGPL-3.0-only, see LICENSE. openMessenger for iOS is based on Element X iOS, copyright Element Creations Ltd and New Vector Ltd. Details, including the copyright of UnityStack's modifications: NOTICE.md.