iOS - 使用不同支持的 iOS 版本的 Phonegap 构建项目的应用程序图标支持错误

Posted

技术标签:

【中文标题】iOS - 使用不同支持的 iOS 版本的 Phonegap 构建项目的应用程序图标支持错误【英文标题】:iOS - App Icons Support error with Phonegap Build Project with different supported versions of iOS 【发布时间】:2017-03-18 21:48:58 【问题描述】:

我在发布 .ipa 文件时遇到问题 我通过 Phonegap Build 生成,但是我从 Application Loader 收到以下消息:

“缺少所需的 ico 文件...该捆绑包不包含 Iphone 的应用程序图标...ios 版本格式为 120 x 120 像素> = 7”“

我哪里错了?

按照我上面的 config.xml

<icon src="ic_launcher.png" />
<icon  src="ic_launcher.png"  />
<icon  src="ic_launcher.png"  />
<icon  src="ic_launcher.png"  />
<content src="index.html" />
<preference name="permissions" value="none" />
<preference name="orientation" value="portrait" />
<preference name="target-device" value="universal" />
<preference name="fullscreen" value="false" />
<preference name="webviewbounce" value="true" />
<preference name="prerendered-icon" value="true" />
<preference name="stay-in-webview" value="false" />
<preference name="ios-statusbarstyle" value="black-opaque" />
<preference name="StatusBarOverlaysWebView" value="false"/>
<preference name="StatusBarBackgroundColor" value="#000000"/>
<preference name="StatusBarStyle" value="blackopaque" />
<preference name="detect-data-types" value="true" />
<preference name="exit-on-suspend" value="false" />
<preference name="disable-cursor" value="false" />
<preference name="android-minSdkVersion" value="14" />
<preference name="android-installLocation" value="auto" />
<plugin name="org.apache.cordova.battery-status" />
<plugin name="cordova-plugin-camera" source="npm" />
<plugin name="org.apache.cordova.media-capture" />
<plugin name="org.apache.cordova.console" />
<plugin name="org.apache.cordova.contacts" />
<plugin name="org.apache.cordova.device" />
<plugin name="org.apache.cordova.device-motion" />
<plugin name="org.apache.cordova.device-orientation" />
<plugin name="org.apache.cordova.dialogs" />
<plugin name="org.apache.cordova.file" />
<plugin name="org.apache.cordova.file-transfer" />
<plugin name="org.apache.cordova.geolocation" />
<plugin name="org.apache.cordova.globalization" />
<plugin name="org.apache.cordova.inappbrowser" />
<plugin name="org.apache.cordova.media" />
<plugin name="org.apache.cordova.network-information" />
<plugin name="org.apache.cordova.vibration" />    
<plugin name="cordova-plugin-whitelist" version="1" />
<plugin name="cordova.plugins.diagnostic" spec="~3.1.5" />
<platform name="ios">
    <!-- iPhone 6 / 6+ -->
    <icon src="icon-60@3x.png" platform="ios"   />
    <!-- iPhone / iPod Touch  -->
    <icon src="icon-60.png" platform="ios"   />
    <icon src="icon-60@2x.png" platform="ios"   />
    <icon src="Icon-60x60@1x.png" platform="ios"   />
    <icon src="Icon-60x60@2x.png" platform="ios"   />
    <icon src="Icon-60x60@3x.png" platform="ios"   />
    <!-- iPad -->
    <icon src="icon-76.png" platform="ios"   />
    <icon src="icon-76@2x.png" platform="ios"   />
    <icon src="icon-83.5@2x.png" platform="ios"   />
    <!-- Settings Icon -->
    <icon src="icon-small.png" platform="ios"   />
    <icon src="icon-small@2x.png" platform="ios"   />
    <icon src="icon-small@3x.png" platform="ios"   />
    <!-- Spotlight Icon -->
    <icon src="icon-40.png" platform="ios"   />
    <icon src="icon-40@2x.png" platform="ios"   />
    <icon src="icon-40@3x.png" platform="ios"   />
</platform>
<access origin="*" />
<access origin="*://*.googleapis.com/*" subdomains="true" />
<access origin="*.google.com" />
<access origin="*.googleapis.com" />
<access origin="*.gstatic.com" />
<access origin="*.googleusercontent.com" />
<access origin="google.com" subdomains="true" />
<access origin="googleapis.com" subdomains="true" />
<access origin="gstatic.com" subdomains="true" />
<access origin="googleusercontent.com" subdomains="true" />
<access origin="http://127.0.0.1*" />
<access origin="https://example.com" />
<access origin="https://example.com" subdomains="true" />
<access origin=".*" />
<allow-intent href="http://*/*" />
<allow-intent href="https://*/*" />
<allow-intent href="tel:*" />
<allow-intent href="sms:*" />
<allow-intent href="mailto:*" />
<allow-intent href="geo:*" />
<platform name="android">
    <allow-intent href="market:*" />
</platform>
<platform name="ios">
    <allow-intent href="itms:*" />
    <allow-intent href="itms-apps:*" />
</platform>

【问题讨论】:

【参考方案1】:

您可能没有为所有操作系统版本(在您的项目中支持)添加图标文件。

Here是所有图标大小的详细信息,你应该添加。

所需图标大小列表(考虑支持不同的设备,例如 iPad、iPod、iPhone、Watch、iTune、聚光灯或 CarPlay)

Icon-Small.png - 29x29 
Icon-Small@2x.png - 58x58 
Icon-Small@3x.png - 87x87 
Icon-40.png - 40x40 
Icon-40@2x.png - 80x80 
Icon-40@3x.png - 120x120 
Icon-60@2x.png - 120x120 
Icon-60@3x.png - 180x180 
Icon-76.png - 76x76 
Icon-76@2x.png - 152x152 
Icon-120.png - 120x120

【讨论】:

【参考方案2】:

我能够解决问题。按照以下解决方案:

    <platform name="ios">
    <icon   platform="ios"  src="icon.png"            />
    <icon  platform="ios"  src="icon-2x.png"         />
    <icon   platform="ios"  src="icon-40.png"         />
    <icon   platform="ios"  src="icon-40-2x.png"      />
    <icon   platform="ios"  src="icon-50.png"         />
    <icon  platform="ios"  src="icon-50-2x.png"      />
    <icon   platform="ios"  src="icon-60.png"         />
    <icon  platform="ios"  src="icon-60-2x.png"      />
    <icon  platform="ios"  src="icon-60-3x.png"      />
    <icon   platform="ios"  src="icon-72.png"         />
    <icon  platform="ios"  src="icon-72-2x.png"      />
    <icon   platform="ios"  src="icon-76.png"         />
    <icon  platform="ios"  src="icon-76-2x.png"      />
    <icon   platform="ios"  src="icon-small.png"      />
    <icon   platform="ios"  src="icon-small-2x.png"   />
</platform>

【讨论】:

以上是关于iOS - 使用不同支持的 iOS 版本的 Phonegap 构建项目的应用程序图标支持错误的主要内容,如果未能解决你的问题,请参考以下文章

升级 iOS 版 Phonegap(从 1.4.1 到最新版本)

浅述不同版本ios系统有什么特点 ios 1 -ios 12

iOS 7 和 iOS 6 同一个 App 的不同版本

如何在 Xcode 5 中使用不同的图像 iOS 6 和 iOS 7 [关闭]

在不同版本的 XCode 上编译和运行相同的代码以针对不同的 iOS 版本

最佳实践。通过支持 iOS 5、iOS 6 和 iOS 7 UI 使 iOS 应用程序通用