maui: Problem with publishing app to Apple App Store - Asset validation failed (90171)

Description

I have problem with uploading .NET MAUI Blazor App to Apple App Store. My IPA file is successfully created with that command like everytime before: dotnet publish -f:net6.0-ios -c:Release /p:ServerAddress=10.20.30.21 /p:ServerUser=ezslovenia /p:ServerPassword=xxxxxxxx /p:TcpPort=58181 /p:ArchiveOnBuild=true /p:_DotNetRootRemoteDirectory=/Users/ezslovenia/Library/Caches/Xamarin/XMA/SDKs/dotnet/ /p:EnableAssemblyILStripping=false

But when I wanted to publish that app into Apple App Store via Transporter app, I got this errors: image

Does anybody know if I am doing anything wrong? All this steps worked well everytime I tried in past months.

Steps to Reproduce

  1. Create new .NET MAUI Blazor App
  2. Publish that app via remote connected Mac with that command: dotnet publish -f:net6.0-ios -c:Release /p:ServerAddress=10.20.30.21 /p:ServerUser=ezslovenia /p:ServerPassword=xxxxxxxx /p:TcpPort=58181 /p:ArchiveOnBuild=true /p:_DotNetRootRemoteDirectory=/Users/ezslovenia/Library/Caches/Xamarin/XMA/SDKs/dotnet/ /p:EnableAssemblyILStripping=false
  3. Upload generated IPA file with Transporter app on Mac.

Version with bug

6.0.400 (current)

Last version that worked well

6.0 Release Candidate 3

Affected platforms

iOS

Affected platform versions

Xcode 13.4.1, VS 17.3.0 Preview 3.0

Did you find any workaround?

No response

Relevant log output

2022-07-13 12:22:54.374  INFO: ContentDelivery version 2.14.8 (14038).
2022-07-13 12:22:54.385  INFO: Show Progress: Contacting Apple Services…
2022-07-13 12:22:55.085  INFO: Show Progress: Making copy of ‘Xnet.MAUI.Trimo.ipa’…
2022-07-13 12:22:55.086  INFO: Show Progress: Preparing to upload ‘Xnet.MAUI.Trimo.ipa’…
2022-07-13 12:22:55.429  INFO: Show Progress: Analysing package…
2022-07-13 12:23:11.853  INFO: Show Progress: Sending analysis to App Store Connect…
2022-07-13 12:23:13.022  INFO: COMPLETED - PART 1
2022-07-13 12:23:13.025  INFO: Show Progress: Waiting for App Store Connect analysis response…
2022-07-13 12:23:15.877 ERROR: Asset validation failed (90171) Invalid Bundle Structure - The binary file 'Xnet.MAUI.Trimo.app/libSystem.IO.Compression.Native.dylib' is not permitted. Your app can’t contain standalone executables or libraries, other than a valid CFBundleExecutable of supported bundles. Refer to the Bundle Programming Guide at https://developer.apple.com/go/?id=bundle-structure for information on the iOS app bundle structure. (ID: ac5b5f54-ae7f-4095-b356-4e9b650776dc)
2022-07-13 12:23:15.877 ERROR: Asset validation failed (90171) Invalid Bundle Structure - The binary file 'Xnet.MAUI.Trimo.app/libmono-component-diagnostics_tracing.dylib' is not permitted. Your app can’t contain standalone executables or libraries, other than a valid CFBundleExecutable of supported bundles. Refer to the Bundle Programming Guide at https://developer.apple.com/go/?id=bundle-structure for information on the iOS app bundle structure. (ID: 2e9ce284-3566-4d01-8248-2277ec85262b)
2022-07-13 12:23:15.877 ERROR: Asset validation failed (90171) Invalid Bundle Structure - The binary file 'Xnet.MAUI.Trimo.app/libmono-component-hot_reload.dylib' is not permitted. Your app can’t contain standalone executables or libraries, other than a valid CFBundleExecutable of supported bundles. Refer to the Bundle Programming Guide at https://developer.apple.com/go/?id=bundle-structure for information on the iOS app bundle structure. (ID: dffa6132-58fe-4e54-8178-322da495ae40)
2022-07-13 12:23:15.878 ERROR: Asset validation failed (90171) Invalid Bundle Structure - The binary file 'Xnet.MAUI.Trimo.app/libxamarin-dotnet.dylib' is not permitted. Your app can’t contain standalone executables or libraries, other than a valid CFBundleExecutable of supported bundles. Refer to the Bundle Programming Guide at https://developer.apple.com/go/?id=bundle-structure for information on the iOS app bundle structure. (ID: 81c2267a-120e-4b66-ad64-63f0713a77a9)
2022-07-13 12:23:15.878 ERROR: Asset validation failed (90171) Invalid Bundle Structure - The binary file 'Xnet.MAUI.Trimo.app/libSystem.Net.Security.Native.dylib' is not permitted. Your app can’t contain standalone executables or libraries, other than a valid CFBundleExecutable of supported bundles. Refer to the Bundle Programming Guide at https://developer.apple.com/go/?id=bundle-structure for information on the iOS app bundle structure. (ID: 00dab3d1-f65c-425b-8d4c-4267f646640e)
2022-07-13 12:23:15.878 ERROR: Asset validation failed (90171) Invalid Bundle Structure - The binary file 'Xnet.MAUI.Trimo.app/libSystem.Native.dylib' is not permitted. Your app can’t contain standalone executables or libraries, other than a valid CFBundleExecutable of supported bundles. Refer to the Bundle Programming Guide at https://developer.apple.com/go/?id=bundle-structure for information on the iOS app bundle structure. (ID: 1c656e0c-2b98-4fea-a013-4feb9d32550d)
2022-07-13 12:23:15.878 ERROR: Asset validation failed (90171) Invalid Bundle Structure - The binary file 'Xnet.MAUI.Trimo.app/libmonosgen-2.0.dylib' is not permitted. Your app can’t contain standalone executables or libraries, other than a valid CFBundleExecutable of supported bundles. Refer to the Bundle Programming Guide at https://developer.apple.com/go/?id=bundle-structure for information on the iOS app bundle structure. (ID: 7f53ed8e-1dfe-4afc-85fb-6d48ae5a3035)
2022-07-13 12:23:15.879 ERROR: Asset validation failed (90171) Invalid Bundle Structure - The binary file 'Xnet.MAUI.Trimo.app/libmono-component-debugger.dylib' is not permitted. Your app can’t contain standalone executables or libraries, other than a valid CFBundleExecutable of supported bundles. Refer to the Bundle Programming Guide at https://developer.apple.com/go/?id=bundle-structure for information on the iOS app bundle structure. (ID: c8a48ff7-2809-4f00-bb03-c51108578589)
2022-07-13 12:23:15.879 ERROR: Asset validation failed (90171) Invalid Bundle Structure - The binary file 'Xnet.MAUI.Trimo.app/libSystem.Security.Cryptography.Native.Apple.dylib' is not permitted. Your app can’t contain standalone executables or libraries, other than a valid CFBundleExecutable of supported bundles. Refer to the Bundle Programming Guide at https://developer.apple.com/go/?id=bundle-structure for information on the iOS app bundle structure. (ID: c17128aa-696c-4b4c-b0df-3dbb35773b33)
2022-07-13 12:23:16.493  INFO: Show Progress: Upload failed.
Asset validation failed
Invalid Bundle Structure - The binary file 'Xnet.MAUI.Trimo.app/libSystem.IO.Compression.Native.dylib' is not permitted. Your app can’t contain standalone executables or libraries, other than a valid CFBundleExecutable of supported bundles. Refer to the Bundle Programming Guide at https://developer.apple.com/go/?id=bundle-structure for information on the iOS app bundle structure. (ID: ac5b5f54-ae7f-4095-b356-4e9b650776dc)
2022-07-13 12:23:16.493  INFO: 
=============
UPLOAD FAILED with 9 errors.
=============

