-
Couldn't load subscription status.
- Fork 378
Description
Library version used
4.65.0
.NET version
8.0.403
Scenario
PublicClient - mobile app
Is this a new or an existing app?
This is a new app or experiment
Issue description and reproduction steps
This is a .Net MAUI app written for Windows/IOS. We are leveraging the sample code provided in the MSAL MAUI sample.
This code previously worked just fine, but until IOS18.0.1 and XCode 16, plus any of the relevant updates from the dotnet workloads and nuget packages, this is now consistent.
When executing AcquireTokenInteractiveAsync on PublicClientApplication, the Task never returns and the application hangs.
return await PublicClientApplication.AcquireTokenInteractive(scopes)
.WithLoginHint(existingAccount?.Username ?? string.Empty)
.WithSystemWebViewOptions(systemWebViewOptions)
.WithParentActivityOrWindow(PlatformConfiguration.Instance.ParentWindow)
.ExecuteAsync()
.ConfigureAwait(false);
The last line of logging is:
False MSAL 4.65.0.0 MSAL.Xamarin.iOS .NET 8.0.10 18.0.1 [2024-10-18 16:06:54Z] Invoking the iOS broker
False MSAL 4.65.0.0 MSAL.Xamarin.iOS .NET 8.0.10 18.0.1 [2024-10-18 16:06:54Z] iOS Broker Payload Count: 16
False MSAL 4.65.0.0 MSAL.Xamarin.iOS .NET 8.0.10 18.0.1 [2024-10-18 16:06:54Z] Starting waiting for broker response
We do see this in the device output:
BUG IN CLIENT OF UIKIT: The caller of UIApplication.openURL(:) needs to migrate to the non-deprecated UIApplication.open(:options:completionHandler:). Force returning false (NO).
We noticed this appears to happen right here:
Line 210 in 97c51de
| private async Task InvokeIosBrokerAsync(Dictionary<string, string> brokerPayload) |
Relevant code snippets
return await PublicClientApplication.AcquireTokenInteractive(scopes) .WithLoginHint(existingAccount?.Username ?? string.Empty).WithSystemWebViewOptions(systemWebViewOptions).WithParentActivityOrWindow(PlatformConfiguration.Instance.ParentWindow).ExecuteAsync().ConfigureAwait(false);Expected behavior
No response
Identity provider
Microsoft Entra ID (Work and School accounts and Personal Microsoft accounts)
Regression
No response
Solution and workarounds
Implement the suggested code updates for UIApplication.open() vs UIApplication.openURL().