找不到 AppIcon
Posted
技术标签:
【中文标题】找不到 AppIcon【英文标题】:AppIcon is not being found 【发布时间】:2020-10-21 18:41:17 【问题描述】:我正在尝试推广一个旧应用程序,但我在应用程序图标应该是简单的东西上碰壁
这是一个超级简单的基于网络的应用程序,因此我使用更新的模板重新制作了该项目,它构建良好,除了应用程序图标之外的所有内容。
当我尝试将我的 ipa 上传到商店时,我收到以下消息:
错误 ITMS-90022:“缺少所需的图标文件。该捆绑包不包含 iPhone / iPod Touch 的应用程序图标,该图标恰好为“120x120”像素,ios 版本为 .png 格式 >= 10.0。 为了支持旧版本的 iOS,在资产目录之外的捆绑包中可能需要该图标。确保 Info.plist 文件包含引用该文件的适当条目。见https://developer.apple.com/documentation/bundleresources/information_property_list/user_interface"
错误 ITMS-90704:“缺少应用程序图标。尺寸为 1024 x 1024 像素的 PNG 格式的应用程序图标必须包含在为 iOS、iPadOS 或 watchOS 构建的应用程序的资产目录中。没有此图标,无法提交应用程序供审查。 详情见https://developer.apple.com/ios/human-interface-guidelines/icons-and-images/app-icon/."
这是我的 Contents.json 文件的样子:
"images":[
"idiom":"iphone",
"size":"20x20",
"scale":"2x",
"filename":"Icon-App-20x20@2x.png"
,
"idiom":"iphone",
"size":"20x20",
"scale":"3x",
"filename":"Icon-App-20x20@3x.png"
,
"idiom":"iphone",
"size":"29x29",
"scale":"1x",
"filename":"Icon-App-29x29@1x.png"
,
"idiom":"iphone",
"size":"29x29",
"scale":"2x",
"filename":"Icon-App-29x29@2x.png"
,
"idiom":"iphone",
"size":"29x29",
"scale":"3x",
"filename":"Icon-App-29x29@3x.png"
,
"idiom":"iphone",
"size":"40x40",
"scale":"2x",
"filename":"Icon-App-40x40@2x.png"
,
"idiom":"iphone",
"size":"40x40",
"scale":"3x",
"filename":"Icon-App-40x40@3x.png"
,
"idiom":"iphone",
"size":"60x60",
"scale":"2x",
"filename":"Icon-App-60x60@2x.png"
,
"idiom":"iphone",
"size":"60x60",
"scale":"3x",
"filename":"Icon-App-60x60@3x.png"
,
"size" : "1024x1024",
"idiom" : "ios-marketing",
"scale" : "1x",
"filename" : "ItunesArtwork@2x.png"
],
"info":
"version":1,
"author":"xcode"
这就是我的 csproj 文件中的样子:
<ItemGroup>
<ImageAsset Include="Assets.xcassets\AppIcon.appiconset\Contents.json">
<Visible>false</Visible>
</ImageAsset>
<ImageAsset Include="Assets.xcassets\AppIcon.appiconset\Icon-App-20x20@1x.png">
<Visible>false</Visible>
</ImageAsset>
<ImageAsset Include="Assets.xcassets\AppIcon.appiconset\Icon-App-20x20@2x.png">
<Visible>false</Visible>
</ImageAsset>
<ImageAsset Include="Assets.xcassets\AppIcon.appiconset\Icon-App-20x20@3x.png">
<Visible>false</Visible>
</ImageAsset>
<ImageAsset Include="Assets.xcassets\AppIcon.appiconset\Icon-App-29x29@1x.png">
<Visible>false</Visible>
</ImageAsset>
<ImageAsset Include="Assets.xcassets\AppIcon.appiconset\Icon-App-29x29@2x.png">
<Visible>false</Visible>
</ImageAsset>
<ImageAsset Include="Assets.xcassets\AppIcon.appiconset\Icon-App-29x29@3x.png">
<Visible>false</Visible>
</ImageAsset>
<ImageAsset Include="Assets.xcassets\AppIcon.appiconset\Icon-App-40x40@1x.png">
<Visible>false</Visible>
</ImageAsset>
<ImageAsset Include="Assets.xcassets\AppIcon.appiconset\Icon-App-40x40@2x.png">
<Visible>false</Visible>
</ImageAsset>
<ImageAsset Include="Assets.xcassets\AppIcon.appiconset\Icon-App-40x40@3x.png">
<Visible>false</Visible>
</ImageAsset>
<ImageAsset Include="Assets.xcassets\AppIcon.appiconset\Icon-App-60x60@2x.png">
<Visible>false</Visible>
</ImageAsset>
<ImageAsset Include="Assets.xcassets\AppIcon.appiconset\Icon-App-60x60@3x.png">
<Visible>false</Visible>
</ImageAsset>
<ImageAsset Include="Assets.xcassets\AppIcon.appiconset\Icon-App-76x76@1x.png">
<Visible>false</Visible>
</ImageAsset>
<ImageAsset Include="Assets.xcassets\AppIcon.appiconset\Icon-App-76x76@2x.png">
<Visible>false</Visible>
</ImageAsset>
<ImageAsset Include="Assets.xcassets\AppIcon.appiconset\Icon-App-83.5x83.5@2x.png">
<Visible>false</Visible>
</ImageAsset>
<ImageAsset Include="Assets.xcassets\AppIcon.appiconset\ItunesArtwork@2x.png">
<Visible>false</Visible>
</ImageAsset>
</ItemGroup>
文件在它们应该在的地方,我简直不知所措。我还尝试重命名不带破折号的图像,但也没有用。
我有所有必需的图片,所以我不确定为什么应用找不到它。
我什至使用了另一个应用程序的图标集,该应用程序正在工作,但仍然没有。
【问题讨论】:
明确地说,你有文件,对吧?他们只是没有出现? 我知道,它们在正确的文件夹中,一切都在 您是否将它们包含在您的项目中?见this 不是 Xmarin 编码器,但引起我注意的是您说这是一个旧应用程序。几岁?几年前的某个时候,Apple 需要一个 1024x1024 的应用程序图标。我在你的问题中没有看到任何迹象表明存在。几乎任何图像编辑器都应该对您有所帮助。祝你好运! 它是 2011 年的,但我添加了那个尺寸的图像。 【参考方案1】:我发现filename
有一些错误。
一般,filename
由Icon-scale*size.png
定义,但是您的文件名包含
wrod @3x/@2x
显示更多。
因此,您可以修改filename
如下:
"images": [
"filename": "Icon-App-40.png",
"size": "20x20",
"scale": "2x",
"idiom": "iphone"
,
"filename": "Icon-App-60.png",
"size": "20x20",
"scale": "3x",
"idiom": "iphone"
,
"filename": "Icon-App-58.png",
"size": "29x29",
"scale": "2x",
"idiom": "iphone"
,
"filename": "Icon-App-87.png",
"size": "29x29",
"scale": "3x",
"idiom": "iphone"
,
"filename": "Icon-App-80.png",
"size": "40x40",
"scale": "2x",
"idiom": "iphone"
,
"filename": "Icon-App-120.png",
"size": "40x40",
"scale": "3x",
"idiom": "iphone"
,
"filename": "Icon-App-120.png",
"size": "60x60",
"scale": "2x",
"idiom": "iphone"
,
"filename": "Icon-App-180.png",
"size": "60x60",
"scale": "3x",
"idiom": "iphone"
,
"filename": "Icon-App-1024.png",
"size": "1024x1024",
"scale": "1x",
"idiom": "ios-marketing"
],
"info":
"version": 1,
"author": "xcode"
注意:也可以不定义-
,定义filename
,如Icon40.png
。
==================================更新============= ====================
<ImageAsset Include="Assets.xcassets\AppIcon.appiconset\Icon1024.png">
<Visible>false</Visible>
</ImageAsset>
<ImageAsset Include="Assets.xcassets\AppIcon.appiconset\Icon180.png">
<Visible>false</Visible>
</ImageAsset>
<ImageAsset Include="Assets.xcassets\AppIcon.appiconset\Icon167.png">
<Visible>false</Visible>
</ImageAsset>
<ImageAsset Include="Assets.xcassets\AppIcon.appiconset\Icon152.png">
<Visible>false</Visible>
</ImageAsset>
<ImageAsset Include="Assets.xcassets\AppIcon.appiconset\Icon120.png">
【讨论】:
所以它在我看到应用程序上的图标的意义上起作用,但是当我尝试将其上传到商店时,我仍然收到两个错误,声称 120 和 1024 图标不存在。 @Eman Okey,当您修改filename
时,.csproj
是否显示为我更新的答案。另外1024
大小的png文件的filename
最好用Icon-App-1024.png
试试。
@Eman 你能显示更新的Contents.json
和.csproj
文件吗?
用它更新了问题,我直接从我们拥有的新应用程序中复制了它。与通用应用程序相比,它与 iPhone 应用程序的工作方式有什么不同吗?
我发现了我的问题,现在可以正常工作了,谢谢你的帮助:)【参考方案2】:
经过大量的扯头发和选择词后,我得到了它的工作。
问题是,当我删除该文件夹并进行重建时,我正在使用一个包含所有视图控制器和业务逻辑的共享层,并且该项目内部是一个 Assets.xcassets 文件夹,其中包含一些共享图形,我的应用图标回来了,transporter 上传了应用。
所以对于任何使用共享层来存储业务逻辑的人来说,不要有多个 Assets.xcassets 文件夹,因为它们会重叠在你身上。
【讨论】:
这也解决了我的问题。删除bin
和obj
文件夹并重建。【参考方案3】:
我似乎每次必须向AppStore提交更新时都会遇到这个问题,并且每次解决方案都不同。如果我只需要花几个小时就可以了,我认为自己很幸运。这一次,它与 Xamarin 放置 IPA 文件的文件夹有关。如果它把它放在像这里这样的地方:
MyApp\MyApp.iOS\bin\iPhone\Ad-Hoc\device-builds\iphone12.8-14.2
然后我得到错误。如果它去这样的地方:
MyApp\MyApp.iOS\bin\iPhone\Ad-Hoc
然后图标就在那里,并且可以正常工作。我不确定到底是什么决定了它的去向,我的猜测是,如果您在调试配置中对测试设备进行了构建,然后切换到 ad hoc,它认为它仍在为设备构建,因此不包括图标(因为除非您上传到 AppStore,否则不需要它)。因此,在构建候选版本之前,请关闭 VS,重新打开并重新连接 Mac。
然而,似乎有多种因素会导致此问题。
【讨论】:
以上是关于找不到 AppIcon的主要内容,如果未能解决你的问题,请参考以下文章
无效的图像路径 - 在键 'CFBundleIcons':'AppIcon29x29' 错误下引用的路径中找不到图像
无效的图像路径 - 在键“CFBundleIcons”下引用的路径中找不到图像:“AppIcon20x20”[重复]
如何修复错误 ITMS-90032:“无效的图像路径 - 在键 'CFBundleIcons' 下引用的路径中找不到图像:'AppIcon60x60'”?