Skip to content

Requirements

Marco Brescianini edited this page Nov 8, 2024 · 59 revisions

Table of contents

Versions

KaleyraVideoSDK

Dates are in the dd/MM/yyyy format

Version Release date Deprecation date End of support date
4.0.0 08/11/2024 - -
4.0.0-beta.1 04/11/2024 - -
4.0.0-alpha.1 29/08/2024 - -
3.12.1 16/04/2024 - -
3.12.0 12/04/2024 - -
3.11.1 10/04/2024 - -
3.11.0 23/02/2024 - -
3.10.2 31/01/2024 - -
3.10.1 24/11/2023 - -
3.10.0 08/11/2023 - -
3.9.0 24/10/2023 - -
3.8.0 19/09/2023 - -
3.7.1 29/06/2023 - -
3.7.0 27/06/2023 - -
3.6.3 16/06/2023 - -
3.6.2 28/03/2023 - -
3.6.1 24/03/2023 - -
3.6.0 17/03/2023 - -
3.5.0 14/02/2023 - -
3.4.2 29/11/2022 - -
3.4.1 27/10/2022 - -
3.4.0 19/10/2022 - -
3.3.0 21/09/2022 - -
3.2.0 01/08/2022 - -
3.1.2 14/07/2022 - -
3.1.1 02/07/2022 - -
3.1.0 27/06/2022 - -
3.0.1 09/06/2022 - -
3.0.0 13/05/2022 - -
3.0.0-beta 26/04/2022 - -
2.10.0 29/04/2022 - -
2.9.0 01/02/2022 - -
2.8.0 12/01/2022 02/02/2022 25/07/2022
2.7.0 30/12/2021 02/02/2022 25/07/2022
2.6.0 17/12/2021 02/02/2022 25/07/2022
2.5.1 14/12/2021 02/02/2022 25/07/2022
2.5.0 03/12/2021 02/02/2022 25/07/2022
2.4.1 29/10/2021 02/02/2022 25/07/2022
2.4.0 21/10/2021 02/02/2022 25/07/2022
2.3.0 11/10/2021 02/02/2022 25/07/2022
2.2.0 23/09/2021 02/02/2022 25/07/2022
2.1.2 21/09/2021 02/02/2022 25/07/2022
2.1.1 16/09/2021 02/02/2022 25/07/2022
2.1.0 28/06/2021 02/02/2022 25/07/2022
2.0.0 03/03/2021 02/02/2022 25/07/2022
2.0.0-beta 22/02/2021 02/02/2022 25/07/2022
1.7.3 27/10/2020 02/02/2022 25/07/2022
1.7.2 20/10/2020 28/04/2021 25/07/2022
1.7.1 13/10/2020 28/04/2021 25/07/2022
1.7.0 05/10/2020 28/04/2021 25/07/2022
1.6.0 08/07/2020 28/04/2021 25/07/2022
1.5.0 10/06/2020 28/04/2021 25/07/2022
1.4.0 06/02/2020 28/04/2021 25/07/2022
1.3.0 11/11/2019 28/04/2021 25/07/2022
1.2.2 24/10/2019 28/04/2021 25/07/2022
1.2.1 11/10/2019 28/04/2021 25/07/2022
1.2.0 04/10/2019 28/04/2021 25/07/2022
1.1.1 16/05/2019 07/07/2020 07/07/2020
1.1.0 25/02/2019 07/07/2020 07/07/2020
1.0.1 20/02/2019 07/07/2020 07/07/2020
1.0.0 17/01/2019 07/07/2020 07/07/2020

KaleyraVideoBroadcastExtension

Version Release date Deprecation date End of support date
1.2.0 27/06/2022 - -
1.1.0 17/12/2021 - -
1.0.1 12/10/2021 - -

Platforms

KaleyraVideoSDK

The Kaleyra Video iOS SDK supports iOS platform only. It requires iOS 15.0 or above.

Version Platform Minimum deployment target (compile time) Runtime target
4.x.x iOS 15.0 15.0
3.x.x iOS 10.0 12.0
2.x.x iOS 10.0 10.0
1.x.x iOS 9.0 10.0

BroadcastExtension

The KaleyraVideoBroadcastExtension framework supports iOS platform only. It requires iOS 12.0 or above.

Swift

Both the KaleyraVideoSDK and the KaleyraVideoBroadcastExtension frameworks use Swift 5.1

Objective-c apps

Version 4

Starting from version 4.0.0 the KaleyraVideoSDK drops support to objective-c.

