mirror of
https://github.com/ProxymanApp/atlantis.git
synced 2026-04-26 08:26:04 +03:00
[GH-ISSUE #134] AtlantisHelper crashes when using websockets and Intercom's new package #81
Labels
No labels
Done
Done
Windows
bug
bug
bug
enhancement
enhancement
enhancement
good first issue
hacktoberfest
pull-request
wontfix
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
starred/atlantis#81
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @chadparker on GitHub (Aug 9, 2023).
Original GitHub issue: https://github.com/ProxymanApp/atlantis/issues/134
Originally assigned to: @NghiaTranUIT on GitHub.
Xcode 14.3.1 (14E300c)
@NghiaTranUIT commented on GitHub (Aug 9, 2023):
Hey @chadparker just wondering: What Atlantis version and iOS version you're using?
I'd like to investigate it 👍
@chadparker commented on GitHub (Aug 9, 2023):
Atlantis 1.21.1
iOS 15.4 and 16.4
@chadparker commented on GitHub (Aug 9, 2023):
We have narrowed it down to moving to Intercom's new iOS package.
When I revert back to the previous version Atlantis works again with websockets.
We were also having issues with the debugger not working while using the newer package:
but reverting to the previous version of Intercom fixes that as well. Very surprising it would cause issues like this. Going to send them a support message now.
@NghiaTranUIT commented on GitHub (Aug 10, 2023):
Thanks for the update. Let me know if it's Atlantis bug, then I can check it.
@yuravake commented on GitHub (Oct 4, 2023):
Having the same issue here, @chadparker did you had a chance to fix this?
@chadparker commented on GitHub (Oct 4, 2023):
No, @yuravake we sent a support message to Intercom, and they suggested to try their next release but it didn't fix the issue. We reverted our Intercom version for now. Could you create a support ticket with Intercom to raise visibility into this?
@yuravake commented on GitHub (Oct 5, 2023):
@chadparker yes, will do.
@NghiaTranUIT commented on GitHub (Oct 5, 2023):
Hi @chadparker @yuravake do you think that I should have a function to enable/disable the WebSocket Interceptor on Atlantis ? So, you can opt-out and prevent internal crashes from the Intercom app.
@NghiaTranUIT commented on GitHub (Oct 5, 2023):
By default, Atlantis performs the Method Swizzling from all available classes, including the main app, 3rd-party frameworks, and libraries.
I suggest:
method swizzlingfor the current app.It might solve all problems.
@chadparker commented on GitHub (Oct 6, 2023):
@NghiaTranUIT That sounds like a good solution; that would be a great function to have! I'm not very familiar with the Atlantis code, but if you could give me things to try I'll definitely let you know if it fixes things.
@NghiaTranUIT commented on GitHub (Oct 7, 2023):
@chadparker @yuravake can you check with the latest version of Intercom ?
Here is my setup:
Result:
@NghiaTranUIT commented on GitHub (Oct 7, 2023):
Turn out it's not technically feasible:
CFNetwork.framework@yuravake commented on GitHub (Oct 9, 2023):
@NghiaTranUIT unfortunately, we can still reproduce this crash on the latest versions(
@NghiaTranUIT commented on GitHub (Oct 10, 2023):
@yuravake can you share with me your setup?
@djbe commented on GitHub (Nov 6, 2023):
Have the same exact crash.
Some info:
@NghiaTranUIT commented on GitHub (Nov 8, 2023):
Hix, not sure why I can't reproduce the crash:
@djbe can you share your setup?
Thanks in advance 🙇
@djbe commented on GitHub (Nov 8, 2023):
bt?Output of `bt`
Output of `bt all`
@NghiaTranUIT commented on GitHub (Nov 8, 2023):
Thanks @djbe . I'm working on the fix now.
@djbe commented on GitHub (Nov 8, 2023):
Hmmm, definitely better than what I'm doing currently (disable Intercom in debug builds).
Any idea on the root cause? Presumably it's something that Intercom and Atlantis are both doing (with web sockets), but what 🤷
@NghiaTranUIT commented on GitHub (Nov 9, 2023):
Sorry for the delay.
@djbe @yuravake @chadparker If you don't mind, let's update Atlantis to v1.23.0 and use this code:
It will skip the Method Swillzing on the WS/WSS connection, which prevents the unexpected crash on the Intercom package 👍
I'm still investigating it, but not found a solution yet. This fix can help you workaround it 👍
@djbe commented on GitHub (Nov 9, 2023):
Can confirm that with the flag set to
false, the crash no longer occurs 🎉@zocario commented on GitHub (Nov 13, 2023):
Hello @NghiaTranUIT and thanks for the fix 👍 For your information we have the same issue with the iOS SDK of Gleap (https://docs.gleap.io/ios/) and using the flag fixes it, maybe it could help you to locate the root cause.
@chaseklingelzen commented on GitHub (Jan 18, 2024):
For what it's worth, we are on Intercom 16.4.0 and that was the reason Atlantis wouldn't work for us. Once we removed Intercom, Atlantis worked great.
@NghiaTranUIT commented on GitHub (Jan 18, 2024):
@chadparker if you want to keep the Intercom, you can use v1.23.0, and opt-out the WebSocket interception 👍
@chadparker commented on GitHub (Jan 19, 2024):
@chadparker Thank you! I have opted out of websockets for Atlantis and it works. Thanks again!
@markanderson-underdog commented on GitHub (Feb 22, 2024):
Hey! I'm a new Atlantis user and I'm encountering this same problem, and just found this issue. I can also confirm that adding the
shouldCaptureWebSocketTraffictofalsefixes the app crash! However, as the name implies, I now cannot see messages from Websocket traffic in Proxyman, which is what I want to use Atlantis for. Is there any other solution planned, or workaround that others have found?@NghiaTranUIT commented on GitHub (Feb 23, 2024):
@markanderson-underdog unfortunately, there is no workaround atm because I can't reproduce the crash on my side with Atlantis + Intercome.
I suggest disabling the Intercome if possible to see the WS/WSS traffic.
May I ask:
@markanderson-underdog commented on GitHub (Feb 23, 2024):
@NghiaTranUIT awesome! By removing the line of code where we
init()the Intercom SDK by callingIntercom.setApiKey(), the app crash no longer occurs and I can view Websocket traffic using Atlantis 🎉The Intercom version is 1.6.5 (the latest), and we're using SPM for both Intercom and Atlantis.
The STR is as simple as just launching the application, and letting the SDKs initialize. Below is the full variable debugger when the crash in Atlantis. Please let me know if there's anything else I can provide!
