Skip to content
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

Maui.iOS CFBundleIconName not found by Apple Transporter but is actually in the info.plist #26850

Closed
Jakar510 opened this issue Dec 27, 2024 · 13 comments
Labels
area-publishing Issues with the app packaging/publishing process (ipk/apk/msix/trimming) platform/iOS 🍎 s/triaged Issue has been reviewed s/verified Verified / Reproducible Issue ready for Engineering Triage t/bug Something isn't working
Milestone

Comments

@Jakar510
Copy link

Jakar510 commented Dec 27, 2024

Description

With a Maui.iOS App, CFBundleIconName is not found but it is actually in the info.plist. Release build succeeds but fails to upload the IPA via Transporter to Apple. Built with XCode 16.2. and VS 17.12.3.

Updated to the latest workloads with no change:

PS > dotnet workload update

Updated advertising manifest microsoft.net.sdk.android.  
Updated advertising manifest microsoft.net.workload.emscripten.net8.  
Updated advertising manifest microsoft.net.sdk.ios.  
Updated advertising manifest microsoft.net.workload.mono.toolchain.net8.  
Updated advertising manifest microsoft.net.sdk.maui.  
Updated advertising manifest microsoft.net.sdk.macos.  
Updated advertising manifest microsoft.net.workload.emscripten.current.  
Updated advertising manifest microsoft.net.workload.emscripten.net7.  
Updated advertising manifest microsoft.net.sdk.tvos.  
Updated advertising manifest microsoft.net.workload.emscripten.net6.  
Updated advertising manifest microsoft.net.sdk.aspire.  
Updated advertising manifest microsoft.net.workload.mono.toolchain.current.  
Updated advertising manifest microsoft.net.workload.mono.toolchain.net6.  
Updated advertising manifest microsoft.net.sdk.maccatalyst.  
Updated advertising manifest microsoft.net.workload.mono.toolchain.net7.

Successfully updated workload(s): android aspire ios maccatalyst macos maui-windows tvos wasm-tools wasm-tools-net6 wasm-tools-net7 wasm-tools-net8.

PS > dotnet workload list

Installed Workload Id – Manifest Version – Installation Source
--------------------------------------------------------------

android --------- 35.0.24/9.0.100 ----- SDK 9.0.100, VS 17.12.35527.113  
aspire ----------- 8.2.2/8.0.100 -------- SDK 9.0.100, VS 17.12.35527.113  
ios --------------- 18.2.9170/9.0.100 – SDK 9.0.100, VS 17.12.35527.113  
maccatalyst ------ 18.2.9170/9.0.100 - SDK 9.0.100, VS 17.12.35527.113  
macos ------------ 15.2.9170/9.0.100 - SDK 9.0.100, VS 17.12.35527.113  
maui-windows — 9.0.0/9.0.100 ------- SDK 9.0.100, VS 17.12.35527.113  
tvos --------------- 18.2.9170/9.0.100 - SDK 9.0.100, VS 17.12.35527.113  
wasm-tools ------- 9.0.0/9.0.100 ------ SDK 9.0.100, VS 17.12.35527.113  
wasm-tools-net6 - 9.0.0/9.0.100 ------ SDK 9.0.100, VS 17.12.35527.113  
wasm-tools-net7 - 9.0.0/9.0.100 ------ SDK 9.0.100, VS 17.12.35527.113
Asset validation failed (90713)

Visual Studio report

Image

Previous Issue

Steps to Reproduce

Build a MAUI.iOS production ready app, and try to upload it with Transporter. Gets the errors above.

Link to public reproduction project repository

No response

Version with bug

9.0.21 SR2.1

Is this a regression from previous behavior?

Yes, this used to work in .NET MAUI

Last version that worked well

8.0.100 SR10

Affected platforms

iOS

Affected platform versions

iOS 18.2

Did you find any workaround?

No response