Version 3 and earlier

Both the KaleyraVideoSDK and the KaleyraVideoBroadcastExtension are a mix of Objective-c and Swift code, this means that even if your application or your Broadcast extension are written entirely in Objective-c you must embed Swift standard libraries, otherwise the dynamic linker will fail when launching your app or extension.

Swift compatibility

As you might already know, Swift has reached ABI stability in version 5.0 (ABI stability enables libraries compiled with different compilers to talk to each other at runtime) but it has reached Module Stability only in version 5.1 which is still in its early stages. Before Module stability (altought this still holds true if the module is not compiled with library evolution flag) Swift modules compiled against a certain compiler version could not talk to other modules compiled against a different compiler version leading to the famous "Module compiled with Swift X cannot be imported by the Swift Y compiler" error. BandyerSDK binary framework is compiled with library evolution flag enabled from version 1.3.0. Library evolution is always forward compatible but NOT backward compatible, this means that if you are using the same compiler used to build the BandyerSDK or a newer one you should not have any issue while importing the Bandyer module, otherwise if you are using an older compiler with respect to the one used to build the Bandyer module, you won't be able to import it.

Forward compatible versions

Below you will find a table specifying which version of the KaleyraVideoSDK module has been compiled with library evolution enabled along with the compiler version used to compile it.

KaleyraVideoSDK
Module version Swift version Swift compiler version Xcode version
4.0.0 5.1 5.10 15.3
4.0.0-beta.1 5.1 5.10 15.3
4.0.0-alpha.1 5.1 5.10 15.3
3.12.1 5.1 5.5 13.0
3.12.0 5.1 5.5 13.0
3.11.1 5.1 5.5 13.0
3.11.0 5.1 5.5 13.0
3.10.2 5.1 5.5 13.0
3.10.1 5.1 5.5 13.0
3.10.0 5.1 5.5 13.0
3.9.0 5.1 5.5 13.0
3.8.0 5.1 5.5 13.0
3.7.1 5.1 5.5 13.0
3.7.0 5.1 5.5 13.0
3.6.3 5.1 5.5 13.0
3.6.2 5.1 5.5 13.0
3.6.1 5.1 5.5 13.0
3.6.0 5.1 5.5 13.0
3.5.0 5.1 5.5 13.0
3.4.2 5.1 5.5 13.0
3.4.1 5.1 5.5 13.0
3.4.0 5.1 5.5 13.0
3.3.0 5.1 5.5 13.0
3.2.0 5.1 5.3 12.0
3.1.2 5.1 5.3 12.0
3.1.1 5.1 5.3 12.0
3.1.0 5.1 5.3 12.0
3.0.1 5.1 5.3 12.0
3.0.0 5.1 5.3 12.0
3.0.0-beta 5.1 5.3 12.0
2.10.0 5.1 5.3 12.0
2.9.0 5.1 5.3 12.0
2.8.0 5.1 5.3 12.0
2.7.0 5.1 5.3 12.0
2.6.0 5.1 5.3 12.0
2.5.1 5.1 5.3 12.0
2.5.0 5.1 5.3 12.0
2.4.1 5.1 5.3 12.0
2.4.0 5.1 5.3 12.0
2.3.0 5.1 5.3 12.0
2.2.0 5.1 5.3 12.0
2.1.2 5.1 5.3 12.0
2.1.1 5.1 5.3 12.0
2.1.0 5.1 5.4.2 12.5.1
2.0.0 5.1 5.2 12.0
2.0.0-beta2 5.1 5.2 12.0
2.0.0-beta 5.1 5.2 12.0
1.7.3 5.1 5.1.3 11.3.1
1.7.2 5.1 5.1.3 11.3.1
1.7.1 5.1 5.1.3 11.3.1
1.7.0 5.1 5.1.3 11.3.1
1.6.0 5.1 5.1.3 11.3.1
1.5.0 5.1 5.1.3 11.3.1
1.4.0 5.1 5.1.3 11.3.1
1.3.0 5.1 5.1.2 11.2.1
BroadcastExtension
Module version Swift version Swift compiler version Xcode version
1.1.0 5.1 5.3 12.0
1.0.1 5.1 5.3 12.0
1.0.0 5.1 5.4.2 12.5.1
1.0.0-beta 5.1 5.2 12.0

Compiler specific versions

Below you will find a table specifying which SDK versions have not been compiled with library evolution. This means each module version can be imported in modules compiled against the same compiler version

