dotnet / maui

.NET MAUI is the .NET Multi-platform App UI, a framework for building native device applications spanning mobile, tablet, and desktop.
https://dot.net/maui
MIT License
22.28k stars 1.76k forks source link

MAUI iOS Publish to AppStore: Rejected because of BrowserEngineKit in use #24980

Closed fabEps closed 1 month ago

fabEps commented 2 months ago

Description

I'm currently not able anymore to publish my (two different) MAUI Apps to the Apple App Store, since it gets rejected:

Hello, We noticed one or more issues with a recent delivery for the following app: ... Please correct the following issues and upload a new binary to App Store Connect. ITMS-91017: Invalid SDK usage - The following frameworks aren’t permitted for apps using an alternative web browser engine: [BrowserEngineKit].

I installed the new .NET 8 SDK 8.0.402 update and the new workloads on our Mac Mini Buildserver, to support Xcode 16: https://github.com/xamarin/xamarin-macios/releases/tag/dotnet-8.0.1xx-xcode16.0-8303.

In the xcrun command from the build log, I can see the forbidden framework as weak_framework: -weak_framework BrowserEngineKit (see complete logoutput).

I tried to uninstall several NuGets (AppCenter, Firebase Cloud Messaging, InAppBilling), without success.

There are also some other guys encountering this problem: https://stackoverflow.com/questions/79030828/maui-ios-publish-fails-net8-0-browserenginekit

My App uses the WebView control - I created a custom one, but it derives from Microsoft.Maui.Controls.WebView which PlatformView is MauiWKWebView (WKWebView) and this should be fine, yes?

Of course, this happens when I have an app release coming up.. So is there a workaround?

Steps to Reproduce

  1. Create new MAUI iOS App
  2. Use a simple WebView to display a website inside the app
  3. Build it on a mac with Xcode 16 and .NET 8 SDK 8.0.402
  4. Try to upload to TestFlight

Link to public reproduction project repository

No response

Version with bug

8.0.91 SR9.1

Is this a regression from previous behavior?

No, this is something new

Last version that worked well

8.0.80 SR8

Affected platforms

iOS

Affected platform versions

iOS 17/18

Did you find any workaround?

Yes, use

  1. dotnet workload install maui-mobile --version 8.0.402
  2. xCode 15.4

Relevant log output

