Code Monkey home page Code Monkey logo

webex-ios-sdk's Introduction

Cisco Webex iOS SDK

CocoaPods license

The Cisco Webex iOS SDK makes it easy to integrate and secure messaging, meeting and calling features in your iOS apps.

SDK types:

  • WebexCalling SDK : WebexSDK/Wxc
    • This SDK supports only WebexCalling feature
    • It does not support CUCM calling

Pod usage:

target 'MyApp' do
  pod 'WebexSDK/Wxc'
end
  • Meeting SDK : WebexSDK/Meeting
    • This SDK supports Messaging and Meeting features
    • It does not support CUCM Calling or Webex Calling

Pod usage:

target 'MyApp' do
  pod 'WebexSDK/Meeting'
end
  • Full SDK : WebexSDK
    • Supports all the features.
    • Details of all features can be found here

Pod usage:

target 'MyApp' do
  pod 'WebexSDK'
end

All the SDKs are independent of each other. Developers can use either one of them to fulfil their use case.

Documentation

Support

License

© 2016-2023 Cisco Systems, Inc. and/or its affiliates. All Rights Reserved.

See LICENSE for details.

webex-ios-sdk's People

Contributors

adamrangs avatar aksagarw avatar asynchrony-ringo avatar bbender avatar bhabalan avatar dciobanu avatar joe-still avatar kliu avatar mrshiy avatar noble-six avatar olivierproffit avatar pauzhang-cisco avatar qucui avatar rsarika avatar rwpeek avatar xiuwwu avatar xu0101 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

webex-ios-sdk's Issues

Install SDK without Cocoapods

Is it possible to integrate Webex SDK without Cocoapods?
I copied and linked these libs to my project:

  • mediastores_ios.xcframework
  • UCFBridge.xcframework
  • util_ios.xcframework
  • wbxaecodec.xcframework
  • wbxaudioengine.xcframework
  • WebexSDK.xcframework
    .. and received runtime error. Am I doing something wrong?
error link

Login with User1 JWT token. Logout and Relogin with User2 token. Call and Chat is not working and showing detail of Previous User

Scenario:
We have two JWT tokens for User1 and User2 who are associated with two different rooms.
User 1:
JwtToken : JwtTokenOfUser1
RoomId : "A"

User 2:
JwtToken : JwtTokenOfUser2
RoomId : "B"

  1. Login with the User1 JWT token and join the call or send message with RoomId "A"
  2. Logout (Deauthorize) for the User1
  3. Login with the User2 JWT token
  4. User2 is not able to join the call or send the message

TestResult for KitchenSink :
We have tested this same scenario in the latest KitchenSink app code base and Its not working in there. We have observed that in kitchen sink even-if I am login with User2 Its shows the space detail and room space detail for the previously login User1.

Note : We are not restarting or killing the application in between to test this scenario.

We are using the Version 3.1 iOS SDK

Remote Participant Video Size Issue

I am using upgrading Cisco SDK V2(2.8.0) to V3(3.4.0) version from my application. We have requirement of displaying full screen video for the remote participant. In previous version of V2 we are getting video view of entire screen but now with the upgrading the Cisco SDK to 3.4.0, We found that video view displaying empty space on top and bottom of the side. Same issue we are facing for local view as well which displaying empty space.

We have tried the changing the value of the property "remoteVideoRenderMode" to stretchFill as well but nothing is happening.

I have attached the screenshot for the same in which green view display the empty space for remote video view.
IMG_0234

Please check and suggest the solution

Initializer for conditional binding must have Optional type

getting the following errors after installing webex-ios-sdk
"Initializer for conditional binding must have Optional type, not 'MembershipReadStatus'"
"Initializer for conditional binding must have Optional type, not 'MembershipReadStatus'"

App working fine on simulator but not on real device

I've tried to run the app on a physical device (iPhone 11 with iOS 16) and it doesn't recognize the login with a token. Everything works fine on the simulator in xCode but not on a real device.
But, when i prove the app on TestFlight also works well, the login with the token is successful, nevertheless this doesn't work for me because I'm trying to use the SDK in another app, and when implementing the SDK in that app I have the same issue: works fine the login on the simulator but not on my iPhone, if anyone can help me I'd be very thankful

IOS archiving taking too much time.

Since switching from SparkSDK to WebexSDK even though normal build time is ok, while archiving it take too much time. Sometimes over an hour!.

Webex initialisation and authorisation issue on iPhone

