AgoraIO-Extensions / AgoraIO-Extensions/Agora-Flutter-SDK
iOS Release Mode: Agora RtcEngineEventHandler callbacks are not firing after joinChannel() in FlutterFlow project
- Lingua principale
- Dart
- Stelle
- 795
- Fork
- 448
- Merge medio
- 12h 19m
- PR unite (30g)
- 14
Descrizione
### Version of the agora_rtc_engine
We are using agora_rtc_engine in a FlutterFlow-managed Flutter application.
Issue occurs only in iOS Release/TestFlight builds.
Behavior observed:
Agora engine initializes successfully
startPreview() completes successfully
joinChannel() completes successfully
UI remains responsive
Local loading indicator continues indefinitely
However, after joinChannel() completes, none of the RtcEngineEventHandler callbacks fire anymore.
The following callbacks never trigger:
onJoinChannelSuccess
onConnectionStateChanged
onLocalVideoStateChanged
onError
onUserJoined
Important observations:
Debug mode works correctly
Problem occurs only in iOS Release/TestFlight mode
We added try-catch blocks inside all callbacks, but they are never entered
No Dart exceptions are thrown after joinChannel()
Event handler registration completes successfully
Previously observed error:
Invalid argument(s): '0' is not one of the supported values: 1,2,3,4,5
Stacktrace:
ConnectionStateTypeExt.fromValue
(package/src/agora_base.dart)
After removing all getConnectionState() calls, the previous exception disappeared, but callbacks still never fire in iOS release mode.
Environment:
FlutterFlow-managed project
agora_rtc_engine: 6.5.2
iOS Release/TestFlight build
Flutter application
Question:
Could this be an iOS release-mode callback bridge issue, enum parsing issue, or FlutterFlow compatibility issue with Agora Flutter SDK?
### Platforms affected
- [ ] Android
- [x] iOS
- [ ] macOS
- [ ] Windows
- [ ] Web
### Steps to reproduce
Steps to Reproduce:
1. Create a FlutterFlow project using agora_rtc_engine version 6.5.2.
2. Configure Agora live streaming with:
* createAgoraRtcEngine()
* initialize()
* registerEventHandler()
* enableVideo()
* startPreview()
* joinChannel()
3. Build and run the app in iOS Debug mode:
* All Agora callbacks work correctly.
* Camera preview and join flow work normally.
4. Build the same project in iOS Release/TestFlight mode.
5. Launch the live stream page as broadcaster/host.
6. Observe logs:
* Engine initialization succeeds.
* startPreview() succeeds.
* joinChannel() completes successfully.
* UI remains responsive.
7. After joinChannel(), no RtcEngineEventHandler callbacks fire anymore:
* onJoinChannelSuccess
* onConnectionStateChanged
* onLocalVideoStateChanged
* onError
* onUserJoined
8. Local loading indicator continues indefinitely because callbacks never arrive.
Additional Notes:
* We previously observed:
Invalid argument(s): '0' is not one of the supported values: 1,2,3,4,5
* Stacktrace pointed to:
ConnectionStateTypeExt.fromValue
(package:agora_rtc_engine/src/agora_base.dart)
* Removing getConnectionState() removed the exception, but callbacks still do not fire in iOS release mode.
### Expected results
Expected Behavior:
After joinChannel() completes in iOS Release/TestFlight mode, the registered RtcEngineEventHandler callbacks should fire normally, exactly as they do in Debug mode.
Expected callback flow:
* onConnectionStateChanged should trigger with connecting/connected states
* onJoinChannelSuccess should trigger successfully
* onLocalVideoStateChanged should trigger when local video capture starts
* Local camera preview should become visible
* Host should successfully join the live stream channel
* Remote users should be able to receive broadcaster video/audio
The behavior in iOS Release mode is expected to match the behavior already working correctly in iOS Debug mode.
### Actual results
Actual Behavior:
In iOS Release/TestFlight mode, Agora initialization appears to complete successfully:
* createAgoraRtcEngine() succeeds
* initialize() succeeds
* startPreview() succeeds
* joinChannel() completes successfully
The application UI remains responsive and does not crash.
However, after joinChannel() completes:
* No RtcEngineEventHandler callbacks fire
* onJoinChannelSuccess is never triggered
* onConnectionStateChanged is never triggered
* onLocalVideoStateChanged is never triggered
* onError is never triggered
* onUserJoined is never triggered
Because callbacks never arrive:
* _localUserJoined never becomes true
* _videoReady never becomes true
* Local camera preview never appears
* The loading indicator continues indefinitely
Additional observations:
* Wrapping all callbacks in try-catch blocks did not produce any logs or exceptions
* Callback bodies are never entered
* The issue occurs only in iOS Release/TestFlight builds
* The same implementation works correctly in iOS Debug mode
### Code sample
Code sample
```dart
[Paste your code here]
```
### Screenshots or Video
Screenshots / Video demonstration
[Upload media here]
### Logs
Logs
```console
[Paste your logs here]
```
### Flutter Doctor output
Doctor output
```console
[Paste your output here]
```
Guida per i contributori
Apri la guida per i contributori
Valutazione
Questa issue non è ancora stata valutata.