Relevant log output

	Missing Info.plist value. A value for the Info.plist key 'CFBundleIconName' is missing in the bundle 'com.ourcompanybundle.app'. Apps built with iOS 11 or later SDK must supply app icons in an asset catalog and must also provide a value for this Info.plist key. For more information see http://help.apple.com/xcode/mac/current/#/dev10510b1f7. (ID: f20bb72c-02ab-40bb-a1f2-6a0ec480d6c9)
	 
	Asset validation failed (90022)
	Missing required icon file. The bundle does not contain an app icon for iPhone / iPod Touch of exactly '120x120' pixels, in .png format for iOS versions >= 10.0. To support older versions of iOS, the icon may be required in the bundle outside of an asset catalog. Make sure the Info.plist file includes appropriate entries referencing the file. See https://developer.apple.com/documentation/bundleresources/information_property_list/user_interface (ID: 336a3ded-5d7f-4010-a21d-44cd57af4a27)
	 
	Asset validation failed (90023)
	Missing required icon file. The bundle does not contain an app icon for iPad of exactly '152x152' pixels, in .png format for iOS versions >= 10.0. To support older operating systems, the icon may be required in the bundle outside of an asset catalog. Make sure the Info.plist file includes appropriate entries referencing the file. See https://developer.apple.com/documentation/bundleresources/information_property_list/user_interface (ID: d91e7650-addf-4c9c-96a3-e599bf64af39)
	 
	Asset validation failed (90023)
	Missing required icon file. The bundle does not contain an app icon for iPad of exactly '167x167' pixels, in .png format for iOS versions supporting iPad Pro. To support older operating systems, the icon may be required in the bundle outside of an asset catalog. Make sure the Info.plist file includes appropriate entries referencing the file. See https://developer.apple.com/documentation/bundleresources/information_property_list/user_interface (ID: 814870e5-8047-4bea-922a-7fb296c0a391)
@Jakar510 Jakar510 added the t/bug Something isn't working label Dec 27, 2024
Copy link

We've found some similar issues:

If any of the above are duplicates, please consider closing this issue out and adding additional context in the original issue.

Note: You can give me feedback by 👍 or 👎 this comment.

@Jakar510
Copy link
Author

I did try the fix in previous issue but it didn't work. Tried it with Power Shell and Visual Studio on Windows as well as Terminal on Mac.

@bhavanesh2001
Copy link

@Jakar510 check if this helps.

@Ying-6
Copy link

Ying-6 commented Dec 30, 2024

This issue has been verified using Visual Studio 17.13.0 Preview 2.1 (9.0.21 & 9.0.14 & 8.0.100). Can repro this issue on iOS platform.

Asset validation failed (90022)\
Missing required icon file. The bundle does not contain an app icon for iPhone / iPod Touch of exactly '120x120' pixels, in .png format for iOS versions >= 10.0. To support older versions of iOS, the icon may be required in the bundle outside of an asset catalog. Make sure the Info.plist file includes appropriate entries referencing the file. See https://developer.apple.com/documentation/bundleresources/information_property_list/user_interface (ID: 9945f1b3-8b4f-4794-8bd7-776e812f1d36)\
\
Asset validation failed (90713)\
Missing Info.plist value. A value for the Info.plist key 'CFBundleIconName' is missing in the bundle 'com.chinasofti.pubvs'. Apps built with iOS 11 or later SDK must supply app icons in an asset catalog and must also provide a value for this Info.plist key. For more information see http://help.apple.com/xcode/mac/current/#/dev10510b1f7. (ID: dafa025d-615b-4172-93c8-f2dd1621cf93)\
\
Asset validation failed (90023)\
Missing required icon file. The bundle does not contain an app icon for iPad of exactly '167x167' pixels, in .png format for iOS versions supporting iPad Pro. To support older operating systems, the icon may be required in the bundle outside of an asset catalog. Make sure the Info.plist file includes appropriate entries referencing the file. See https://developer.apple.com/documentation/bundleresources/information_property_list/user_interface (ID: d107334e-4ec4-4fe4-bb4b-278bb2fc9340)\
\
Asset validation failed (90023)\
Missing required icon file. The bundle does not contain an app icon for iPad of exactly '152x152' pixels, in .png format for iOS versions >= 10.0. To support older operating systems, the icon may be required in the bundle outside of an asset catalog. Make sure the Info.plist file includes appropriate entries referencing the file. See https://developer.apple.com/documentation/bundleresources/information_property_list/user_interface (ID: 37e3e2f3-0c52-4478-87d6-36358411800e)}

