-
Notifications
You must be signed in to change notification settings - Fork 884
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
AWSMobileClient signIn webview freezes in XCode 16 and iOS 18. #5441
Comments
@dcristolovean Thanks for submitting the issue. We'll work on reproducing the issue and provide updates. |
I only use the simulators at the moment. The issue appears when running all the 'new' stuff: Xcode 16, iOS18 simulators. I am now running my code on the same machine, Xcode 15.4 downloaded and run separately from my XCode 16 and it works. In the 17.5 simulators, of course, I can't use an 18 simulator on XCode 15.4 :) Ask me for any other details, this is quite urgent for us, I have to do some iOS 18 related fixes and if AWS fails, we're dead in the water. Thank you. |
and on an unrelated note, but still iOS 18 related. We're using AWS AppSync. That SDK is dead, maintenance mode. There was an iOS 18 compile error issue, they fixed it but they only pushed in main, not created a new version, since it's... in maintenance mode. If you find and fix the issue I have with login, what will happen ? You'll bump the version to another 2.37.x which I won't get because of AppSync. Maintenence mode or not, AppSync needs to update it's dependencies, otherwise the entire AWS SDK becomes useless in Xcode 16 and iOS18. You can't login anymore if you have AppSync in your app. Am I wrong here ? |
Hi @dcristolovean. I was unable to reproduce this issue running a simple project in an iOS 18 simulator, the login webview loads successfully with no freezing. I've tried both with Xcode 15.4 and Xcode 16. To help us investigate further, please provide the following:
Regarding the AWS AppSync SDK, maintenance mode ended in September 1, 2024. As such, no new updates will be made as stated in our documentation. This includes upgrading its AWS SDK dependency. |
Hello.
{
Before I ask the user to sign in, there are indeed operations done with AWS and those are OK, logs show what's happening and all's good. (we using API Gateway) - non-auth user Then, asking the user to login -> I get the system dialog then webview stuck, no logs. We use standard providers, like FB, Google, Apple and also other 3rd parties SSOs. They all get stuck in xcode 16, but they all work in 15.4
Updating to Amplify is not a viable solution now, it will take an extremely long time because of all our services we're using. Only API Gateway has > 300 API requests, with the auto-generated models that come with it that now need to be done by hand, since Amplify doesn't auto-generate them. And many many other little things, Cognito, AppSync, S3, SNS, Pinpoint etc It's planned for the future, but out of the question at the moment.
AWS
|
@dcristolovean Are you able to configure verbose logging and attach the log output for us to troubleshoot even if you think that the log is not helpful? |
I created a test project that has the exact same issue. Configuring SignInProvider : CognitoUserPool. Then nothing when I press a button and start the SignIn process. I created the project with our credentials so it actually connects to something. Is there a way to give that to you ? |
@dcristolovean You can upload the project as a zip file with any sensitive or confidential information redacted. |
It's just a simple proj I created today, all's in ContentView.swift. It starts AWS with a 'dynamic' dictionary and then tries to login via Google. You need to add your ids/secret. Running both XCodes is a bit tricky, since officially XCode 15.4 doesn't work in macOS 15. I downloaded 15.4 from Apple and switching between XCodes with sudo xcode-select -s /Applications/Xcode.app/ and sudo xcode-select -s /Applications/Xcode154.app/ To actually start XCode 15.4, you need to Show Package Content on it, Contents -> MacOS -> and double click on XCode in there to actually start it. Sorry if you knew that already. |
Thanks for providing the project. I'll take a look and post updates in here. |
@dcristolovean I was able to reproduce the issue with the project you provided, which is very similar to the one I used when attempting to reproduce. So I compared both of them and noticed you have arm64 as Excluded Architectures in your installer.pods_project.build_configurations.each do |config|
config.build_settings["EXCLUDED_ARCHS[sdk=iphonesimulator*]"] = "arm64"
end Is there a reason you need this exclusion? I removed it and the project still builds successfully, and then the sign in webview loads correctly. As to why this is only now causing issues, my guess is that Apple changed something internally when building for iOS 18. Regarding AppSync SDK for iOS, its maintenance mode has already ended, so there will be no more updates nor support going forward. |
Oh yes, without that exclusion you'll get tons of errors in other Pods. Mostly Firebase and Google that also load BoringSSL or grpc and so on. Those don't even compile without those exclusions.
Even when I made this simple test project, I couldn't compile it with all these Pods, unless I have all those modification in the Pod file. From Excluded Architectures to Deployment Target set to 13, Disable Bitcode and so on. Remove the Excluded Archs from the pod file, add those and do a pod install. I couldn't get it to work without excluding arm64. And that's what tons of post of the web suggest as a fix. Any suggestions ? LATER EDIT: But wait a minute, even AWS doesn't work if I comment out the excluded arm64. Project doesn't even compile, it cant' find any AWS imports and stops.
Clear Derived Data, clear Build Folder and then try to compile. It won't work. Even AWS needs that :( |
@dcristolovean It is not true that AWS needs this setting to work, as I wasn't using it in my original simple product. So there might be something else going on in your workspace, or perhaps some of your dependencies are outdated (I found some evidence that Firebase used to need that setting but now doesn't, so that could be it). In any case, this is not an issue caused by the AWS SDK itself, so there's not much we can do about it. As a side note, when you get those |
So the error occurred because I still had the excluded archs in the main proj, not only on the Pods proj. So it was building for x86_64 and that didn't work. I used a clean Podfile and restarted the process, no more excluded archs. And in the end, it seems to be actually working now, no more freeze on the webview. Very interesting. On a side note, doing a clean pod install with only AWS still doesn't work as it should. I support iOS16, it's set in the proj and in the podfile. Even so, some AWS projects in the Pods proj are set to iOS 8. This doesn't work, you'll get a compile error, something sqlite related that's not supported in some SDK. So you have to either manually set it to 16 or via the podfile at the end. Only then it will compile and everything works. Thanks for identifying the issue in the end. |
I'm glad to hear it's working for you now. All of our pods have a minimum deployment version of iOS 12, so I don't know why you would get them as iOS 8. Perhaps some weird caching stuff again, but you can always upgrade them to the appropriate version. Closing this issue. |
This issue is now closed. Comments on closed issues are hard for our team to see. |
Describe the bug
As the title states, the webview login screen completely freezes as soon as it loads.
MacOS Sequoia 15.0, no betas. The issue occurs only on XCode 16. Installing XCode 15.4 on the same machine (with a bit of trickery) works. The Login webview appears correctly and doesn't freeze.
To Reproduce
Observed Behavior
Web login completely frozen and empty, no button works from the webview
Expected Behavior
Normal standard login.
Code Snippet
AWSMobileClient.default().showSignIn(navigationController: nav, hostedUIOptions: hostedUIOptions) { userState, error in
.....
}
Screenshots
Environment(please complete the following information):
Device Information (please complete the following information):
The text was updated successfully, but these errors were encountered: