quickblox-ios-sdk

QuickBlox iOS SDK for messaging and video calling

BSD-3-CLAUSE License

Stars
396
Committers
22

Bot releases are visible (Hide)

quickblox-ios-sdk - SDK 2.17.9

Published by IlliaChemolosov almost 4 years ago

Contacts list. Minor fixes and improvements.

quickblox-ios-sdk - SDK 2.17.8

Published by IlliaChemolosov almost 4 years ago

User contacts flow refactoring.

quickblox-ios-sdk - SDK 2.17.7

Published by IlliaChemolosov almost 4 years ago

New "updateMessage()" method added.
Details: https://docs.quickblox.com/docs/ios-chat-advanced#update-message

quickblox-ios-sdk - SDK 2.17.5

Published by IlliaChemolosov about 4 years ago

Upgrades related to the latest Apple recommendations.
Crash related to QBChatConnectionProtocol method annotation fixed.

quickblox-ios-sdk - SDK 2.17.4

Published by IlliaChemolosov about 5 years ago

Support iOS version 13.

quickblox-ios-sdk - SDK 2.17.3

Published by IlliaChemolosov about 5 years ago

Support iOS version 13.

For iOS SDKs up to version 2.17.3 Xcode 10 or lower should be used. Because if you build your App with Xcode 11, users with iOS 13 will stop receiving incoming calls.

Currently we are adding support for Xcode 11 and iOS 13 in an upcoming version of the SDK.

quickblox-ios-sdk - SDK 2.17.2 and WebRTC SDK 2.7.4

Published by IlliaChemolosov about 5 years ago

Support iOS version 13.

For iOS SDKs up to version 2.17.2 Xcode 10 or lower should be used. Because if you build your App with Xcode 11, users with iOS 13 will stop receiving incoming calls.

quickblox-ios-sdk - WebRTCv2.7.3

Published by sshaforenkoqb almost 6 years ago

WebRTC version updated to revision 02411.
Fixed:

  • Support x86 and x64 architectures added.
  • Crash on incoming call if a user is logged in on the iPhone X/iPhone XS/iPhone XS Max.
  • Crash when using Metal in the remote video view.
quickblox-ios-sdk - WebRTCv2.7.2

Published by sshaforenkoqb almost 6 years ago

WebRTC version updated to r 24472.
Fixed:

  • Crash in background mode when user on the video call.
  • Crash on incoming call if user is logged in on several devices under the same account.
  • Bug when audio session switches back to earphones from the speaker when call begins.
quickblox-ios-sdk -

Published by over 6 years ago

Fixed:

Added:

  • Property fileURL for QBCOFile model. It is used for uploading the file with local file URL.
quickblox-ios-sdk -

Published by over 6 years ago

New:

  • Added lastMessageID property for the QBChatDialog model
  • Added - [QBChat connectWithUserID:password:completion:] and - [QBChat connectWithUserID:password:resource:completion:] methods for connecting to the chat

Deprecated:

  • [QBChat connectWithUser:completion:] and -[QBChat connectWithUser:resource:completion:] - methods for connecting to the chat with QBUUser

Removed:

  • Deprecated login method using Twitter Digits : +[QBRequest logInWithTwitterDigitsAuthHeaders:successBlock:errorBlock]
  • Deprecated property twitterDigitsID of the QBUUser model and QBUpdateUserParameters class.
  • Removed unused -chatDidNotSetActivePrivacyListWithName: method of the QBChatDelegate protocol
  • Removed unused methods + [QBMSubscription notificationChannelFromString:] and + [QBMSubscription notificationChannelToString:]
  • BBPS (Blackberry pushes)
  • Deprecated property isTokenValid of the QBSession class
  • Deprecated property data of the QBChatAttachment model
  • Deprecated content module methods: + [QBRequest blobsWithSuccessBlock:], + [QBRequest taggedBlobsWithSuccessBlock:] and + [QBRequest taggedBlobsForPage:successBlock:errorBlock:]

Fixed:

  • GitHub issue: The method of + [QBRequest updateCurrentUser:sucessBlock:errorBlock] returns nil for the field tags of the updated user. Thanks to RubenBenBen.

Improvements:

  • Updated inline documentation
quickblox-ios-sdk -

Published by over 6 years ago

Heads up! As announced at Google I/O, Digits is being replaced with Firebase phone authentication. To continue authenticating users, you need to upgrade to Firebase by September 30, 2017. After this date, your users will be unable to authenticate their device if they try to sign in with Digits. In addition, app backends will not be able to verify existing user tokens using Digits’ /sdk/account endpoint. Please see our migration guide: https://docs.fabric.io/apple/digits/apple-migration.html

Added + [QBRequest:logInWithFirebaseProjectID:accessToken:successBlock:errorBlock:]
Deprecated + [QBRequest logInWithTwitterDigitsAuthHeaders:successBlock:errorBlock:]

quickblox-ios-sdk - WebRTCv2.7

Published by Raikerian over 6 years ago

  • WebRTC r 22215
  • Dropped support for iOS 8, from now on framework requires iOS 9+.
    • Developer comment: WebRTC team has dropped support for iOS 8 recently so we are moving on too. This version will require your project to be iOS 9+.
  • Fixed applicationState background thread usage from UIKit withing webrtc. Main thread checker will no longer interrupt your app to notify about this.
  • Added new method audioSession:didChangeOutputVolume: to QBRTCAudioSessionDelegate protocol. Called when the AVAudioSession output volume changes.
  • [Call session]
    • Added new method setBitrate: to QBRTCBaseSession class. This method is used to limit self-media bitrate in the current session for all existent connections. Any newly established connection in this session will not be limited. This method is working for both QBRTCSession and QBRTCConferenceSession subclasses.
    • Added new method setBitrate:forUserID: to QBRTCSession class. This method is used to limit self-media bitrate for particular connection with the user (if existent).
      • Developer comment: Both new methods are allowing to set the desired bitrate when connections have been already established. Previously setting bitrate was possible only before making calls.
  • Added new supportedOrientations property in QBRTCCameraCapture class. Change it if you want to prohibit some orientations for the camera. Default value is UIInterfaceOrientationMaskAll.
  • H264 video codec is now split on H264-Baseline and H264-High video codecs (different profiles).
    • Developer comment: H264 is a hardware supported video codec, which now supports two profiles. The baseline is preferred a low-cost solution for most of the situations. However High profile is a good primary for broadcast.
  • Added new localAudioEnabled property to QBRTCRecorder class. Determines whether local audio recording from the mic is enabled or not. Use this property to stop and/or re-start local mic audio record. Use it, for example, if you need to turn off the local audio record or restart the audio unit.
  • [Remote video view]
    • QBRTCRemoteVideoView class now drawing using Apple Metal Kit primarily if it is available on the current device.
    • Added new preferMetal class property. Set it to NO if you want to use old drawing method with OpenGL. Default value is YES.
  • QBRTCVideoFrame is now a subclass of webrtc RTCVideoFrame class.
    • Developer comment: Nothing is changed for class usage, this only extends possibilities of QBRTCVideoFrame class, as RTCVideoFrame has a lot of useful properties regarding video frame.
  • [Conference (Enterprise-only feature)]
    • Added support of media conferencing service V2.
quickblox-ios-sdk -

Published by over 6 years ago

  • Added -chatContactListDidPopulate:contactList delegate - Called whenever contact list is populated
  • Fixed session renewal issues for Custom Identity Provider
  • Fixed @import for c++ (.mm) files
quickblox-ios-sdk -

Published by over 6 years ago

QuickBlox.framework v 2.15

Removed deprecated methods:

+[QBSettings setApiEndpoint: chatEndpoint:forServiceZone:]
+[QBSettings setServiceZone:]
+[QBSettings currentServiceZone]

Fixed:

  • GitHub Issue , Thanks to sin2.
  • Problem with saving Firebase project ID (Session restoration)
  • Overlapping logs between Chat & REST
  • Issue with blob size in completion block
  • Message - Skip retrieve endpoints

New:

  • Umbrella Headers
  • + [QBRequest uploadWithUrl:blobWithWriteAccess:successBlock:statusBlock:errorBlock:] - Public method for uploading file with File URL
  • QBChat property manualInitialPresence - After establishing a session, a client should send initial presence to the server in order to signal its availability for communications. By default NO (Automatically)
  • + [QBRequest cancelAllRequests:] Cancel all running requests

Improvements:

  • Updated inline documentation
  • Added chat errors suggestions

Quickblox Samples

  • Bugfixes and improvements
  • Deployment target 9.0
quickblox-ios-sdk -

Published by almost 7 years ago

  • Fixed possible memory leak in some cases when using audio-only calls.
  • [QBRTCAudioSession]
    • Now corresponds to QBRTCAudioSessionActivationDelegate protocol. Use it to notify QBRTCAudioSession class that AVAudioSession was activated outside of rtc class itself. The most recent example is CallKit. Check this guide for more information.
    • Added useManualAudio property and changed audioEnabled property default value to NO (both properties have NO as default value). If you set useManualAudio to YES, WebRTC will not initialize the audio unit automatically when an audio track is ready for playout or recording. Instead, applications should call setAudioEnabled. If NO, WebRTC will initialize the audio unit as soon as an audio track is ready for playout or recording. The most recent example is usage in CallKit, where we need to wait for AVAudioSession to be activated by Apple first, and then initialize audio manually. Check this guide for more information. If useManualAudio is NO, then audioEnabled property value does not affect anything.
  • [QBRTCRemoteVideoView]
    • Fixed issue where video gravity was incorrect when the class was initialized while an app is in the background.
