Xamarin警告:应用程序图标集“AppIcons”有2个未分配的子项

时间:2015-11-04 14:35:25

标签: ios xamarin mono xamarin.ios xamarin-studio

编译时我收到以下警告:

  

警告:

     

/Users/some-user/Projects/SomeApp/SomeApp/SomeApp.csproj(Build)    - > /Library/Frameworks/Mono.framework/External/xbuild/Xamarin/iOS/Xamarin.iOS.Common.targets   (_CoreCompileImageAssets target) - >

     

Resources / Images.xcassets:actool警告:应用程序图标集   “AppIcons”有2个未分配的孩子。

     

1警告

我为应用图标提供了每张图片(手表/汽车除外)。 Contents.json文件中没有“未分配”值。我还尝试取消设置每个图像并重新设置它。我还在收到警告。

目前我正在使用Xamarin Studio 5.9.7(build 22),Xamarin.iOS 9.0.1.29和Mono 4.0.4。,Xcode 7.0.1(8228)Build 7A1001。所有这些都在Mac OS X 10.10.5上运行。

如何删除警告?

8 个答案:

答案 0 :(得分:7)

如果。\ AppIcons.appiconset文件夹中的图标未在Contents.json文件中使用/引用,那么您将收到警告"应用程序图标集" AppIcons"有*未分配的孩子。"。查看文件夹中的所有图标,并浏览Contents.json中引用的所有图标,然后从文件夹中删除多余的图标。即使未包含在项目中,未引用的图标也会导致编译器警告。

答案 1 :(得分:3)

iOS 9.2.1,Xcode 7.2.1,已启用ARC

如果JSON文件看起来不错,那么资产目录可能只是损坏了;当您拖放文件并可能意外地从路径中的文件夹中删除文件或更改Xamarin中的资源路径时,有时会发生这种情况。

无论哪种方式,看看Xamarin是否有某种删除资产目录并再次添加的方式,然后指定您的应用将运行哪些iOS目标和设备以正确配置资产目录。

设置目录后,您必须再次将每个资产添加到资产目录中。

希望这会有所帮助。干杯!

答案 2 :(得分:1)

我遇到了同样的问题。我已经清理了项目并重新编译它,一切都很好。此外,当图标丢失时,它仅在我清理项目时添加。

答案 3 :(得分:0)

我在Mac,Xamarin,Xcode 9.2的VS中遇到了相同的问题。将我的应用程序图标添加到Assets.xcassets后,我看到了“ Appicons未分配子代”错误。对我有用的解决方案是退出Visual Studio并重新启动它。重新启动Visual Studio后,构建过程继续进行,没有错误。

答案 4 :(得分:0)

我有一个类似的问题,可能是由于Contents.json损坏引起的。我的Media.xcassets位于资源目​​录下。我从头开始重新创建了资产目录,现在它似乎可以正常工作。

步骤:

  1. 备份Media.xcassets目录。
  2. 创建新的AppIcons资产(在“解决方案”视图中,导航到iOS项目>“资产目录”,然后双击“媒体”
  3. 单击“添加”按钮(左上角),然后选择“添加应用程序图标并启动图像->添加应用程序图标”。这将创建一个新的AppIcos.appiconset目录(可能在您的项目根目录中),并生成一个空的Contents.json文件。
  4. 使用相应的“ ...”按钮添加必要的图标。
  5. 查看您是否仍然收到编译警告。
  6. 如果您希望将Media.xcassets移动到Resource或其他目录下:
    1. 将Media.xcassets移动到所需的子目录
    2. 在文本编辑器中打开Info.plist和.project .csproj文件,然后手动编辑所有ImageAsset标记,以将其目录从Media.xcassets更改为Resources \ Media.xcassets。确保没有重复的行引用相同的资产。
  7. 删除备份Media.xcassets目录

答案 5 :(得分:0)

我又一次收到了同样的警告。因为它是iPad唯一的应用,所以我在Contents.json的相关xcassets中拥有此应用:

  "images": [
    {
      "scale": "1x",
      "idiom": "ipad",
      "filename": "Group@1x.png"
    },

我将其更改为此

  "images": [
    {
      "scale": "1x",
      "idiom": "universal",
      "filename": "Group@1x.png"
    },

,错误消失了。您必须为每个条目执行此操作。

答案 6 :(得分:0)

我也收到上述警告:

MyApp / MyApp.iOS / obj / iPhone / Debug / device-builds / iphone12.1-13.7 / actool / cloned-assets / Assets.xcassets:actool错误:无法在以下情况下为平台“ iOS”启用按需资源定位于9.0之前的版本。考虑禁用ENABLE_ON_DEMAND_RESOURCES构建设置。

通过从8.0升级到9.0,错误对我来说已经消失了。我还认为问题出在“ Assets.xcassets”中创建ImageSet

答案 7 :(得分:0)

我的iOS csproj文件具有对旧xcassets的已删除文件的旧引用。 只需编辑.csproj文件并删除这些多余的引用即可。