使用 Application Loader 工具提交我的应用程序时,出现以下错误:
ERROR ITMS-90236: "Missing required icons. The application bundle does not contain an icon in ICNS format, containing both a 512x512 and a 512x512@2x image. For further assistance, see the Apple Human Interface Guidelines."
我的图标(由 Info.plist 文件引用)包含这两个文件,因为它是使用以下命令创建的:
iconutil -c icns icon.iconset
icon.iconset 文件夹包含以下项目:
-rw-r--r-- 1 martin staff 11K 18 mai 11:24 icon_128x128.png
-rw-r--r-- 1 martin staff 23K 18 mai 11:24 icon_128x128@2x.png
-rw-r--r-- 1 martin staff 3,3K 18 mai 11:24 icon_16x16.png
-rw-r--r-- 1 martin staff 4,2K 18 mai 11:24 icon_16x16@2x.png
-rw-r--r-- 1 martin staff 23K 18 mai 11:24 icon_256x256.png
-rw-r--r-- 1 martin staff 48K 18 mai 11:24 icon_256x256@2x.png
-rw-r--r-- 1 martin staff 4,2K 18 mai 11:24 icon_32x32.png
-rw-r--r-- 1 martin staff 6,6K 18 mai 11:24 icon_32x32@2x.png
-rw-r--r-- 1 martin staff 48K 18 mai 11:24 icon_512x512.png
-rw-r--r-- 1 martin staff 92K 18 mai 11:24 icon_512x512@2x.png
我的图标有什么问题?
我的 Info.plist 文件:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleExecutable</key>
<string>Joker</string>
<key>CFBundleGetInfoString</key>
<string>Created by Qt/QMake</string>
<key>CFBundleIconFile</key>
<string>Joker.icns</string>
<key>CFBundleIdentifier</key>
<string>com.phonations.joker</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>15.05.25</string>
<key>CFBundleSignature</key>
<string>???</string>
<key>CFBundleVersion</key>
<string>15.05.25</string>
<key>LSApplicationCategoryType</key>
<string>public.app-category.video</string>
<key>NOTE</key>
<string>This file was generated by Qt/QMake.</string>
<key>NSHighResolutionCapable</key>
<string>True</string>
<key>NSPrincipalClass</key>
<string>NSApplication</string>
</dict>
</plist>
答案 0 :(得分:0)
即使主应用程序图标正确,也可能出现此错误。在我的例子中,有文档图标(也来自Info.plist),它没有所需的512x512 @ 2x分辨率。
有趣的是,如果文档图标被删除/丢失,验证过程不会抱怨。
此错误消息是正确的:“应用程序包确实包含ICNS格式的图标,不包含512x512和512x512 @ 2x图像。”
答案 1 :(得分:0)
我遇到了同样的问题并通过将我的icns文件转换为一个untset文件夹然后使用icontool
返回到icns格式来解决它。然后,应用程序加载器不再抱怨了。
尝试更新系统(命令行工具)并使用以下命令将icon.icns
重新生成为icon_new.icns
:
ICON_OLD=icon.icns
ICON_NEW=icon_new.icns
icontool -c iconset -o "${ICON_OLD%.icns}.iconset" "$ICON_OLD"
icontool -c icns -o "$ICON_NEW" "${ICON_OLD%.icns}.iconset"
最初我使用在线转换器https://iconverticons.com/online/从png图像创建了icns文件,这对我来说效果很好。当我将icns转换为iconset时,图标文件看起来很好,但在将其转换回icns之后,icns文件大小比在线工具生成的icns文件大2倍。奇怪的是,当我再次将较大的icns转换回iconset时,两个iconset目录都包含相同的文件列表。
这可能是由于icontool和appstore要求的某些更新造成的,这些更新尚未应用于在线转换器系统。
答案 2 :(得分:0)
1。首先创建一个文件夹,并将其重命名为“ icon.iconset”。
2。将大小为1024x1024的图像复制到该文件夹中 3.右键单击该图像以将png转换为icns格式。如果没有该选项,请下载Automator App。 4.您将获得icon.icns。将此icns图像放置在资源文件夹中(替换) 5.在package.json中添加路径注意:图片必须为正方形格式,并具有透明背景(1024x1024)
答案 3 :(得分:0)
当我尝试将一个非常旧的应用程序提交到应用程序商店时发生了这种情况。当我在 General
中选择 app-target Project-Settings
设置时,App Icons
部分会显示一个“转换为资产”按钮。一旦我这样做了,就使用资产目录中的图标,这比旧的 icns 文件效果更好。