我目前正在 iOS 上试用 Avalonia 11。开发+测试体验很棒,但我不太清楚如何添加应用程序图标进行分发。截至目前,Avalonia 文档似乎还没有涵盖这一点。
在 MAUI 中,就像添加 <MauiIcon>
一样简单.csproj 中的标记并将其指向 svg。
Avalonia 似乎没有对此有任何内置支持,并且将 SVG 添加到 iOS 项目中的 Resources 文件夹似乎也不起作用。
应用商店上传者 (Transporter) 提示“ Assets 验证失败 (90713) 缺少 Info.plist 值。 bundle 中缺少 Info.plist 键“CFBundleIconName”的值 [...]`
我可以添加条目,但我不知道将其指向哪里。有什么想法吗?
最佳答案
已解决对于将来遇到此问题的任何人:
这与阿瓦罗尼亚没有任何关系。它似乎是 iOS 和 Xcode 构建的实现细节。 (我是 iOS 开发新手)
我做了以下事情:
- 在与我的
iOS.csproj
相同的目录中创建一个新的Assets.xcassets
文件夹。 - 在 Xcode 中打开
Assets.xcassets
- 使用 Xcode 添加相关资源(就我而言,iOS 只需要一个 1024 x 1024 .png)
- 将以下内容添加到您的
Info.plist
(在本例中,我的 appicon.png 在 Xcode 中名为AppIcon
)
<key>XSAppIconAssets</key>
<string>Assets.xcassets/AppIcon.appiconset</string>
从 App Store Connect 和 Transporter 返回的错误在这种方式上有点误导,因为它建议添加 CFBundleIconName
。这可能也有效,但我没有测试过。
- 通过运行构建
.ipa
包
dotnet publish -f net7.0-ios -c Release -p:ArchiveOnBuild=true -p:RuntimeIdentifier=ios-arm64
- 将/bin/Release.net7.0-ios/ios-arm64/publish 中的
.ipa
包上传到 App Store Connect。
我确实希望这个问题能记录在 Avalonia UI 文档中,即使从技术上来说这不是 Avalonia 问题。我们付出了很大的努力才取得了模板并使其能够实际部署到 App Store。不过,我真的很喜欢这个框架。
更新:Avalonia 文档上现在有一个 Unresolved 问题来解释这一点: https://github.com/AvaloniaUI/Documentation/issues/423
关于.net-core - 如何在 Avalonia UI 11 中添加 iOS 应用程序图标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76176885/