When user tries to login to the app using JWT token, on real device WebexSDK.Authenticator fails as method authenticator.authorizedWith(jwt: textField?.text ?? "", completionHandler: { ... } does not return with the result, but it does return when user tries to login with expired JWT token and shows error. Due to which user fails to login and app crashes as a user tries to send message or initiate a call. We tried running KitchenSink example app on real device provide by Webex but the result is same on real device.

Environment:

  • WebexSDK: 3.6.0
  • Xcode: 14.0
  • iOS: 16.0
  • macOS: 12.6

WebexSDK with Socket.io

Hi, i have a project that needs to use both libraries but when i'm trying to install via cocoa pods i'm getting the following error:

CocoaPods could not find compatible versions for pod "Starscream":
In snapshot (Podfile.lock):
Starscream (= 4.0.0)

In Podfile:
Socket.IO-Client-Swift (> 15.2.0) was resolved to 15.2.0, which depends on
Starscream (
> 3.1)

WebexSDK (~> 2.5.0) was resolved to 2.5.0, which depends on
  Starscream (= 4.0.0)

Specs satisfying the Starscream (= 4.0.0), Starscream (= 4.0.0), Starscream (~> 3.1) dependency were found, but they required a higher minimum deployment target.

opening new direct conversation

unable to open a new direct conversation using this methods:
image
retrieving this error from sdk:
image

unlike the working implementation in webex api.
image

write in an existing direct conversation through sdk is working.

Can't build with Xcode 12 due to new Apple Silicon architecture

We have Webex pod included as a dependency in a private pod and since Xcode 12 we can't build a new version of our pod due to architecture issues. Cocoapods build pods in "iphonesimulator, release"-mode and this fails since Xcode 12 has Simulator support for Apple Silicon (arm64) and the computers doesn't support this yet. I've tried to fix this on my own, but it seems like the only solution to this is if your pod has support for this.

Attaching log with xcodebuild error.

ld: warning: directory not found for option '-F/var/folders/n9/t944kg4x06g8yj3dyxc106mc0000gn/T/CocoaPods-Lint-20201102-70257-1snybfc-PrivatePod/Pods/WebexSDK/Frameworks' ld: warning: building for iOS Simulator, but linking in dylib built for iOS, 'Seu.framework' ld: warning: building for iOS Simulator, but linking in dylib built for iOS, 'Sbu.framework' ld: warning: building for iOS Simulator, but linking in dylib built for iOS, 'Wme.framework' ld: warning: Could not find or use auto-linked framework 'Wme' ld: warning: Could not find or use auto-linked framework 'Sbu' ld: warning: Could not find or use auto-linked framework 'Seu' Undefined symbols for architecture arm64: "_OBJC_CLASS_$_SecureInputStream", referenced from: objc-class-ref in UploadFileOperation.o "_OBJC_CLASS_$_KmsKey", referenced from: objc-class-ref in MessageClient.o "_OBJC_CLASS_$_KmsRequest", referenced from: objc-class-ref in MessageClient.o "_MediaEngineDidMuteVideoNotification", referenced from: WebexSDK.MediaSessionObserver.notificationMapping() -> [(__C.NSNotificationName, ObjectiveC.Selector)] in MediaSessionObserver.o "_MediaEngineDidChangeLocalScreenShareViewSizeNotification", referenced from: WebexSDK.MediaSessionObserver.notificationMapping() -> [(__C.NSNotificationName, ObjectiveC.Selector)] in MediaSessionObserver.o "_OBJC_CLASS_$_KmsEphemeralKeyRequest", referenced from: objc-class-ref in MessageClient.o "_OBJC_CLASS_$_BroadcastConnectionServer", referenced from: objc-class-ref in MediaSessionWrapper.o "_OBJC_CLASS_$_MediaConstraint", referenced from: objc-class-ref in MediaSessionWrapper.o "_OBJC_CLASS_$_MediaCapabilityConfig", referenced from: objc-class-ref in MediaSessionWrapper.o "_MediaEngineDidChangeLocalViewSizeNotification", referenced from: WebexSDK.MediaSessionObserver.notificationMapping() -> [(__C.NSNotificationName, ObjectiveC.Selector)] in MediaSessionObserver.o "_MediaEngineDidMuteVideoOutputNotification", referenced from: WebexSDK.MediaSessionObserver.notificationMapping() -> [(__C.NSNotificationName, ObjectiveC.Selector)] in MediaSessionObserver.o "_MediaEngineVideoCSI", referenced from: closure #1 () -> () in WebexSDK.MediaSessionObserver.(onMediaEngineDidActiveSpeakerChange in _ABF09BFC4A3831458D2F0A19C55B4BF2)(Foundation.Notification) -> () in MediaSessionObserver.o closure #1 () -> () in WebexSDK.MediaSessionObserver.(onMediaEngineDidDidCSIChange in _ABF09BFC4A3831458D2F0A19C55B4BF2)(Foundation.Notification) -> () in MediaSessionObserver.o "_MediaEngineDidEncounterErrorNotification", referenced from: WebexSDK.MediaEngineObserver.notificationMapping() -> [(__C.NSNotificationName, ObjectiveC.Selector)] in MediaEngineObserver.o "_MediaEngineDidMuteScreenShareNotification", referenced from: WebexSDK.MediaSessionObserver.notificationMapping() -> [(__C.NSNotificationName, ObjectiveC.Selector)] in MediaSessionObserver.o "_OBJC_CLASS_$_MediaSession", referenced from: objc-class-ref in MediaSessionWrapper.o "_MediaEngineDidUnMuteScreenShareNotification", referenced from: WebexSDK.MediaSessionObserver.notificationMapping() -> [(__C.NSNotificationName, ObjectiveC.Selector)] in MediaSessionObserver.o "_MediaEngineDidMuteAudioNotification", referenced from: WebexSDK.MediaSessionObserver.notificationMapping() -> [(__C.NSNotificationName, ObjectiveC.Selector)] in MediaSessionObserver.o "_MediaEngineDidUnMuteAudioNotification", referenced from: WebexSDK.MediaSessionObserver.notificationMapping() -> [(__C.NSNotificationName, ObjectiveC.Selector)] in MediaSessionObserver.o "_MediaEngineDidUnMuteAudioOutputNotification", referenced from: WebexSDK.MediaSessionObserver.notificationMapping() -> [(__C.NSNotificationName, ObjectiveC.Selector)] in MediaSessionObserver.o "_OBJC_CLASS_$_KmsEphemeralKeyResponse", referenced from: objc-class-ref in MessageClient.o "_MediaEngineDidChangeAudioRouteNotification", referenced from: WebexSDK.MediaSessionObserver.notificationMapping() -> [(__C.NSNotificationName, ObjectiveC.Selector)] in MediaSessionObserver.o "_MediaEngineDidDetectVideoMediaAvailableNotification", referenced from: WebexSDK.MediaSessionObserver.notificationMapping() -> [(__C.NSNotificationName, ObjectiveC.Selector)] in MediaSessionObserver.o "_MediaEngineDidAvailableMediaChangeNotification", referenced from: WebexSDK.MediaSessionObserver.notificationMapping() -> [(__C.NSNotificationName, ObjectiveC.Selector)] in MediaSessionObserver.o "_MediaEngineDidMuteScreenShareOutputNotification", referenced from: WebexSDK.MediaSessionObserver.notificationMapping() -> [(__C.NSNotificationName, ObjectiveC.Selector)] in MediaSessionObserver.o "_MediaEngineDidActiveSpeakerChangeNotification", referenced from: WebexSDK.MediaSessionObserver.notificationMapping() -> [(__C.NSNotificationName, ObjectiveC.Selector)] in MediaSessionObserver.o "_MediaEngineDidAuxVideoSizeChangeNotification", referenced from: WebexSDK.MediaSessionObserver.notificationMapping() -> [(__C.NSNotificationName, ObjectiveC.Selector)] in MediaSessionObserver.o "_MediaEngineDidDetectAuxVideoMediaUnavailableNotification", referenced from: WebexSDK.MediaSessionObserver.notificationMapping() -> [(__C.NSNotificationName, ObjectiveC.Selector)] in MediaSessionObserver.o "_MediaEngineDidDetectAuxVideoMediaAvailableNotification", referenced from: WebexSDK.MediaSessionObserver.notificationMapping() -> [(__C.NSNotificationName, ObjectiveC.Selector)] in MediaSessionObserver.o "_MediaEngineDidMuteAuxVideoNotification", referenced from: WebexSDK.MediaSessionObserver.notificationMapping() -> [(__C.NSNotificationName, ObjectiveC.Selector)] in MediaSessionObserver.o "_MediaEngineDidDetectScreenShareMediaAvailableNotification", referenced from: WebexSDK.MediaSessionObserver.notificationMapping() -> [(__C.NSNotificationName, ObjectiveC.Selector)] in MediaSessionObserver.o "_MediaEngineDidUnMuteScreenShareOutputNotification", referenced from: WebexSDK.MediaSessionObserver.notificationMapping() -> [(__C.NSNotificationName, ObjectiveC.Selector)] in MediaSessionObserver.o "_OBJC_CLASS_$_MediaEngine", referenced from: objc-class-ref in MediaEngineWrapper.o objc-class-ref in MetricsEngine+Call.o objc-class-ref in MetricsEngine.o objc-class-ref in Phone.o objc-class-ref in Webex.o "_OBJC_CLASS_$_NetUtils", referenced from: objc-class-ref in InterfaceAddress.o "_OBJC_CLASS_$_SecureOutputStream", referenced from: objc-class-ref in DownloadFileOperation.o "_MediaEngineDidCSIChangeNotification", referenced from: WebexSDK.MediaSessionObserver.notificationMapping() -> [(__C.NSNotificationName, ObjectiveC.Selector)] in MediaSessionObserver.o "_MediaEngineDidChangeRemoteViewSizeNotification", referenced from: WebexSDK.MediaSessionObserver.notificationMapping() -> [(__C.NSNotificationName, ObjectiveC.Selector)] in MediaSessionObserver.o "_MediaEngineDidDetectScreenShareMediaUnavailableNotification", referenced from: WebexSDK.MediaSessionObserver.notificationMapping() -> [(__C.NSNotificationName, ObjectiveC.Selector)] in MediaSessionObserver.o "_MediaEngineDidChangeScreenShareViewSizeNotification", referenced from: WebexSDK.MediaSessionObserver.notificationMapping() -> [(__C.NSNotificationName, ObjectiveC.Selector)] in MediaSessionObserver.o "_MediaEngineDidMQENotification", referenced from: WebexSDK.MediaSessionObserver.notificationMapping() -> [(__C.NSNotificationName, ObjectiveC.Selector)] in MediaSessionObserver.o "_MediaEngineVideoCount", referenced from: closure #1 () -> () in WebexSDK.MediaSessionObserver.(onMediaEngineDidAvailableMediaChange in _ABF09BFC4A3831458D2F0A19C55B4BF2)(Foundation.Notification) -> () in MediaSessionObserver.o "_MediaEngineDidMuteAudioOutputNotification", referenced from: WebexSDK.MediaSessionObserver.notificationMapping() -> [(__C.NSNotificationName, ObjectiveC.Selector)] in MediaSessionObserver.o "_OBJC_CLASS_$_WmeLogManager", referenced from: objc-class-ref in MediaEngineWrapper.o "_MediaEngineDidSwitchCamerasNotification", referenced from: WebexSDK.MediaSessionObserver.notificationMapping() -> [(__C.NSNotificationName, ObjectiveC.Selector)] in MediaSessionObserver.o "_MediaEngineDidUnMuteVideoNotification", referenced from: WebexSDK.MediaSessionObserver.notificationMapping() -> [(__C.NSNotificationName, ObjectiveC.Selector)] in MediaSessionObserver.o "_OBJC_CLASS_$_IFAddress", referenced from: objc-class-ref in InterfaceAddress.o objc-class-ref in Transforms.o "_MediaEngineDidDetectVideoMediaUnavailableNotification", referenced from: WebexSDK.MediaSessionObserver.notificationMapping() -> [(__C.NSNotificationName, ObjectiveC.Selector)] in MediaSessionObserver.o "_MediaEngineDidUnMuteAuxVideoNotification", referenced from: WebexSDK.MediaSessionObserver.notificationMapping() -> [(__C.NSNotificationName, ObjectiveC.Selector)] in MediaSessionObserver.o "_MediaEngineVideoID", referenced from: merged closure #1 () -> () in WebexSDK.MediaSessionObserver.(onMediaEngineDidAuxVideoSizeChange in _ABF09BFC4A3831458D2F0A19C55B4BF2)(Foundation.Notification) -> () in MediaSessionObserver.o closure #1 () -> () in WebexSDK.MediaSessionObserver.(onMediaEngineDidDidCSIChange in _ABF09BFC4A3831458D2F0A19C55B4BF2)(Foundation.Notification) -> () in MediaSessionObserver.o "_OBJC_CLASS_$_CjoseWrapper", referenced from: objc-class-ref in ContentModel.o objc-class-ref in MessageClient.o objc-class-ref in ObjectModel.o "_MediaEngineDidUnMuteVideoOutputNotification", referenced from: WebexSDK.MediaSessionObserver.notificationMapping() -> [(__C.NSNotificationName, ObjectiveC.Selector)] in MediaSessionObserver.o "_OBJC_CLASS_$_SecureContentReference", referenced from: objc-class-ref in ContentModel.o objc-class-ref in FileModel.o objc-class-ref in ImageModel.o objc-class-ref in UploadFileOperation.o ld: symbol(s) not found for architecture arm64 clang: error: linker command failed with exit code 1 (use -v to see invocation)

UCFBridge crash

Randomly crashing app

Version: 24.02.06
Code Type: arm64
Date/Time: 06:34:13 GMT+0530 (India Standard Time)
Launch Time: 06:34:13 GMT+0530 (India Standard Time)
OS Version: iOS 16.6 (20G75)
Report Version: 105
Exception Type: SIGABRT
Exception Subtype:
Thread 0 name:
Thread 0:
0 UCFBridge 0x000000010ba59734 0x10b0ec000 + 9885492
1 libsystem_c.dylib 0x00000001aa8bbf60 exit

Video is not render if the person disconnect and rejoin again the same room with Version 3.0.0

We have tested this scenario in kitchen sink application and our application implementation with version 3.0.0
Setup : We have enabled Start call with video option switch.
Scenario which we have tested in kitchen sink app Version 3.0.0 :
User1 is joining from Device 1
User2 is joining from Device 2
For the first time it's working fine. But if the User2 is disconnect the call and rejoin it User1 (Who is already in call) is not able to see the video of User2. We have tested that even after logout and login again Its not working.
It's working only if User2 kill the application and open it again or User disable and enable video button after rejoining every time.
We are facing the same issue in our application implementation.

error during retrieving user via "getme"

Unable to retrieve the user using the getme function declared in PersonClient, fail with error "Bad request" with a few user after the login, using a fallback after this error with the user mail saved during login return the correct user.

Unable to Start Video Call

I have used the same code provided in the KitchenSink App (Available on Cisco Webex ,Website)
, its not Initiating call and also not receiving (H.264 AVC ) alert

webex.initializ not work on really device

when starting SDK in Webex integration SDK I did not return callback on the device but work fine simulation

 webex.initialize { result in
                    if result {
                        print("User is authorized")
                        self.webxIntegration()
                    } else {
                        authenticator.authorize(parentViewController: self) { result in
                        if result == .success {
                            print("Login successful")
                            self.webxIntegration()

                        } else {
                            print("Login failed")
                        }
                    }
                    }
                }

module compiled with Swift 4.1 cannot be imported by the Swift 5.3.1

I'm getting below error, when I have added webexsdk using pods and run the application.
"module compiled with Swift 4.1 cannot be imported by the Swift 5.3.1"
I have checked it in Xcode 12.2 and 12.4

Sometimes the error says The following binaries use incompatible versions of Swift
/Users/XXXXXX/Frameworks/Sbu.framework/Sbu

I have tried the below things.

  • Deleting Derived Data.
  • Checked if Command-line tools are correct.
  • Deleting pod.lock file
  • Updating Pods
  • Changing scheme to WebexSDK and building project, changing back to project scheme and building it.
  • Enabled "Build libraries for distribution" in build setting.

Kindly help me in solving the issue.

Remove use of UIWebView in the SDK

I get deprecated API usage warnings from Apple when I release an IPA to appstoreconnect using the Cisco webex-ios-sdk due to the SDK's usage of UIWebView.
Will this be removed anytime soon?

Issue with the webex initialisation and authorisation

We are upgrading the our Cisco SDK with V2 to V3 version.
In version V3 it's mentioned that before invoking any api webex.initialize is need be invoked.

Here is the implementation for it and I am facing issue in specific use-cases for webex.initialize and authorisation process.
We are using JWT token for the authentication.

    webex.initialize { [self] (isLoggedIn) in
        //            if(isLoggedIn) {
        //
        //            } else {
        if let authenticator = webex.authenticator as? JWTAuthenticator {
            authenticator.authorizedWith(jwt: jwtToken, completionHandler: { result in
                switch result {
                case .failure( _):
                    print("failure")
                    return
                case .success(let authenticated):
                    if authenticated {
                        self.webex.people.getMe(completionHandler: { result in
                            print("getMe",result)
                            if let person = result.data, let personId = person.id {
                                self.personId = personId
                            }
                            DispatchQueue.main.asyncAfter(deadline: .now() + 3.0) {
                                self.connectingWithTheCall()
                            }
                        })
                    } else {
                    }
                }
            })
        }
        //            }
    }

When user disconnect the call we are deauthorizing user with the webex instance.

    self.webex.authenticator?.deauthorize {
        self.webex = nil
        CiscoChatManager.shared().isFirstTimeFechingTheData = false
        print("deauthorize successfully")
    }

Scenario 1 :
Let's assume we have two users in room User1 and User2 respectively.

  • User1 has tried to Join the room by using this JWT token with one device. It has authorised and Joined the room. Somehow user kill the during video consultation and restart the app again.

Issue 1:

  • Now In this case If we try to join the room with User2 with same device isLoggedIn flag come always true as Its authorise for User1.

Issue 2:

  • If we take the approach as above to authorised user every time we are not getting any call back response of authenticator.authorizedWith(jwt: jwtToken) method in this specific use case.

Issue 3:

  • I have also tried to deauthorize user if we get the value of isLoggedIn flag true but In that case application is crashing.

In this usecase user will get blocked. Please check and suggest the approach.

Scenario 2:
The method which we are calling for connecting the call after invoking the webex.initialize has applied delay of 3.0 seconds.

Issue 4:

  • I have observed that If we try to connecting the call as soon as Initialise the webex we are getting Call.Failed error. This error comes almost every-time If we are not putting delay over here. It's observed that any API like getting chat messages, connecting call is not working if we call this API(Methods) immediately after initialise and authorise webex instance.

I have attached the verbose log file for the Issue 2 for Scenario 1 (NotGettingAuhoriseCallBackResponse_Log.txt). NotGettingAuhoriseCallBackResponse_Log.txt

Login with access token doesn't works on real device.

We are trying to implement webex-ios-sdk in a flutter app. We did an integration on our app delegate and login works for us in a simulator, but the same login didn't work on my iPhone.

I debug the code and what i can see is:

  • Function authenticator.authorizedWith(accessToken: String, expiryInSeconds: Int?, completionHandler: @escaping (_ result: WebexSDK.AccessTokenLoginResult) -> Void): The access token that i put on the alert is OK, but when the handler must give us a result, don't do do anything and skipp all the code inside handler. Looks like an error with keychain but i have configured app groups and keychain groups correctly.
Captura de pantalla 2024-01-24 a las 13 05 10

if anyone can help me I'd be very thankful.

Cannot update to Socekt.io 14.0.0

Reason for the update is simply due to the fact that I need to use Socket.io's latest SDK to connect to websockets for other functionality but cannot update it as it uses a version of Starscream that is not compatible with WEBEX SDK.

I'm running Xcode 10.2 and using Swift 4.2

Pod File
pod 'WebexSDK', ~> 2.0.0 pod 'Socket.IO-Client-Swift', ~> 14.0.0

Terminal
[!] CocoaPods could not find compatible versions for pod "Starscream: In Podfile: Socket.IO-Client-Swift (> 14.0.0) was resolved to 14.0.0, which depends on Starscream (> 3.0.6)
WebexSDK (> 2.0.0) was resolved to 2.0.0, which depends on Starscream (= 3.0.5)

Thumbnail URL issue when we are getting for message through Socket in version V3

When we are getting message through the onEvent method of webex we are facing following issues :

  1. For sender user thumbnail is not there so we can not preview it.
  2. For receiver user image thumbnail is working but pdf thumbnail we are getting error WebexSDK.WebexError.failed(reason: "notAvailable")

NOTE: This thing is working fine when we are fetching message from message list. The above issue happen we are getting it onEvent method

We are not getting Space Id in latest 3.8.3

Facing a problem with SpaceID. Does not getting spaceId after authorising JWT token. I have tested with kitchenSink app 3.8.3 in that also we are not getting spaceId many times.

Please provide the update for the same

Alamofire 5.0.5

Hi,
is it possible to update Alamofire to 5.0.5 version?
I'm stumped with my project on this issue.
Thanks

Speaker property for Call object is not working while migrating to V2 to V3

We are migrating our implementation from 2.8.0 to new version 3.0.0 for our video call implementation.
We have found that speaker value of the call object is not working for us which was working in 2.8.0. We have requirement to enable or disable the speaker of the phone while video calling.

Here is the implementation
isLocalSpeakerEnable = !isLocalSpeakerEnable
self.call?.isSpeaker = isLocalSpeakerEnable

We have also observed that for Local MediaRenderView has a black vertical line if the view's aspect ratio is not matched properly. We could not find the video rendermode property for the local MediaRenderView.

The Project doesn't build in Xcode 12 with Swift 5.3.

I am getting No such module 'AlamofireObjectMapper' error right now. I used the Cocoapod package manager instructions to download but I am getting the following errors in the Package Resolution failure:

https://github.com/tristanhimmelman/AlamofireObjectMapper has no Package.swift manifest for version 6.3.0

Could you please contact the appropriate people to fix the packages that are missing from the webex-ios-sdk?

Thanks in advance!

Trying to extract this SDK to a react native package that can be reused

Bug Report

TL.DR.: When i compile my custom library it compiles, but when i try to use the library i've created on a real app, the app does not compile. And it really seems with WebexSDK package because with other packages/pods it works.

🔎 Search Terms

react native webex sdk, webex ios sdk as package, extract ios webex

🕗 Version & Regression Information

3.5.0

🛠 Tool Used

Macbook Pro 16GB M1

💻 Code

I Have tried installing FBSDKCoreKit in the .podspec and it compiled and worked as expected. Then when i removed the FBSDKCoreKit and installed WebexSDK it gave me an error when running the code.
This one is when installing WebexSDK library on the .podspec file
https://youtu.be/NeP2NX6cjGA

require "json"

package = JSON.parse(File.read(File.join(__dir__, "package.json")))
folly_version = '2021.06.28.00-v2'
folly_compiler_flags = '-DFOLLY_NO_CONFIG -DFOLLY_MOBILE=1 -DFOLLY_USE_LIBCPP=1 -Wno-comma -Wno-shorten-64-to-32'

Pod::Spec.new do |s|
  s.name         = "react-native-module"
  s.version      = package["version"]
  s.summary      = package["description"]
  s.homepage     = package["homepage"]
  s.license      = package["license"]
  s.authors      = package["author"]

  s.platforms    = { :ios => "13.0" }
  s.source       = { :git => "https://github.com/nicolasmelo1/react-native-module.git", :tag => "#{s.version}" }

  s.source_files = "ios/**/*.{h,m,mm,swift}"

  s.dependency "React-Core"
  s.dependency "WebexSDK"

  # Don't install the dependencies when we run `pod install` in the old architecture.
  if ENV['RCT_NEW_ARCH_ENABLED'] == '1' then
    s.compiler_flags = folly_compiler_flags + " -DRCT_NEW_ARCH_ENABLED=1"
    s.pod_target_xcconfig    = {
        "HEADER_SEARCH_PATHS" => "\"$(PODS_ROOT)/boost\"",
        "CLANG_CXX_LANGUAGE_STANDARD" => "c++17"
    }

    s.dependency "React-Codegen"
    s.dependency "RCT-Folly", folly_version
    s.dependency "RCTRequired"
    s.dependency "RCTTypeSafety"
    s.dependency "ReactCommon/turbomodule/core"
  end
end

🙁 Actual behavior

I'm getting this error on the console:

 Failed to build iOS project. We ran "xcodebuild" command but it exited with error code 65. To debug build logs further, consider building your app with Xcode.app, by opening ModuleExample.xcworkspace.
Command line invocation:
    /Applications/Xcode.app/Contents/Developer/usr/bin/xcodebuild -workspace ModuleExample.xcworkspace -configuration Debug -scheme ModuleExample -destination id=F364796E-5140-4CFD-ADE9-4CF794593068

User defaults from command line:
    IDEPackageSupportUseBuiltinSCM = YES

note: Using new build system
note: Planning
Analyze workspace

Create build description
Build description signature: 3fe56389d13fb695936aad1cd79bf6b2
Build description path: /Users/nicolasmelo/Library/Developer/Xcode/DerivedData/ModuleExample-cdzaxfvrbkxfyechcpvzbzeijktn/Build/Intermediates.noindex/XCBuildData/3fe56389d13fb695936aad1cd79bf6b2-desc.xcbuild

note: Build preparation complete
note: Building targets in dependency order
warning: Capabilities for Signing & Capabilities may not function correctly because its entitlements use a placeholder team ID. To resolve this, select a development team in the ModuleExample editor. (in target 'ModuleExample' from project 'ModuleExample')
/Users/nicolasmelo/lc-workspace/react-native-module/example/ios/ModuleExample.xcodeproj: error: The linked library 'libPods-ModuleExample.a' is missing one or more architectures required by this target: x86_64. (in target 'ModuleExample' from project 'ModuleExample')

2022-07-28 21:51:31.181 xcodebuild[28358:2026708] Requested but did not find extension point with identifier Xcode.IDEKit.ExtensionSentinelHostApplications for extension Xcode.DebuggerFoundation.AppExtensionHosts.watchOS of plug-in com.apple.dt.IDEWatchSupportCore
2022-07-28 21:51:31.182 xcodebuild[28358:2026708] Requested but did not find extension point with identifier Xcode.IDEKit.ExtensionPointIdentifierToBundleIdentifier for extension Xcode.DebuggerFoundation.AppExtensionToBundleIdentifierMap.watchOS of plug-in com.apple.dt.IDEWatchSupportCore
** BUILD FAILED **

It is strange because FBSDKCoreKit works and WebexSDK don't. It's important to say that on both cases i'm not even importing any of those SDKs on the code. I'm just adding WebexSDK to the podspec and compiling, there is no single code there.

What we are trying to do is create a library that we could reuse in our projects that have WebexSDK inside of it, it looks like WebexSDK cannot be compiled in a separated source from the app, it's meant to be used and compiled on the app. This is really bad for us because it means that if we want to use the SDK on two distinct apps we need to CTRL+C and CTRL+V the code. Which is definetly not ideal.

🙂 Expected behavior

I want to be able to compile WebexSDK without the app so i can extract the logic in a single library than can be reused by everyone in the team and the company. Right now the problem really seems on WebexSDK

Active speaker detection broken for grouped call.

Environment:

iOS 14.0.1
Webex SDK: 2.6.0

Preconditions:
Grouped call with User A, B, C

MediaChangedEvent.activeSpeakerChangedEvent never posting.
As a result, isActiveSpeaker in CallMembership object always false for each call participant.
Everything working fine in the previous WebexSDK version

For debugging you can check this function inside WebexSDK
private func onMediaEngineDidActiveSpeakerChange(_ notification: Notification)

App hangs when trying to record a video via UIImagePickerController.

Environment:

  • iOS 14.0.1
  • Webex SDK: 2.6.0
let pickerController = UIImagePickerController()
pickerController.delegate = self
pickerController.allowsEditing = true
pickerController.mediaTypes = ["public.image", "public.movie"]
pickerController.sourceType = .camera
present(pickerController, animated:true)

Problem:
We noticed that app hangs when trying to record a video via UIImagePickerController after Webex SDK initialization.
We spend some time on debugging and find out that the problem lays in Microphone switching logic.
UIImagePickerController and MicrophoneSelector object (from Wme.framework) start "fighting" for Active microphone in a loop. This leads to app hangs.

Video size issue with cross platform (Mobile to Web)

We are using Webex platform for both web and mobile video calling feature. We are using latest SDK for both the platform.
We have found that there is video size issue when we are testing with Mobile to Web. Here I have attached the screenshot for the same. Web has joined from laptop and mobile has joined from iOS device. Video from Web is displaying very small and in landscape in mobile.
We have check in kitchen sink app from testflight and it has also a same behaviour

We are using this Web SDK : https://github.com/webex/webex-js-sdk.

Please check and guide us on same.
IMG_0241

AppStore rejection: The app references non-public selectors in Frameworks/UCFBridge.framework/UCFBridge: terminate

Hey,
Today I try to upload a new app version to TestFlight, but unfortunately, my build was rejected. It was the first build that includes Webex SDK.
As I saw, this package UCFBridge is used in your SDK. Do you have a suggestion idea how I can resolve this issue?

Thanks for help

We identified one or more issues with a recent delivery for your app, XXXX. Please correct the following issues, then upload again.

ITMS-90338: Non-public API usage - The app references non-public selectors in Frameworks/UCFBridge.framework/UCFBridge: terminate. If method names in your source code match the private Apple APIs listed above, altering your method names will help prevent this app from being flagged in future submissions. In addition, note that one or more of the above APIs may be located in a static library that was included with your app. If so, they must be removed. For further information, visit the Technical Support Information at http://developer.apple.com/support/technical/

Best regards,

The App Store Team

Build Failed Rosetta

Trying to build for simulators brings up build errors when adding in the Webex pod..
When trying to build on any simulator device.. I have tried from 15.5 up to 16.4

I have tried back to 3.7.1 and it still provides the same issue.

Xcode 14.3.1

We are running with standard arch

Screenshot 2023-07-07 at 8 04 40 AM

and yes.. I would rather not have to use Rosetta to build..

New release with hotfixes

Hello!

Looking through the repo and all branches there seems to be a lot of "hotfixes" that solves some of our feature needs.
Is there any plan for doing a proper release any time soon?

/Andreas

SPM support

Hello,
is Swift Package Manager support in your plans for the near future?

Thanx in advance.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.