MauiApp14.zip

@Ying-6 Ying-6 added s/triaged Issue has been reviewed s/verified Verified / Reproducible Issue ready for Engineering Triage platform/iOS 🍎 labels Dec 30, 2024
@Jakar510
Copy link
Author

Jakar510 commented Dec 30, 2024

@Jakar510 check if this

@bhavanesh2001 Unfortunately it didn't work; validation still fails.

@mattleibow
Copy link
Member

@rolfbjarne thoughts?

@mattleibow mattleibow added the area-publishing Issues with the app packaging/publishing process (ipk/apk/msix/trimming) label Jan 4, 2025
@mattleibow mattleibow added this to the Backlog milestone Jan 4, 2025
@rolfbjarne
Copy link
Member

Adding this to Platforms/iOS/Info.plist makes the build include the app icon in the app bundle:

<key>XSAppIconAssets</key>
<string>Assets.xcassets/appicon.appiconset</string>

This automatically happens with dotnet new maui, so how was this project created without this value set already?

@Jakar510
Copy link
Author

Jakar510 commented Jan 8, 2025

Here's the Info.plist file:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>UIDeviceFamily</key>
	<array>
		<integer>1</integer>
		<integer>2</integer>
	</array>
	<key>UISupportedInterfaceOrientations</key>
	<array>
		<string>UIInterfaceOrientationPortrait</string>
		<string>UIInterfaceOrientationPortraitUpsideDown</string>
		<string>UIInterfaceOrientationLandscapeLeft</string>
		<string>UIInterfaceOrientationLandscapeRight</string>
	</array>
	<key>UISupportedInterfaceOrientations~ipad</key>
	<array>
		<string>UIInterfaceOrientationPortrait</string>
		<string>UIInterfaceOrientationPortraitUpsideDown</string>
		<string>UIInterfaceOrientationLandscapeLeft</string>
		<string>UIInterfaceOrientationLandscapeRight</string>
	</array>
	<key>UILaunchStoryboardName</key>
	<string>MauiSplash</string>
	<key>CFBundleName</key>
	<string>App.Maui</string>
	<key>CFBundleDisplayName</key>
	<string>App</string>
	<key>CFBundleIdentifier</key>
	<string>com.Company.App</string>
	<key>CFBundleIconName</key>
	<string>appicon</string>
	<key>XSAppIconAssets</key>
	<string>Media.xcassets/appicon.appiconset</string>
	<key>UIAppFonts</key>
	<array>
		<string>FontAwesome5Brands.otf</string>
		<string>FontAwesome5Regular.otf</string>
		<string>FontAwesome5Solid.otf</string>
	</array>
	<key>ITSAppUsesNonExemptEncryption</key>
	<false/>
	<key>NSAllowsArbitraryLoads</key>
	<true/>
	<key>NSAppTransportSecurity</key>
	<dict>
		<key>NSAllowsArbitraryLoads</key>
		<true/>
	</dict>
	<key>com.apple.developer.networking.wifi-info</key>
	<true/>
	<key>keychain-access-groups</key>
	<array>
		<string>$(AppIdentifierPrefix)com.Company.OtherApp</string>
	</array>
	<key>com.apple.developer.nfc.readersession.iso7816.select-identifiers</key>
	<string>com.apple.developer.nfc.readersession.iso7816.select-identifiers</string>
	<key>com.apple.developer.nfc.readersession.formats</key>
	<array>
		<string>NDEF</string>
		<string>TAG</string>
	</array>
	<key>com.apple.developer.authentication-services.autofill-credential-provider</key>
	<true/>
	<key>com.apple.developer.networking.multipath</key>
	<true/>
	<key>com.apple.developer.user-fonts</key>
	<array>
		<string>system-installation</string>
		<string>app-usage</string>
	</array>
	<key>NSCalendarsUsageDescription</key>
	<string>This app needs access to calendars.</string>
	<key>NSContactsUsageDescription</key>
	<string>This app needs access to contacts.</string>
	<key>NSMicrophoneUsageDescription</key>
	<string>This app needs access to microphone.</string>
	<key>NSSiriUsageDescription</key>
	<string>This app needs access to Siri.</string>
	<key>NSBluetoothAlwaysUsageDescription</key>
	<string>This app needs access to bluetooth.</string>
	<key>NSAppleMusicUsageDescription</key>
	<string>This app needs access to music.</string>
	<key>XSLaunchImageAssets</key>
	<string>Media.xcassets/App-LaunchImages.launchimage</string>
	<key>NSFaceIDUsageDescription</key>
	<string>This app requires access to biometrics to function properly.</string>
	<key>NSCameraUsageDescription</key>
	<string>This app needs access to the camera to read QR Codes and scan barcodes. Images are only used in memory.</string>
	<key>NSPhotoLibraryUsageDescription</key>
	<string>This app needs access to photos.</string>
	<key>Privacy - Photo Library Additions Usage Description</key>
	<string>This app needs access to the photo gallery.</string>
	<key>NSLocationUsageDescription</key>
	<string>This app needs access to the device&apos;s location to identify which facility where the data is being collected.</string>
	<key>NSLocationWhenInUseUsageDescription</key>
	<string>This app needs access to the device&apos;s location to identify which facility where the data is being collected.</string>
	<key>NSLocationAlwaysAndWhenInUseUsageDescription</key>
	<string>This app needs access to the device&apos;s location to identify which facility where the data is being collected.</string>
	<key>NSLocationAlwaysUsageDescription</key>
	<string>This app needs access to the device&apos;s location to identify which facility where the data is being collected.</string>
	<key>NSUserTrackingUsageDescription</key>
	<string>Anonymous usage data is used to improve stability and functionality.</string>
