我尝试使用 MAUI 开发许多应用程序,并且总是成功地为 Android 设置应用程序图标和启动屏幕。我正在 iOS 上尝试同样的操作,并使用我的 iPhone SE 进行测试。 我正在使用 Visual Studio 2022 17.12.4 和 .NET 8。
我确信这不是我的应用程序的错:如果您使用.NET 8默认模板创建一个新的MAUI应用程序,只需更改AppIcon颜色并第一次构建+部署,应用程序图标就已经错误了! 尝试对颜色属性进行此编辑,清理,重建(发布)并部署新应用程序:
<MauiIcon Include="Resources\AppIcon\appicon.svg" ForegroundFile="Resources\AppIcon\appiconfg.svg" Color="#B21016" />
该应用程序可以运行,但我总是看到默认的紫色 .NET MAUI 图标。 我现在不知道该尝试什么;我已经尝试过:
<MauiIcon Include="Resources\AppIcon\appicon.svg" Color="#F7F7F7" BaseSize="50,50" />
已添加属性组:
<PropertyGroup>
<EnableCodeSigning>true</EnableCodeSigning>
<CodesignRequireProvisioningProfile>true</CodesignRequireProvisioningProfile>
<DisableCodesignVerification>true</DisableCodesignVerification>
</PropertyGroup>
如果我手动更改 appicon.svg 的颜色并重新编译所有内容,我会在路径中找到编辑后的图像(MauiApp3\MauiApp3\obj\Release et8.0-ios\ios-arm64 尺寸调节器 \Assets.xcassets ppicon.appiconset):
这是我正在使用的info.plist模板文件的内容:
<?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>LSRequiresIPhoneOS</key>
<true/>
<key>UIDeviceFamily</key>
<array>
<integer>1</integer>
<integer>2</integer>
</array>
<key>UIRequiredDeviceCapabilities</key>
<array>
<string>arm64</string>
</array>
<key>UISupportedInterfaceOrientations</key>
<array>
<string>UIInterfaceOrientationPortrait</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>XSAppIconAssets</key>
<string>Assets.xcassets/appicon.appiconset</string>
</dict>
</plist>
我在网上找到了很多相关的帖子,但我找不到任何可行的解决方案:
MauiSplashScreen 在我的 iOS 应用程序中不起作用
https://nirav-parmar.medium.com/how-to-change-splash-screen-in-net-maui-31ec756a0ce3
https://github.com/dotnet/maui/issues/24159#issuecomment-2284226056
这并不是那么难实现的:(
Color
属性仅在appicon图像/svg的背景是透明的情况下才有效。
在 Maui 的默认模板 'appicon.svg' 将指定背景
fill="#512BD4"
。因此,更改 .csproj 中的 Color
将不会产生任何效果。
如果你想让它生效,请在 appicon.svg 中将 fill-opacity 设置为 0,如下所示
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg width="456" height="456" viewBox="0 0 456 456" version="1.1" xmlns="http://www.w3.org/2000/svg">
<rect x="0" y="0" width="456" height="456" fill="#512BD4" fill-opacity="0" />
</svg>
同样适用于您的自定义 svg。