Genesys Cloud - Developer Community!

 View Only

Sign Up

  • 1.  iOS Compiling issue with new Mobile Messenger SDK version 1.19.0

    Posted 20 days ago
      |   view attached

    The iOS app team attempted to upgrade the Genesys SDK from version 1.17.0 to 1.19.0 to validate the memory leak fix. However, after updating the SDK and compiling the app, we are encountering both compile-time errors and runtime crashes.

    Issue Details:

    In SDK 1.19.0, there are significant changes to the Genesys SDK, including multiple deletions in the ChatControllerDelegate protocol. Specifically, the method:

    func shouldPresentChatViewController(_ viewController: UINavigationController!)

    has been completely removed. This method is critical for us, as it is the primary place where we present the chat screen. Due to its removal, the app crashes.

    To understand the expected implementation, I downloaded and ran the Genesys demo app from GitHub corresponding to this SDK version. Unfortunately, the demo app also produces multiple errors (screenshots attached).

    Additionally, the developer documentation appears to be outdated. For example, although shouldPresentChatViewController has been removed in version 1.19.0, there is no updated documentation explaining:

    • The replacement method (if any)
    • Changes in the presentation flow
    • How existing implementations should be migrated

    As a result, we are currently unable to proceed with SDK version 1.19.0 using the available documentation and sample app. We are exploring temporary workarounds (such as commenting out the failing code) to unblock testing, but this is not a viable long-term solution.

    Requested Support from the Genesys Team:

    We request that the Genesys team review this issue and provide clear resolution steps. Specifically, Macy's is looking for the following:

    1. An updated sample app demonstrating correct usage of SDK 1.19.0, with no compiler errors and a working chat flow.
    2. Updated developer documentation clearly outlining:
      • Deprecated/removed delegate methods
      • New or replacement delegate methods
      • Migration guidance from older SDK versions to 1.19.0

    Please let us know how we should proceed and if there is a recommended migration path for the removed delegate methods.


    #MobileMessenger

    ------------------------------
    Tricia Taylor
    Product Manager
    ------------------------------


  • 2.  RE: iOS Compiling issue with new Mobile Messenger SDK version 1.19.0

    Posted 17 days ago

    Hi @Tricia Taylor
    Thanks for raising this up. 

    The method shouldPresentChatViewController is still required and present in the current SDK. The errors you are seeing are most likely caused by a cached or corrupted version of the GenesysCloud.xcframework, resulting in a mismatch between headers and binaries.

    We verified that the SDK works as expected by integrating it into a fresh iOS project using our official documentation.

    Recommended resolution:

    1. Clear CocoaPods cache: pod cache clean --all

    2. Delete local Pods and lockfile: remove Pods/ and Podfile.lock

    3. Clean Xcode build artifacts (Product → Clean Build Folder, or delete DerivedData)

    4. Reinstall pods: pod install --repo-update

    5. Clean and rebuild the project

    After performing these steps, the issue should be resolved.


    Please, let me know if you are still experiencing this issue after following steps from above.



    ------------------------------
    Anton Afanasiev
    Manager, Mobile Development
    ------------------------------



  • 3.  RE: iOS Compiling issue with new Mobile Messenger SDK version 1.19.0

    Posted 17 days ago

    Hi @Anton Afanasiev,

    Thanks for the suggestion and steps provided, i have done exactly the same thing like you suggested, still after doing that, i am still having issues with one method called as "Value of type 'ChatElement' has no member 'getText" (attached screen shot)

    -> When i looked over the  chatElement protocol definition -> i dont find/see the getText() -> where as if i revert back to 1.17.0 -> it is working fine and compiling well.(for reference also attaching the screenshot of the SDK methods) 

    Resolution: We need to have this getText() method get back up and running, as this is one of the important thing OR if not can you provide me alternate way to get the text.

    image

    Question 2:  Coming to the method:  shouldPresentChatViewController, i agree that method is still there/present and support in current SDK (1.19.0), but if we Dont write/declare the method with @objc func shouldPresentChatViewController(_ viewController: UINavigationController!) { } -> I am experiencing the crash as unrecognized sector, -> BUT where as in in 1.17.0 I can clearly see that method in SDK definition(by right click on ChatControllerDelegae and jump to definition) BUT with 1.19.0 I CANNOT see that method.



    ------------------------------
    Varun Mamindla
    Senior Software Engineer
    ------------------------------



  • 4.  RE: iOS Compiling issue with new Mobile Messenger SDK version 1.19.0

    Posted 16 days ago

    Hi @Varun Mamindla

    Please note that due to the year-end shutdown, our response may be slightly delayed. We appreciate your patience and understanding.
    Our iOS developer will take a closer look at this issue after we back from year-end shutdown.



    ------------------------------
    Anton Afanasiev
    Manager, Mobile Development
    ------------------------------



  • 5.  RE: iOS Compiling issue with new Mobile Messenger SDK version 1.19.0

    Posted 3 days ago

    Hello @Varun Mamindla,

    I checked again the 1.19 production release and I'm able to use the getText() method. This API was not changed in recent versions.

    I added to sample app:

            guard !chatElement.isLoadedFromHistory,
                  chatElement.getText() != nil else {
                return
            }

    This complies for me, and I'm able to use Xcode jump definition on getText() to see the full public interface:

    extension ChatElement {
    
        public func getText() -> String?
    
        public func setText(_ text: String)
    
        public func convertToFileElement(file: GenesysCloudCore.DownloadableFile) -> GenesysCloudCore.ChatElement
    }

    Are you using the Genesys released Cocoapods podspecs or self hosting the framework? In case you are self hosting please double check that you are using the correct 1.19 production artifact for each dependency (GenesysCloud, GenesysCloudMessenger, GenesysCloudCore), and that your self hosted podspec is correctly pointing to these artifacts.

    If you are using the original Genesys podspec and artifact hosting (genesys jfrog), please share your Podfile.lock content so we can validate.



    ------------------------------
    Andras Solyom
    Senior Mobile Software Engineer - iOS
    ------------------------------



  • 6.  RE: iOS Compiling issue with new Mobile Messenger SDK version 1.19.0

    Posted 2 days ago

    Hi @Andras Solyom,

    Thank your for your response, i have done exactly the same way, i have created an plain xcode project and added only genesys cloud dependency in my pod file, and when run that sample app still getting the same error -> Also attaching my demo project for reference.(DemoChat.zip)

    In addition to the above response
    Macys is using Genesys released Cocoapods podspecs  -> I am also attaching our podfile.lock for reference (FileName: Macys Podfile(lock).txt

    Here is the Pods that are getting installed for genesys.

    image

     



    ------------------------------
    Varun Mamindla
    Senior Software Engineer
    ------------------------------

    Attachment(s)

    txt
    Macys Podfile(lock).txt   51 KB 1 version
    zip
    DemoChat.zip   61 KB 1 version


  • 7.  RE: iOS Compiling issue with new Mobile Messenger SDK version 1.19.0

    Posted 2 days ago

    Hi @Varun Mamindla,

    You are right, something went wrong in a recent release, most likely related to a new Xcode version (and swift compiler) changes.

    If I open /Pods/GenesysCloudCore/GenesysCloudCore.xcframework/ios-arm64/GenesysCloudCore.framework/Modules/GenesysCloudCore.swiftmodule/arm64-apple-ios.private.swiftinterface I can see this:

    extension GenesysCloudCore.ChatElement {
      #if compiler(>=5.3) && $NonescapableTypes
      public func getText() -> Swift.String?
      #endif
      public func setText(_ text: Swift.String)
      public func convertToFileElement(file: GenesysCloudCore.DownloadableFile) -> GenesysCloudCore.ChatElement
    }

    Showing that the getText() function was wrapper by the compiler in a #if compiler(>=5.3) && $NonescapableTypes condition. This condition was not there for 1.17 that was built with an older Xcode version. Most likely the reason we did not notice this is because we have Xcode 26 on all our machines.

    This was not intentional, our SDK should be backward compatible with previous Xcode and Swift compiler version.

    We will need to do a deeper internal investigation into this, to see what changed in our build process.

    A temporary workaround would be to upgrade your xcode versions, but we will release a new version with proper backward compatibility once we find the root cause.



    ------------------------------
    Andras Solyom
    Senior Mobile Software Engineer - iOS
    ------------------------------