Skip to content

Dependencies

This guide covers the system dependencies required for the Self SDK across different operating systems.

Note: The Self SDK currently supports macOS and Linux-based operating systems. Windows support is not available at this time.

macOS

The easiest way to install the Self SDK and its dependencies on macOS is through Homebrew:

1
2
3
4
5
# Add the Self tap to Homebrew
brew tap joinself/tap

# Install the Self SDK
brew install joinself/tap/self-sdk

Note: For more information about installing via Homebrew, you can visit Self's Homebrew tap repository.

Linux

Debian/Ubuntu

  1. First, add the APT repository:
1
2
3
4
5
6
7
8
# Create keyrings directory
sudo mkdir -m 0755 -p /etc/apt/keyrings

# Download and add the repository signing key
curl -fsSL https://europe-apt.pkg.dev/doc/repo-signing-key.gpg | sudo gpg --dearmor -o /etc/apt/keyrings/self.gpg

# Add the repository to sources list
echo "deb [signed-by=/etc/apt/keyrings/self.gpg] https://europe-apt.pkg.dev/projects/principal-oxide-204416 apt main" | sudo tee /etc/apt/sources.list.d/self.list
  1. Install the SDK:
# Update package database and install
sudo apt-get update && sudo apt-get install self-sdk

Fedora/Red Hat

  1. Add the YUM repository:
1
2
3
4
5
6
7
8
sudo tee /etc/yum.repos.d/self.repo << EOL
[self]
name=Self
baseurl=https://europe-yum.pkg.dev/projects/principal-oxide-204416/yum
enabled=1
repo_gpgcheck=0
gpgcheck=0
EOL
  1. Install the SDK:
sudo yum install self-sdk

Verifying Installation

After installation, you can verify that the SDK is properly installed by checking its version:

self-sdk --version

JVM

  1. Add the repository:
1
2
3
repositories {
  mavenCentral()
}
  1. Add the library to dependencies block:
1
2
3
dependencies {
  implementation("com.joinself:sdk-jvm:1.0.0")
}
  • Using SNAPSHOT

You can use the snapshot version of the current development version of SelfSDK, available on Maven Central Snapshots

1
2
3
4
5
6
7
repositories {
  maven { url = uri("https://s01.oss.sonatype.org/content/repositories/snapshots/") }
}

dependencies {
  implementation("com.joinself:sdk-jvm:1.0.0-SNAPSHOT")
}

Android

  1. Add the repository:
1
2
3
repositories {
  mavenCentral()
}
  1. Add the library to dependencies block:
1
2
3
dependencies {
  implementation("com.joinself:sdk-android:1.0.0")
}
  • Using SNAPSHOT

You can use the snapshot version of the current development version of SelfSDK, available on Maven Central Snapshots

1
2
3
4
5
6
7
repositories {
  maven { url = uri("https://s01.oss.sonatype.org/content/repositories/snapshots/") }
}

dependencies {
  implementation("com.joinself:sdk-android:1.0.0-SNAPSHOT")
}
  1. Add permissions in manifest file
<uses-permission android:name="android.permission.INTERNET" />

iOS

Theself_ios_sdk depend on both OpenSSL and SelfUI

The OpenSSL is a part of NFCPassportReader. It has not embedded to NFCPassportReader. So we have to embed to the application level. The SelfUI is a ui components for the self_ios_sdk. It has not embedded to the self_ios_sdk. So we have to embed it to the application too.

Installation & Usage

We use the Swift Package Manager to install the main sdk self_ios_sdk

self_ios_sdk

In your project -> Package dependencies. Click add and paste this url to the search field

https://github.com/joinself/self-embedded-ios.git
In the dependencies rule. Select branch -> main

OpenSSL

add this

https://github.com/krzyzanowskim/OpenSSL
then select upToNextMinor -> 1.1.1900

SelfUI

check out the SelfUI as submodule project

git clone --recursive git@github.com:joinself/joinself-self-mobile-ios-ui.git

NOTE: We have seen an issue about git authentication failed when pull FLAnimatedImage. A dependency in SelfUI framework. To resolve that issue we might need to change the git authentication from https to ssh to fix that.

git@github.com:Flipboard/FLAnimatedImage.git

Then drag the SelfUI.xcodeproj from the sub-project path

joinself-self-mobile-ios-ui/SelfUI/SelfUI.xcodeproj
In the Build Phases -> Target Dependencies add SelfUI.framework

Then

In the General tab -> Frameworks, Libraries, Embedded and Content add SelfUI with embed mode Embed & Sign

Troubleshooting

If you encounter any issues during installation:

  1. Make sure your system is up to date
  2. Verify that you have sufficient permissions
  3. Check your system's package manager is working correctly
  4. Ensure you have a stable internet connection

Note: If you want more information about installing SelfSDK system dependencies on linux, you can visit Self's C SDK repository Install Instructions.