</dict>
</plist>

@rolfbjarne
Copy link
Member

Can you get an MSBuild binlog from the build?

@bhavanesh2001
Copy link

bhavanesh2001 commented Jan 9, 2025

<key>CFBundleIconName</key>
	<string>appicon</string>
<key>XSAppIconAssets</key>
      <string>Media.xcassets/appicon.appiconset</string>

@Jakar510 Can you remove CFBundleIconName and try? And also how is appicon set in .csproj?

@Jakar510
Copy link
Author

Jakar510 commented Jan 9, 2025

@bhavanesh2001 already tried removing it... no change.

@rolfbjarne i will try to get the binlog tomorrow

@Jakar510
Copy link
Author

Jakar510 commented Jan 9, 2025

binlog submitted to the Visual Studio report above

@Jakar510
Copy link
Author

Changed

<key>CFBundleIconName</key>
	<string>appicon</string>
<key>XSAppIconAssets</key>
	  <string>Media.xcassets/appicon.appiconset</string>

to

<key>CFBundleIconName</key>
	<string>appicon</string>
<key>XSAppIconAssets</key>
	  <string>Assets.xcassets/appicon.appiconset</string>

And it worked

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area-publishing Issues with the app packaging/publishing process (ipk/apk/msix/trimming) platform/iOS 🍎 s/triaged Issue has been reviewed s/verified Verified / Reproducible Issue ready for Engineering Triage t/bug Something isn't working
Projects
None yet
Development

No branches or pull requests

5 participants