【问题标题】:Xamarin iOS: Do all images need to be in the Asset Catalogue?Xamarin iOS:所有图像都需要在资产目录中吗?
【发布时间】:2020-06-21 03:05:13
【问题描述】:

Visual Studio 2019 (Windows) Xamarin 4.6.0.847

我将从实际问题开始(最后还有第二个相关问题):

在将 iOS 应用发布到 Apple 商店/TestFlight 等时,我是否必须在资产目录中包含所有图像?

我注意到,虽然当我在连接到我的 MAC 的 iPhone 上运行应用程序时会显示图像,但在 XCode 项目中找不到它们。因此,我担心它们不会作为我最新版本的一部分上传到 Apple。我所有的图片都是 PNG 并且在 Resources 文件夹中。

这是我上传的第一个版本,所以我想我只需要拭目以待(显然大约需要一周时间)。

我还注意到我 PC 上的 launchscreen.storyboard 与 XCode 项目中的不一样。为什么不被复制?

但与此同时,如果图像确实需要在资产目录中,我可以上传另一个构建。

任何建议表示赞赏。

【问题讨论】:

  • 为什么在资产目录之外有图片?如果您不使用资产目录,如何为每个屏幕分辨率提供正确的图像?
  • 因为特定图像在我拥有的所有模拟器和 iPhone 上看起来都不错。应用中有大约 60 张图片。

标签: xamarin xamarin.ios


【解决方案1】:

即使最好使用Asset Catalogue,您也可以放心地将所有图像放在Resources 文件夹中。由于以下几个原因,我强烈建议您不要使用Resources 方法:

  1. 使用Asset Catalogue 可以轻松管理图像
  2. 您还可以轻松地将*.pdf 文件放在Contents.json 文件中,并在多个平台和分辨率中引用它们。
  3. 您不能使用Resources 文件夹方法为您的应用设置主题(同时具有浅色和深色主题)。

如果您没有任何计划,或者不想花时间将所有内容移至Asset Catalogue,您可以安全地使用Resources 方法进行统计,至少目前是这样。我还没有看到 Apple 计划移除此功能。

关于 launchscreen.storyboard - 这是 iOS 和 Xamarin 的一个已知问题。有时,构建过程不会认为情节提要文件已更新,并在构建过程中简单地忽略它。你可以做的是:

  1. 删除 Windows 机器上 iOS 项目的 binobj 文件夹;
  2. 删除 Mac 机器上的构建文件。它们位于/Library/Caches/Xamarin/mtbs/。您只能删除当前项目的构建文件夹 - 您不需要删除所有其他项目的构建。
  3. 重新构建和部署您的项目,一切都会好起来的。

附:请记住,有时 iOS 设备也可以缓存文件,因此可能需要卸载并重新启动设备。

【讨论】:

  • 米哈伊尔-谢谢。我今天将采取行动并上传另一个版本。我什至可以为我的所有图像采用资产目录方式。至少是它们的 1x 版本。
  • 我所有的图像现在都在资产目录中。我在找不到文件时遇到了一些问题,并从项目文件中删除了引用。但是,我现在被告知此文件丢失,但我在任何地方都找不到引用。找不到文件“/Users/MyUser/Library/Caches/Xamarin/mtbs/builds/MyApp.Mobile.iOS/b97b05343d52097d681db173220d856c/obj/iPhone/Debug/actool/bundle/AppIcon60x60@2x.png”我已经删除了缓存/MyApp 来自 MAC,PC 上的 bin/obj,从 iPhone 中删除了应用程序,重新启动了 iphone,但仍然出现此错误。有什么想法吗?
  • 是的,它仍然在您的 csproj 文件中的某处被引用。打开以编辑您的 iOS.csproj 文件并查找它。如果它不存在,那么您必须添加它的引用,因为有人正在寻找这个文件。要么引用它,要么从引用它的地方删除链接(很可能是某个图标目录)。
  • 我应该在资产目录的哪个位置添加它?在另一个 AppIcon 集中?
  • 是的,您的应用程序的图标应该是AppIcon 集。在那里,您还可以选择为您的应用添加 SpotlightSettings 和许多其他图标。您可以在此处查看必要的尺寸和步骤:docs.microsoft.com/en-us/xamarin/ios/app-fundamentals/…
猜你喜欢
  • 2018-09-16
  • 1970-01-01
  • 2013-09-30
  • 2021-07-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-10
  • 2017-10-27
相关资源
最近更新 更多