xcode 应用图标集“AppIcon”有一个未分配的子项

rbl8hiat  于 2023-11-21  发布在  其他
关注(0)|答案(9)|浏览(175)

我清理构建了我的应用程序,看到这个错误消息:应用程序图标集“AppIcon”有一个未分配的孩子。
当我查看Images.xcassets时,每个图标槽都被正确的图标填充,并且没有未分配的图标。在过去,XCode似乎随机忘记了图标的槽,并将其放在所有标记的图标槽下面。在那些情况下,我将图标拖回正确的槽,错误就消失了。也没有任何关于图标大小错误的错误。
我检查了Images.xcassets/AppIcon.appiconset/Contents.json,JSON中没有文件名为空的条目。
使用Xcode 7.2
我将感激任何帮助。

jhdbpxl9

jhdbpxl91#

选择未分配的图像,并通过删除按钮删除它。

cuxqih21

cuxqih212#

遇到了同样的错误,但以不同的方式解决了它。
在项目中,导航到Assets.xcassets/AppIcon.appiconset/Contents.json并打开此JSON文件。
查看并删除任何不必要的图标集。
对我来说,这是一组iPad图标(看到应用程序只兼容iPhone,不需要)。
一旦删除,清洁-然后-建立

bvjveswy

bvjveswy3#

这个错误的另一个原因是:磁盘上的文件名大小写和Content.json中的文件名大小写不同。它们需要匹配。
在我的例子中,磁盘上的文件名都是小写的,这就是它们在Content.json中被引用的方式。然后我得到了新的图像,它们被升级,我只是把它们拖到Xcode中来更新它们。现在磁盘上和Content.json都引用了升级的文件。
但是Git并没有选择大小写,它只是认为文件更新了,并没有改变大小写。所以在构建服务器上,我最终使用了小写的文件名,但是Content.json引用了大写的文件名。需要在我的系统上将它们小写并修复Content.json

n1bvdmb6

n1bvdmb64#

我注意到其中4个图标在Content.json中的名称中有一个破折号,但在Navigator或文件系统中的名称中没有破折号。我删除并重新添加了这些图标,警告消失了。当我重新添加它们时,只有2个图标在Content.json中有破折号。
这可能是一个Xcode bug。

pcww981p

pcww981p5#

检查您是否选择了正确的图像大小。如果它显示放一个80x80大小的图像,那么你必须只放一个80x80大小,而不是更少。

ecbunoof

ecbunoof6#

我有计算机科学学位,我很不好意思说我花了多长时间让应用程序图标为我的watchOS应用程序工作。
我觉得我学到了:

  • 1000%确保Info.plist中的内容与Contents.json中的内容完全匹配(包括路径,它定义了集合的名称),并与.csproj文件(ItemGroup/ImageAsset)中的内容匹配。如果您在Info.plist中多次使用任何文件,请仅在. csproj中列出一次。在文本模式下编辑这些文件。复制/粘贴是您的朋友。
  • 确保Info.plist有 * 正 * 斜杠,而.csproj有 * 反 * 斜杠。复制/粘贴是你的敌人。
  • 在资产目录或.csproj中不要有额外的文件--这就是“未分配子级”警告的来源
  • 如果您使用Visual Studio打开资产目录,它显示任何设置不正确,请让它修复或使用它来修复,然后返回并手动编辑/验证Content.json和.csproj
  • 我还把<key>CFBundlePackageType</key><string>APPL</string>命名为AppIcons.appiconset,虽然我不确定这两个是否重要。

我把完整的Contents.json粘贴在下面。我从Xamarin示例“WatchKitCatalog”中提取了它。
祝你好运

{
  "images": [
    {
      "scale": "1x",
      "size": "1024x1024",
      "idiom": "watch-marketing",
      "filename": "icon1024.png"
    },
    {
      "role": "notificationCenter",
      "subtype": "38mm",
      "scale": "2x",
      "size": "24x24",
      "idiom": "watch",
      "filename": "icon48.png"
    },
    {
      "role": "notificationCenter",
      "subtype": "42mm",
      "scale": "2x",
      "size": "27.5x27.5",
      "idiom": "watch",
      "filename": "icon55.png"
    },
    {
      "role": "companionSettings",
      "scale": "2x",
      "size": "29x29",
      "idiom": "watch",
      "filename": "icon58.png"
    },
    {
      "role": "companionSettings",
      "scale": "3x",
      "size": "29x29",
      "idiom": "watch",
      "filename": "icon87.png"
    },
    {
      "role": "appLauncher",
      "subtype": "38mm",
      "scale": "2x",
      "size": "40x40",
      "idiom": "watch",
      "filename": "icon80.png"
    },
    {
      "role": "appLauncher",
      "subtype": "40mm",
      "scale": "2x",
      "size": "44x44",
      "idiom": "watch",
      "filename": "Mark_NoType_SM_Trans88x88.png"
    },
    {
      "role": "appLauncher",
      "subtype": "44mm",
      "scale": "2x",
      "size": "50x50",
      "idiom": "watch",
      "filename": "Mark_NoType_SM_Trans100x100.png"
    },
    {
      "role": "quickLook",
      "subtype": "38mm",
      "scale": "2x",
      "size": "86x86",
      "idiom": "watch",
      "filename": "icon172.png"
    },
    {
      "role": "quickLook",
      "subtype": "42mm",
      "scale": "2x",
      "size": "98x98",
      "idiom": "watch",
      "filename": "icon196.png"
    },
    {
      "role": "quickLook",
      "subtype": "44mm",
      "scale": "2x",
      "size": "108x108",
      "idiom": "watch",
      "filename": "Mark_NoType_SM_Trans216x216.png"
    }
  ],
  "properties": {},
  "info": {
    "version": 1,
    "author": "xcode"
  }
}

