Advanced
This page contains the following information:
- Custom thread handling: how to designate and create a thread for the Calls SDK.
- WebRTC famework and bitcode: how to use bitcode when building Sendbird Calls'
WebRTC
framework.
Custom thread handling
You can designate and create a specific thread for the Calls SDK. For example, the SendBirdCall
instance can call the delegate methods of the SendBirdCallDelegate
and DirectCallDelegate
on a custom background thread to keep your main thread running without any interruption.
To specify a thread of your choice, call SendBirdCall.executeOn(queue: YOUR_QUEUE)
. If a thread to run on isn’t specified, the SendBirdCall
instance will run asynchronously on the DispatchQueue.main
.
Note: However, because
PushKit
is designed to require immediate and synchronous handling of event callbacks, the completion handler of theSendBirdCall.pushRegistry(_:didReceiveIncomingPushWith:for:completion:)
and theSendBirdCallDelegate.didStartRinging(_:)
method will run synchronously on the thread that you called them. In other words, these two are not allowed to run on the thread you specified in theSendBirdCall.executeOn(queue:)
method.
WebRTC framework and bitcode
Sendbird Calls uses the custom-built WebRTC
framework to provide internet-based communication. The default WebRTC
framework from Google does not have bitcode enabled, so when you try to build it with your bitcode-enabled app, errors will return. However, our custom-built WebRTC
framework called SendBirdWebRTC
is bitcode-enabled and about 1GB in size. If your loaded SendBirdWebRTC
framework is smaller than that, check your Git Large File Storage
settings and download again.
Can I reduce the size of the framework?
If you don’t plan to use bitcode, you can choose to use bitcode-disabled framework to save development time during the development phase.
The SendBirdWebRTC
framework has the following architectures: x86_64
, i386
, armv7
, and arm64
. To extract the framework which runs on a specific architecture, use the following command in the WebRTC.framework
directory.
To remove bitcode from the framework, use the following command in the WebRTC.framework
directory.
If you can’t download the SendBirdWebRTC
framework, use GoogleWebRTC
temporarily but the Calls SDK may not function properly.