Install iOS SDK

The Social Plus SDK for iOS is delivered as a binary .xcframework file

Manual Installation

Download the latest iOS SDK

  • Drag AmitySDK.xcframework, Realm.xcframework & RealmSwift.xcframework to your project.

  • Make sure that Copy items if needed is selected and click Finish.

  • Also switch the Embed section as Embed & Sign

The correct setup should look like this.

You need to turn Rosetta mode on when using AmitySDK with arm64 simulator. To force the application to use Apple Rosetta environment with an Apple silicon Mac, refer to this page for the instructions.

Using Dependency Manager

AmitySDK supports installation via dependency managers.

  • SwiftPM

  • Cocoapods

  • Carthage

SwiftPM Installation

To integrate AmitySDK into your project via SwiftPM, please follow the instructions below.

Enter the repository URL to search the package, and choose to install AmitySDK.

https://github.com/AmityCo/Amity-Social-Cloud-SDK-iOS-SwiftPM

Cocoapod & Carthage:

We have dropped support for Cocoapod & Carthage for AmitySDK. If you want to distribute AmitySDK through cocoapod & carthage, you can use the xcframeworks that we distribute through Swift Package Manager (SPM).

Additional Steps for Amity Video

Amity Video requires the AmitySDK as dependencies. First, ensure you have installed AmitySDK as per the instructions above.

To use live video broadcast:

  • Import AmityLiveVideoBroadcastKit.xcframework to your project.

To use a live video player:

For version 6.0.0 - 6.7.0

  • Import AmityVideoPlayerKit.xcframework to your project

  • Download MobileVLCKit.xcframework, and import to your project.

  • Switch each framework to Embed & Sign, except MobileVLCKit to Do Not Embed.

For the project that uses both live video broadcast and live video player, the correct setup should look like this.

To install Swift Packages for Amity Video, please follow the instructions below.

For version 6.8.0 and above

  • Import AmityVideoPlayerKit.xcframework to your project

  • Download MobileVLCKit.xcframework, and import to your project.

  • Switch each framework to Embed & Sign, all xcframeworks.

For the project that uses both live video broadcast and live video player, the correct setup should look like this.

Amity Video with SwiftPM

To install Swift Packages for Amity Video, please follow the instructions below.

1. Install AmityVideoBroadcast

To use live video broadcast functionalities. Enter the repository URL to search the package, and choose to install AmityVideoBroadcast.

https://github.com/AmityCo/Amity-Social-Cloud-SDK-iOS-VideoBroadcast-SwiftPM

Try it in your code

import AmityLiveVideoBroadcastKit

2. Install AmityVideoPlayer

To use live video player functionalities. Enter the repository URL to search the package, and choose to install AmityVideoPlayer.

https://github.com/AmityCo/Amity-Social-Cloud-SDK-iOS-VideoPlayer-SwiftPM

Try it in your code

import AmityVideoPlayerKit

Using AmitySDK with Objective C Code

Starting with v6.0.0, AmitySDK for iOS is written in Pure Swift. Although its in pure Swift, you can still use it in Objective-C projects by making Mixed-Language Project.

We recommend you to integrate AmitySDK for iOS swift directly into your Objective-C project and use Swift language to call the SDK interfaces.

Mixed Language Project:

To make a mixed language project, create Swift files with necessary interfaces/methods which in turn interacts with AmitySDK. These interfaces should be exposed with @objc or @objcMembers attributes. Reference: Swift Attributes

When you add new Swift file into your Objective-C project, Xcode automatically generates a bridging header file. This bridging header exposes your Swift code to Objective C code. For more information you can refer to this guide by Apple: Importing Swift into Objective-C

// Example of a Swift file which contains a class to interact with AmitySDK.

@objc class SDKLoginManager: NSObject {
    
    let client: AmityClient?
    
    @objc init(apiKey: String) {
        self.client = try? AmityClient(apiKey: apiKey)
    }
    
    @objc func login(userId: String, displayName: String, authToken: String, completion: @escaping (Bool, Error?) -> Void) {
        self.client?.login(userId: userId, displayName: displayName, authToken: authToken, completion: completion)
    }
}
#import "ViewController.h"
#import "YourProjectName-Swift.h" // <- This import exposes above Swift file to your Objc project.

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view.
}

- (void)testSDKUsage {

    SDKLoginManager *loginManager = [[SDKLoginManager alloc] initWithApiKey:@"my-api-key"];
    [loginManager loginWithUserId:@"user-id" displayName:@"display-name" authToken:@"auth-token" completion:^(BOOL isSuccess, NSError * _Nullable error) {
        
        // Handle login completion here
    }];
}

@end

Last updated

Was this helpful?