Problem:
A developer reported that their iOS application for Flexible Classroom is crashing when built and run using Xcode 16. The issue does not occur when using Xcode 15. The crash happens immediately at app launch during the loading of Armin.framework.
Here is the error log:
dyld[2501]: Symbol not found: __ZN5swift34swift50override_conformsToProtocolEPKNS_14TargetMetadataINS_9InProcessEEEPKNS_24TargetProtocolDescriptorIS1_EEPFPKNS_18TargetWitnessTableIS1_EES4_S8_E
Referenced from: <A22463F7-7C20-3CD9-95B8-ABB049BF5E98> /private/var/containers/Bundle/Application/383E103A-037B-4719-BC9E-E1242743A8DA/TutorTod.app/Frameworks/AgoraReport.framework/AgoraReport
Expected in: <FB057F30-5F79-3ACE-8412-FABD974E0286> /private/var/containers/Bundle/Application/383E103A-037B-4719-BC9E-E1242743A8DA/TutorTod.app/Frameworks/Armin.framework/Armin
Installed Dependencies:
Agora Service Libraries:
-
pod 'AgoraRtcEngine_iOS/RtcBasic', '3.6.2'
-
pod 'AgoraMediaPlayer_iOS', '1.3.0'
-
pod 'AgoraRtm_iOS', '1.4.8'
-
pod 'Agora_Chat_iOS', '1.0.6'
-
pod 'Whiteboard', '2.16.39'
Agora Flexible Classroom Open Source Libraries:
-
pod 'AgoraClassroomSDK_iOS', '2.8.0'
-
pod 'AgoraEduUI', '2.8.0'
-
pod 'AgoraWidgets', '2.8.0'
-
pod 'AgoraProctorSDK', '1.0.0'
-
pod 'AgoraProctorUI', '1.0.0'
Agora Flexible Classroom Closed Source Libraries:
-
pod 'AgoraUIBaseViews', '2.8.0'
-
pod 'AgoraEduCore', '2.8.0'
-
pod 'AgoraWidget', '2.8.0'
In iOS, these dependencies were installed with some customizations made. While the application runs successfully in Xcode 15, it crashes when run in Xcode 16.
Root Cause:
The Flexible Classroom iOS version crashes in Xcode 16 because it is still being adapted to this environment. The issue will be resolved in version 2.8.106.
Solution:
Developers can now build and run their applications in Xcode 16 using the new Flexible Classroom iOS version 2.8.106, released on 2025.01.03.
Additional Instruction:
Update the library to AgoraEduCore 2.8.106
if they prefer not to update the UI layer.