AWSMobile's showSignUp webview gets stuck
dcristolovean opened this issue · 8 comments
Describe the bug
This is a continuation of #5441
All the info is in there and the problem was related to excluding arm64 arch on the simulator.
The problem doesn't exist if the arm64 is not excluded.
Unfortunately, this fix is not feasible, I have > 20 other pods that completely fail to work if I take out this exclusion. 2-3 days of work with zero results in making everything build.
So my question is this: if we know for sure AWSMobileClient showSignIn hangs on the simulators (arm64 excluded, so probably x86_64, no matter the cause, Apple changed stuff, whatever), isn't this something that is worth investigating and fixed in AWS ?
In theory, this is something that will happen for all devs that still work on an Intel Mac, so it's worth a fix.
Hi @dcristolovean, thanks for reaching out again.
As stated in #5441, AWSMobileClient
does not need the arm64 exclusion to work on a simulator, so it's not an issue on our side.
Unfortunately, this fix is not feasible, I have > 20 other pods that completely fail to work if I take out this exclusion
Then this is really an issue for those > 20 other pods.
if we know for sure AWSMobileClient showSignIn hangs on the simulators (arm64 excluded, so probably x86_64, no matter the cause, Apple changed stuff, whatever), isn't this something that is worth investigating and fixed in AWS ?
There is little we can do if Apple has changed how webviews behave in the simulator when you exclude this architecture. I found this thread that claims this has been happening since the betas.
In theory, this is something that will happen for all devs that still work on an Intel Mac, so it's worth a fix.
While I don't have an Intel Mac to actually test it, building for iOS 18 under Rosetta does result in the same weird behaviour. So this is likely an Apple bug that they will need to fix on their end.
In any case, this is probably only happening in simulators and not in real supported iOS devices, since they all have the ARM architecture.
It doesn't happen on a real device, I tested it. Only on simulators, which is what I use 99% of the time.
You must recognize the fun part of this:
Apple says "Your best course of action would be to follow up with your 3rd parties for support with this."
AWS says "this is likely an Apple bug that they will need to fix on their end."
What do we do in the meantime ? Maybe it's an easy fix on your side, it just needs a bit of investigation. If you actually do discover (for real) that it's an Apple bug, I can follow up with them, provide details and so on.
But at the moment we don't know why it gets stuck, could be something that needs to be updated in AWS.
I'm sure you realize it's an impossibility to get 20 pods fixed, when I can't even get the one who started it all :)
It doesn't happen on a real device, I tested it. Only on simulators
It's good to have confirmation that is not an issue that's going to have any impact in real production environments.
Apple says "Your best course of action would be to follow up with your 3rd parties for support with this."
AWS says "this is likely an Apple bug that they will need to fix on their end."
Apple is saying to ask your 3rd parties to support the arm 64 simulator. We do support it, so the issue is in your other 20+ pods.
when I can't even get the one who started it all :)
You seem to be implying that the AWS SDK for iOS is the cause of this issue, which again is not true. We do not require that exclusion to build.
I'll keep this issue open for now in case new information becomes available (maybe an Apple fix) or someone else is facing the same problem on Intel Mac simulators.
I'm just implying that AWS doesn't really support excluding arm64 on the simulator now in the latest XCode. And that's a problem.
Excluding the arm64 means using the x86_64, which is something that should be supported in the end, right ? If it didn't get stuck (by it's own fault or by Apple's - we don't really know and I'm asking for investigation), we wouldn't have this issue at all.
And no, Apple doesn't say to ask for support of the arm64. Apple responds to that guy who also excluded arm64 and says to ask the 3rd parties to support this. To support excluded archs, not 'included' archs.
And no, Apple doesn't say to ask for support of the arm64. Apple responds to that guy who also excluded arm64 and says to ask the 3rd parties to support this. To support excluded archs, not 'included' archs.
That is one way of reading it, although I disagree with it. The poster states that they "have some third-party SDKs [that] do not support arm64 simulator", and the response is to "follow up with your 3rd parties for support with this", i.e. reach out to those SDKs that don't support the arm64 simulator.
By all accounts this still seems like an actual Apple bug that might affect Intel Macs. I did find another thread with basically the same problem, although someone also stated they don't have the issue in Intel Macs (and there is no mention of excluding the arm64 architecture either, so it could be unrelated).
I just checked in Xcode 16.1 Beta 2 building for iOS 18.1 using Rosetta, and it's still not working. So I advice you also do reach out to Apple as well, or join the existing discussions.
OK, I did another test and got stuck again:
- only AWS pods, no arm64 exclusion
- I have a Bridging-Header.h file that imports another header
- in that header file, I had (working, with arm64 excluded):
#import <AWSAPIGateway/AWSAPIGateway.h>
#import <AWSS3/AWSS3.h>
#import <AWSCognitoIdentityProvider/AWSCognitoIdentityProvider.h>
All of these are failing now, not found.
Even if I use @import, it's the same thing.
I exclude arm64 -> everything starts to work.
Any idea what's going on here ? The internet is full of these topics and the only solution ... exclude arm64 :)
LATER EDIT: I managed to move past this error by adding a User-Defined setting: VALID_ARCHS : arm64 Wow.
I'm closing this issue once again, as it's not within our control.
As reported on the linked forum threads, attempting to use ASWebAuthenticationSession
, SFAuthenticationSession
and even SFSafariViewController
is currently broken when running in iOS 18 simulators with the arm64 architecture excluded.
Since the AWS SDK for iOS does not require the exclusion of the arm64 architecture to build for simulators, we are not directly affected by this issue.
For anyone experiencing this issue and is unable to remove the arm64 exclusion, please do report this problem to Apple as well.
This issue is now closed. Comments on closed issues are hard for our team to see.
If you need more assistance, please open a new issue that references this one.
If you wish to keep having a conversation with other community members under this issue feel free to do so.