与平台相关的 SVG 启动图形

Platform dependent SVG splash graphics

提问人:Bob Sammers 提问时间:11/17/2023 最后编辑:Mark RotteveelBob Sammers 更新时间:11/17/2023 访问量:57

问:

为了应对 Google 决定为 Android 12+ 修改启动画面图形,并且仍然在 iOS 上保持启动画面外观可接受,我有两个徽标,根据平台选择。我的 csproj 文件中的以下行旨在实现此目的:

<ItemGroup>
...
    <!-- Splash Screen -->
    <MauiSplashScreen
        Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) != 'android'" 
        Include="Resources\Splash\logo_filled_withtext_whiteondarkb.svg" 
        Color="#4D8F8D"
    />
    <MauiSplashScreen 
        Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'android'" 
        Include="Resources\Splash\logo_filled_withtext_whiteondarkb_android12.svg"
        Color="#4D8F8D"
    />
...
</ItemGroup>

这是可行的,因为为每个平台正确选择了启动图形。

但是,VS 构建过程并不那么简单:只有第一个元素被转换为文件。当需要第二个但找不到时,这会导致运行时错误。在渲染两个版本之前,我必须颠倒元素的顺序并重新构建。(在此之后没问题,但每当需要重新生成文件夹时,问题就会再次出现。<MauiSplashScreen>.png.pngobj

解决方案资源管理器中也只显示第一个元素,但我可以接受它。

有没有更好的方法来处理这种条件,以便调整大小器可以同时创建两个?.png

毛伊 岛 visual-studio-2022 .net-7.0 csproj

评论

0赞 Guangyu Bai - MSFT 11/21/2023
可以尝试更新应用清单以引用自定义初始屏幕图像。请检查此特定于平台的配置
0赞 Bob Sammers 11/21/2023
感谢@GuangyuBai-MSFT,我应该查看该页面上的哪些信息?它建议在某些(未指定)场景中使用特定于平台的配置,但我看不到有关如何实际执行此操作的任何信息或链接。需要明确的是:当图像可用时,应用程序正在正确部署,问题在于构建过程仅从源 svg 创建一些必要的图像。
0赞 Guangyu Bai - MSFT 11/24/2023
我的意思是您可以在 Android 清单填充和 IOS Info.plist 中更改启动画面路径。

答: 暂无答案