字符串

zazmityj

zazmityj7#

当图像文件的名称中有特殊字符时,我遇到了未分配孩子的问题。在删除特殊字符后,问题得到了解决。

mm5n2pyu

mm5n2pyu8#

在我的例子中,contents.json的文件名神奇地消失了。
已经从一个新的flutter项目中替换了contents.json文件的内容。

gkn4icbw

gkn4icbw9#

看起来有一些变化,应用图标在使用Xcode构建时失败,最近显示以下错误,即使文件名和Contents.json具有匹配的图标名称:
无法将从“AppIcon.appiconset/120.png”设置的应用图标的图像数据写入“/Users/redacted/Library/Developer/Xcode/DerivedData/Runner-gvaporjleqotxoegcxkjxrghpepal/Build/Products/Redig-iphoneos/Runner.app/ email protected(https://stackoverflow.com/cdn-cgi/l/email-protection)“。

应用图标集“AppIcon”有一个未分配的子项
所有以前的工作图标生成器网站失败与类似的错误.这是唯一一个工程:
图标名称:

[email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected]@1x.png Icon-[email protected] [email protected] [email protected]

字符串
Contents.json:

{
    "images":[
        {
            "idiom":"iphone",
            "size":"20x20",
            "scale":"2x",
            "filename":"[email protected]"
        },
        {
            "idiom":"iphone",
            "size":"20x20",
            "scale":"3x",
            "filename":"[email protected]"
        },
        {
            "idiom":"iphone",
            "size":"29x29",
            "scale":"1x",
            "filename":"[email protected]"
        },
        {
            "idiom":"iphone",
            "size":"29x29",
            "scale":"2x",
            "filename":"[email protected]"
        },
        {
            "idiom":"iphone",
            "size":"29x29",
            "scale":"3x",
            "filename":"[email protected]"
        },
        {
            "idiom":"iphone",
            "size":"40x40",
            "scale":"2x",
            "filename":"[email protected]"
        },
        {
            "idiom":"iphone",
            "size":"40x40",
            "scale":"3x",
            "filename":"[email protected]"
        },
        {
            "idiom":"iphone",
            "size":"60x60",
            "scale":"2x",
            "filename":"[email protected]"
        },
        {
            "idiom":"iphone",
            "size":"60x60",
            "scale":"3x",
            "filename":"[email protected]"
        },
        {
            "idiom":"iphone",
            "size":"76x76",
            "scale":"2x",
            "filename":"[email protected]"
        },
        {
            "idiom":"ipad",
            "size":"20x20",
            "scale":"1x",
            "filename":"[email protected]"
        },
        {
            "idiom":"ipad",
            "size":"20x20",
            "scale":"2x",
            "filename":"[email protected]"
        },
        {
            "idiom":"ipad",
            "size":"29x29",
            "scale":"1x",
            "filename":"[email protected]"
        },
        {
            "idiom":"ipad",
            "size":"29x29",
            "scale":"2x",
            "filename":"[email protected]"
        },
        {
            "idiom":"ipad",
            "size":"40x40",
            "scale":"1x",
            "filename":"[email protected]"
        },
        {
            "idiom":"ipad",
            "size":"40x40",
            "scale":"2x",
            "filename":"[email protected]"
        },
        {
            "idiom":"ipad",
            "size":"76x76",
            "scale":"1x",
            "filename":"[email protected]"
        },
        {
            "idiom":"ipad",
            "size":"76x76",
            "scale":"2x",
            "filename":"[email protected]"
        },
        {
            "idiom":"ipad",
            "size":"83.5x83.5",
            "scale":"2x",
            "filename":"[email protected]"
        },
        {
            "size" : "1024x1024",
            "idiom" : "ios-marketing",
            "scale" : "1x",
            "filename" : "[email protected]"
        }
    ],
    "info":{
        "version":1,
        "author":"redacted"
    }
}

相关问题