quickblox-ios-sdk -

Published by almost 7 years ago

New

  • Added QBDarwinNotificationCenter class

    NOTE

    A notification that enables the broadcast of information to registered observers between extensions with the same QuickBlox application id.

    The Darwin notification center is a system mechanism on iOS and OS X to send signals across process boundaries. It's useful to exchange information between two or more running processes such as an iPhone app notifying a WatchKit/Share/Siri.... Extension that new data has arrived.

    Is based on Darwin notification center.

    How to use:

    @interface YouExtensionClass ()
    @property (nonatomic, strong) id logoutObserver;
    @end
    
    @implementation YourExtensionClass
    
    - (void)registerToLogoutNotificaiton {
        __weak __typeof(self)weakSelf = self;
        self.logoutObserver = [[QBDarwinNotificationCenter defaultCenter]
                               addObserverForName:@"logout" usingBlock:^{
                                   [weakSelf completeSharing:nil];
                                   NSLog(@"Logout received");
                               }];
    }
    
    @end
    
    ...
    
    @implementation YourApplicationClass
    
    - (void)postLogoutNotificaion {
        [[QBDarwinNotificationCenter defaultCenter] postNotificationName:@"logout"];
    }
    
    @end
    
  • Added FOUNDATION_EXPORT NSNotificationName const kQBLogoutNotification; - Posted immediately after logout from QuickBlox and session destruction. Used only for Darwin notification center.

  • Added New method + [QBRequest registeredUsersFromAddressBookWithUdid:isCompact:successBlock:errorBlock:] to retrieve registered users from address book.

    Parameter Description
    udid User's device identifier. If specified - all operations will be in this context. Max length 64 symbols.
    compact if YES - server will return only id and phone fields of User. Otherwise - all User's fields will be returned.
    successBlock The block to be executed when registered users are retrieved.
    errorBlock The block to be executed when the request is failed.

    How to use:

    [QBRequest registeredUsersFromAddressBookWithUdid:@"your udid"
                                            isCompact:NO
                                         successBlock:^(NSArray<QBUUser *> *users) {
         NSLog(@"Registered users: %@", users);
     } errorBlock:^(QBResponse *response) {
         NSLog(@"Error: %@", response.error.error.localizedDescription)
     }];
    
quickblox-ios-sdk -

Published by almost 7 years ago

Fixes

New

  • Added class properties in QBSettings

  • Added + [QBSettings settingsFromPlist] and + [QBSettings settingsFromPlistWithName:]

    This method should be used only for Continuous Integration (CI) because of security reasons

    Possible keys Type Required
    applicationID Number YES
    authorizationKey String YES
    authorizationSecret String YES
    accountKey String YES
    apiEndpoint String NO
    chatEndpoint String NO
    autoReconnectEnabled Bool NO
    carbonsEnabled Bool NO
    streamManagementSendMessageTimeout Integer NO
    reconnectTimerInterval Double NO
    keepAliveInterval Double NO
    chatEndpointPort Integer NO
  • Added exception for missed credentials

  • Added QBSettings.chatEndpoint class property

  • Added QBSettings.apiEndpoint class property

Deprecated

  • Deprecated + [QBSettings setApiEndpoint:chatEndpoint:forServiceZone:]
  • Deprecated + [QBSettings setServiceZone:]
  • Deprecated + [QBSettings currentServiceZone]

Sample projects updates

  • Swift 4 support
  • Latest Pod’s (QMServices 0.5.3, QMChatViewController 0.5.1 )
quickblox-ios-sdk -

Published by about 7 years ago

  • Fixed possible crashes when trying to close rtc session immediately after creating it.

Conference module (Enterprise-only feature):

  • Added new listOnlineParticipantsWithCompletionBlock: method in QBRTCConferenceSession class. Use it to get all current participants IDs in the dialog.

  • Callbacks about joining and leaving occupants will now always be called when session created (this fixing the lack of callbacks when we want to subscribe to users feed, but don't want to post ours).

  • Fixed conference connection states (sometimes states would return wrong one).

quickblox-ios-sdk -

Published by about 7 years ago

  • Address Book functionality documentation
  • Removed Location API
  • Removed Deprecated API (see previous changelogs)