MAUI WebView doesn't allow to web session to inspected in Safari developer tools (Mac Catalyst)
See original GitHub issueDescription
WKWebView Safari developer tools (inspect option) are not available in a MAUI Mac app. If the same app is created using native tooling Xcode + Swift with no extra configuration/entitlements - it works (there is a visible session to inspect in Safari dev tools). If a new MAUI app is created with just a WebView in it (which created WKMauiWebView, which is essentially the same as WKWebView), Safari shows no debuggable sessions available.
Other scenarios tests - the same result with no option to debug the session:
- BlazorWebView
- Plain MacCatalyst WKWebView
- MAUI WebView with custom handler with
developerExtrasEnabled
set
The source for all foud projects is in the following repository: https://github.com/xamcat/maui-wkwebview-inspect
Steps to Reproduce
- Create new MAUI App
- Register WebView on the main page
<WebView Source="https://www.apple.com"
VerticalOptions="FillAndExpand"
HorizontalOptions="FillAndExpand" />
- Run on Mac with
dotnet build -t:Run -f net6.0-maccatalyst
- Open Safari and navigate to
Develop-> <MacName>
Result: No inspectable application
message
Expected: Web session created by WebView (WKWebView) is visible in debug tools
Version with bug
6.0 (current)
Last version that worked well
Release Candidate 3 (current)
Affected platforms
macOS
Affected platform versions
maccatalyst 13.1
Did you find any workaround?
No workaround has been found.
Relevant log output
No response
Issue Analytics
- State:
- Created a year ago
- Reactions:1
- Comments:39 (16 by maintainers)
Top GitHub Comments
@headintheclouds21 I think I got it figured out. I haven’t actually tested and JS in it yet (busy on another project) but it at least shows up in Safari so I suspect JS debugging will work.
So what I did was create a project with the default maui blazor template. I also made the changes outlined in the PR that fixed this issue. The trick to getting this to work (for me at least) is adding the following to the MainPage.xaml.cs file.
Once I did that the app shows up in Safari again.
I found some confirmations that the entitlement is needed (get-task-allow) to have the Safari inspect tools work, but also confirmed that Xcode doesn’t include any entitlements for a Cocoa app and it works for Xcode.
May be Xcode includes this entitlements for debug builds automatically without asking us? Found here