Tool xcrun execution started with arguments: clang++ -mios-version-min=11.0 -isysroot /Applications/Xcode-16.0.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS18.0.sdk -arch arm64 /Users/abcdev/Bitbucket-Runner/atlassian-bitbucket-pipelines-runner/temp/fe89c362-9a92-5732-b36b-375dbddda50e/build/src/xyz.Members.App.Maui/obj/Release/net8.0-ios/ios-arm64/nativelibraries/aot-output/arm64/aot-instances.dll.o /Users/abcdev/Bitbucket-Runner/atlassian-bitbucket-pipelines-runner/temp/fe89c362-9a92-5732-b36b-375dbddda50e/build/src/xyz.Members.App.Maui/obj/Release/net8.0-ios/ios-arm64/nativelibraries/aot-output/arm64/System.Private.CoreLib.dll.o /Users/abcdev/Bitbucket-Runner/atlassian-bitbucket-pipelines-runner/temp/fe89c362-9a92-5732-b36b-375dbddda50e/build/src/xyz.Members.App.Maui/obj/Release/net8.0-ios/ios-arm64/nativelibraries/aot-output/arm64/aot-instances.dll.llvm.o /Users/abcdev/Bitbucket-Runner/atlassian-bitbucket-pipelines-runner/temp/fe89c362-9a92-5732-b36b-375dbddda50e/build/src/xyz.Members.App.Maui/obj/Release/net8.0-ios/ios-arm64/nativelibraries/aot-output/arm64/System.Private.CoreLib.dll.llvm.o /usr/local/share/dotnet/x64/packs/Microsoft.iOS.Runtime.ios-arm64.net8.0_18.0/18.0.8303/runtimes/ios-arm64/native/libxamarin-dotnet.a /usr/local/share/dotnet/x64/packs/Microsoft.NETCore.App.Runtime.Mono.ios-arm64/8.0.8/runtimes/ios-arm64/native/libSystem.Globalization.Native.a /usr/local/share/dotnet/x64/packs/Microsoft.NETCore.App.Runtime.Mono.ios-arm64/8.0.8/runtimes/ios-arm64/native/libSystem.IO.Compression.Native.a /usr/local/share/dotnet/x64/packs/Microsoft.NETCore.App.Runtime.Mono.ios-arm64/8.0.8/runtimes/ios-arm64/native/libSystem.Native.a /usr/local/share/dotnet/x64/packs/Microsoft.NETCore.App.Runtime.Mono.ios-arm64/8.0.8/runtimes/ios-arm64/native/libSystem.Net.Security.Native.a /usr/local/share/dotnet/x64/packs/Microsoft.NETCore.App.Runtime.Mono.ios-arm64/8.0.8/runtimes/ios-arm64/native/libSystem.Security.Cryptography.Native.Apple.a /usr/local/share/dotnet/x64/packs/Microsoft.NETCore.App.Runtime.Mono.ios-arm64/8.0.8/runtimes/ios-arm64/native/libicudata.a /usr/local/share/dotnet/x64/packs/Microsoft.NETCore.App.Runtime.Mono.ios-arm64/8.0.8/runtimes/ios-arm64/native/libicui18n.a /usr/local/share/dotnet/x64/packs/Microsoft.NETCore.App.Runtime.Mono.ios-arm64/8.0.8/runtimes/ios-arm64/native/libicuuc.a /usr/local/share/dotnet/x64/packs/Microsoft.NETCore.App.Runtime.Mono.ios-arm64/8.0.8/runtimes/ios-arm64/native/libmono-component-debugger-stub-static.a /usr/local/share/dotnet/x64/packs/Microsoft.NETCore.App.Runtime.Mono.ios-arm64/8.0.8/runtimes/ios-arm64/native/libmono-component-diagnostics_tracing-stub-static.a /usr/local/share/dotnet/x64/packs/Microsoft.NETCore.App.Runtime.Mono.ios-arm64/8.0.8/runtimes/ios-arm64/native/libmono-component-hot_reload-static.a /usr/local/share/dotnet/x64/packs/Microsoft.NETCore.App.Runtime.Mono.ios-arm64/8.0.8/runtimes/ios-arm64/native/libmono-component-marshal-ilgen-static.a /usr/local/share/dotnet/x64/packs/Microsoft.NETCore.App.Runtime.Mono.ios-arm64/8.0.8/runtimes/ios-arm64/native/libmonosgen-2.0.a /usr/local/share/dotnet/x64/packs/Microsoft.NETCore.App.Runtime.Mono.ios-arm64/8.0.8/runtimes/ios-arm64/native/libmono-component-hot_reload-static.a /usr/local/share/dotnet/x64/packs/Microsoft.NETCore.App.Runtime.Mono.ios-arm64/8.0.8/runtimes/ios-arm64/native/libmono-component-marshal-ilgen-static.a /usr/local/share/dotnet/x64/packs/Microsoft.NETCore.App.Runtime.Mono.ios-arm64/8.0.8/runtimes/ios-arm64/native/libmono-component-debugger-stub-static.a /usr/local/share/dotnet/x64/packs/Microsoft.NETCore.App.Runtime.Mono.ios-arm64/8.0.8/runtimes/ios-arm64/native/libmono-component-diagnostics_tracing-stub-static.a -framework Accelerate -framework Accounts -framework AddressBook -framework AddressBookUI -framework AdSupport -framework ARKit -framework AudioToolbox -framework AVFoundation -framework AVKit -framework CallKit -framework CFNetwork -framework CloudKit -framework Contacts -framework ContactsUI -framework CoreAudioKit -framework CoreBluetooth -framework CoreData -framework CoreFoundation -framework CoreGraphics -framework CoreImage -framework CoreLocation -framework CoreMedia -framework CoreMIDI -framework CoreML -framework CoreMotion -framework CoreSpotlight -framework CoreTelephony -framework CoreText -framework CoreVideo -framework DeviceCheck -framework EventKit -framework EventKitUI -framework ExternalAccessory -framework FileProvider -framework FileProviderUI -framework Foundation -framework GameController -framework GameKit -framework GameplayKit -framework GLKit -framework HealthKit -framework HealthKitUI -framework HomeKit -framework IdentityLookup -framework ImageIO -framework Intents -framework IntentsUI -framework IOSurface -framework JavaScriptCore -framework LocalAuthentication -framework MapKit -framework MediaAccessibility -framework MediaPlayer -framework MediaToolbox -framework Messages -framework MessageUI -framework Metal -framework MetalKit -framework MetalPerformanceShaders -framework MobileCoreServices -framework ModelIO -framework MultipeerConnectivity -framework NetworkExtension -framework NotificationCenter -framework OpenGLES -framework PassKit -framework PDFKit -framework Photos -framework PhotosUI -framework PushKit -framework QuartzCore -framework QuickLook -framework ReplayKit -framework SafariServices -framework SceneKit -framework Security -framework Social -framework Speech -framework SpriteKit -framework StoreKit -framework SystemConfiguration -framework Twitter -framework UIKit -framework UserNotifications -framework UserNotificationsUI -framework VideoSubscriberAccount -framework VideoToolbox -framework Vision -framework WatchConnectivity -framework WebKit -weak_framework Accessibility -weak_framework AccessorySetupKit -weak_framework AdServices -weak_framework AppClip -weak_framework AppTrackingTransparency -weak_framework AuthenticationServices -weak_framework AutomaticAssessmentConfiguration -weak_framework AVRouting -weak_framework BackgroundAssets -weak_framework BackgroundTasks -weak_framework BrowserEngineKit -weak_framework BusinessChat -weak_framework CarPlay -weak_framework Cinematic -weak_framework ClassKit -weak_framework CoreHaptics -weak_framework CoreLocationUI -weak_framework CoreNFC -weak_framework CryptoTokenKit -weak_framework DeviceDiscoveryExtension -weak_framework IdentityLookupUI -weak_framework LinkPresentation -weak_framework MediaSetup -weak_framework MetalFX -weak_framework MetalPerformanceShadersGraph -weak_framework MetricKit -weak_framework MLCompute -weak_framework NaturalLanguage -weak_framework NearbyInteraction -weak_framework Network -weak_framework OSLog -weak_framework PencilKit -weak_framework PHASE -weak_framework PushToTalk -weak_framework QuickLookThumbnailing -weak_framework SafetyKit -weak_framework ScreenTime -weak_framework SensitiveContentAnalysis -weak_framework SensorKit -weak_framework SharedWithYou -weak_framework SharedWithYouCore -weak_framework ShazamKit -weak_framework SoundAnalysis -weak_framework Symbols -weak_framework ThreadNetwork -weak_framework UniformTypeIdentifiers -weak_framework VisionKit -framework GSS -framework CFNetwork -framework Security /Users/abcdev/Bitbucket-Runner/atlassian-bitbucket-pipelines-runner/temp/fe89c362-9a92-5732-b36b-375dbddda50e/build/src/xyz.Members.App.Maui/obj/Release/net8.0-ios/ios-arm64/nativelibraries/main.arm64.o /Users/abcdev/Bitbucket-Runner/atlassian-bitbucket-pipelines-runner/temp/fe89c362-9a92-5732-b36b-375dbddda50e/build/src/xyz.Members.App.Maui/obj/Release/net8.0-ios/ios-arm64/nativelibraries/registrar.o -o /Users/abcdev/Bitbucket-Runner/atlassian-bitbucket-pipelines-runner/temp/fe89c362-9a92-5732-b36b-375dbddda50e/build/src/xyz.Members.App.Maui/obj/Release/net8.0-ios/ios-arm64/nativelibraries/xyz.Members.App.Maui -lcompression -dead_strip -lz -liconv -lcompression -lobjc -exported_symbols_list obj/Release/net8.0-ios/ios-arm64/mtouch-symbols.list
ronanj2 commented 2 months ago

https://github.com/xamarin/xamarin-macios/issues/21324

ronanj2 commented 2 months ago

https://github.com/dotnet/maui/issues/24819

ronanj2 commented 1 month ago

workaround: https://github.com/xamarin/xamarin-macios/issues/21324#issuecomment-2382226489

drasticactions commented 1 month ago

Yeah, this is an underlying SDK issue, which should be resolved when https://github.com/xamarin/xamarin-macios/pull/21337 lands. And the workaround for unlinking BrowserEngineKit (https://github.com/xamarin/xamarin-macios/issues/21324#issuecomment-2382226489) should be fine for now.

Duplicate of https://github.com/xamarin/xamarin-macios/issues/21324