This repository contains the iOS client implementation of Jami.
- macOS 12 or higher
- Xcode 13 or higher
- Homebrew
- Carthage (
brew install carthage)
Supported archs are: arm64 for iPhoneOS and arm64, x86_64 for iPhoneSimulator Minimum supported version is: 14.5
- Clone the repository with the daemon submodule
git clone --recurse-submodules https://review.jami.net/jami-client-ios
cd jami-client-iosIf you already cloned without --recurse-submodules:
git submodule update --init- Install dependencies
brew install carthage-
Build daemon and contributions (choose one option):
Option A: For iPhone device only
./compile-ios.sh --platform=iPhoneOS
Option B: For simulator only
./compile-ios.sh --platform=iPhoneSimulator
Option C: For both iPhone device and simulator
./compile-ios.sh --platform=all
Additional options:
--release Build in release mode with optimizations --arch=ARCH Specify a specific architecture for simulator builds (arm64 or x86_64) Note: This option is only used when building for iPhoneSimulator --help Display detailed help information -
Fetch Carthage dependencies
cd Ring && ./fetch-dependencies.sh- Open
Ring/Ring.xcodeprojin Xcode and build the project.
You can also build client-ios as part of the jami-project monorepo:
- Clone and initialize jami-project
git clone https://review.jami.net/jami-project
cd jami-project && ./build.py --init- Install dependencies
./build.py --dependencies --distribution IOS- Build daemon and client
cd client-ios && DAEMON_DIR=../daemon ./compile-ios.sh --platform=all
cd Ring && ./fetch-dependencies.shNote: In the monorepo layout the daemon lives at
../daemonrather than as a submodule, soDAEMON_DIRmust be set explicitly as shown above.
The build process automatically generates XCFrameworks from the compiled static libraries. These XCFrameworks are located in the xcframework directory and include both device (arm64) and simulator (arm64, x86_64) architectures when built with --platform=all.
Update translations using Transifex:
cd Ring
tx push -s
./update-translations.sh