About this issue

  • Original URL
  • State: closed
  • Created 2 years ago
  • Reactions: 1
  • Comments: 26 (7 by maintainers)

Most upvoted comments

Looking into this a bit more, the difference appears to be that macOS is choosing (in ResolveRuntimePackAssets) a static lib:

/usr/local/share/dotnet/packs/Microsoft.NETCore.App.Runtime.Mono.ios-arm64/6.0.7/runtimes/ios-arm64/native/libSystem.IO.Compression.Native.a

while Windows remote build is choosing a dylib

C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Runtime.Mono.ios-arm64\6.0.7\runtimes\ios-arm64\native\libSystem.IO.Compression.Native.dylib

meanwhile , same repo, cloned and built on the Macbook directly with dotnet publish -f:net6.0-ios -c:Release , uploads just fine, through transporter

attaching the msbuild log from MacBook, if it could help figure out the issue. msbuild.binlog.zip

msbuild.binlog from my machine attached here. msbuild1.zip

dev environment: win11 Pro intel i7 + M2 macbook pro ( paired)

@HobDev no need, I think it’s the same cause.

@drasticactions it’s a bit of a long shot, but I see Hot Reload, any idea how that ends up in the resulting ipa?

It can’t, ever. The assemblies are injected into the running application on debug, and only on debug. No files are copied to the output directory. No users could directly reference them unless they actively copied and referenced the DLLs directly.

eanwhile , same repo, cloned and built on the Macbook directly with dotnet publish -f:net6.0-ios -c:Release , uploads just fine, through transporter

Yes, for me same repo cloned and build on the Macbook with this command + uploads through transporter app works well too 😃

I would like to confirm that people seeing this are all remote building from Windows, and none are building on a mac directly. Please let us know if that is not true.

From @anupam99 's log and my inability to reproduce this locally, building on a mac right now appears to be a potential work around.

Im having the same issue with missing app icon (90704). The information in plist file is correct: <string>Assets.xcassets/appicon.appiconset</string> and in my csproj file: <MauiIcon Include="Resources\AppIcon\appicon.svg" Color="#FFFFFF" />

Getting a somewhat similar error trying to upload IPA through transporter to AppStore.

“Asset validation failed (90704) Missing App Icon. An app icon measuring 1024 by 1024 pixels in PNG format must be included in the Asset Catalog of apps built for iOS, iPadOS, or watchOS. Without this icon, apps cannot be submitted for review. For details, see https://developer.apple.com/ios/human-interface-guidelines/icons-and-images/app-icon/. (ID: 60e5dd23-9477-44f7-bc91-5f046185899b)”

I have same issue while publishing Maui App version 6.0.408 . Should I create new issue as this issue is about Maui Blazor app.