Module version Swift version Xcode version
1.2.2 5.1 11.1
1.2.1 5.1 11.1
1.2.1 5.1 11.1
1.2.0 5.1 11.0

Swift free versions

All versions starting from 1.0.0 to 1.1.1 do not contain any Swift code

Frameworks

KaleyraVideoSDK

The KaleyraVideoSDK requires several system frameworks to be linked to your app. If you are using CocoaPods or SPM you can skip this chapter altogether. The following Cocoa frameworks must be linked into the application target for proper compilation:

Version 4.x.x
  1. Foundation.framework
  2. UIKit.framework
  3. AVFoundation.framework
  4. SystemConfiguration.framework
  5. WebKit.framework
  6. MediaPlayer.framework
  7. CoreGraphics.framework
  8. CoreMedia.framework
  9. CoreImage.framework
  10. CoreServices.framework
  11. Photos.framework
  12. Security.framework
  13. PushKit.framework
  14. CallKit.framework
  15. Intents.framework
  16. ReplayKit.framework
  17. CoreServices.framework
  18. Combine.framework
  19. UniformTypeIdentifier.framework
Version 3.x.x
  1. Foundation.framework
  2. UIKit.framework
  3. AVFoundation.framework
  4. SystemConfiguration.framework
  5. MobileCoreServices.framework
  6. WebKit.framework
  7. MediaPlayer.framework
  8. CoreGraphics.framework
  9. CoreMedia.framework
  10. CoreImage.framework
  11. CoreServices.framework
  12. Photos.framework
  13. Security.framework
  14. PushKit.framework
  15. CallKit.framework
  16. Intents.framework
  17. ReplayKit.framework

Kaleyra Video iOS SDK is linked with weak references to CoreServices.framework.

BroadcastExtension

The KaleyraVideoBroadcastExtension requires several system frameworks to be linked to your extension. If you are using CocoaPods or SPM you can skip this chapter altogether. The following Cocoa frameworks must be linked into the extension target for proper compilation:

  1. Foundation.framework
  2. ReplayKit.framework
  3. AVFoundation.framework
  4. CoreImage.framework
  5. CoreMedia.framework

Third party frameworks

Starting from 3.6.0 version the SDK embeds all the dependencies it needs, if you are integrating with the 3.6.0 version or above you can skip the following section. However, older versions do not embed those dependencies and they are required in order to compile and run the SDK. Several third-party libraries are used within Kaleyra Video iOS SDK, and must be linked and referenced in order to make your app compile and link without errors:

  1. Socket.IO-Client-Swift version >= 16.0
  2. Starscream version >= 4.0

Permissions

The Kaleyra Video iOS SDK requires Camera and Microphone permissions. Camera and Microphone permissions system alerts are prompted to the user automatically the first time the SDK is accessing camera or microphone devices. If you want to have more control about when those system alerts are prompted to the user, you must take care of that before the SDK view controller is presented to the user. Beware, your app Info.plist must contain NSCameraUsageDescription and NSMicrophoneUsageDescription keys along with the associated localized string messages that will be prompted to the user. Failing to do so will result in an app crash when the framework will try to capture video frames from the camera or audio frames from the microphone. You might also need to add the NSPhotoLibraryUsageDescription key along with the associated localized string message to your app Info.plist file if you are targeting iOS 10.0 or below. For more information head over to our permission guide

ARC

The Kaleyra Video iOS SDK uses ARC.

Bitcode

Starting from version 4.0.0 bitcode has been removed from the SDK. From the 2.6.0 version to the latest 3.x version of the SDK and from the 1.1.0 version to the latest 1.x version of the broadcast extension supports bitcode. Older version of the SDK and the broadcast extension do not support bitcode

Architectures

KaleyraVideoSDK >= 3.1.0
  1. arm
  2. arm64
  3. arm64e
  4. armv7
  5. armv7s
  6. x64
KaleyraVideoSDK < 3.1.0
  1. arm
  2. arm64
  3. arm64e
  4. armv7
  5. armv7s
  6. x64
  7. x86

KaleyraVideoBroadcastExtension

  1. arm64
  2. x64

FAT vs XCFramework

Starting from the 3.1.0 version of the KaleyraVideoSDK and from the 1.2.0 version of the KaleyraVideoBroadcastExtension the binaries are shipped as XCFrameworks. The XCFramework versions can run on ARM and x86_64 simulators and ARM devices. Previous versions of the KaleyraVideoSDK and the KaleyraVideoBroadcastExtension were shipped as FAT frameworks without support for ARM simulators.

Clone this wiki locally