You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

eas submit --platform ios提交失败:iOS应用图标验证不通过求助

iOS提交App Store Connect时图标验证失败问题排查

我用React Native + Expo开发了一个小型应用,APK发布正常,eas build构建也无错误,但执行eas submit --platform ios时遇到以下错误:

Something went wrong when submitting your app to Apple App Store Connect.
Your iOS app icon is missing or is an invalid format. The icon must be a 1024x1024 PNG image with no transparency.
Check your icon image and icon configuration in app.json.

我已确认图标尺寸为1024x1024、路径正确且无透明像素,以下是我的配置文件:

app.json 配置

{
  "expo": {
    "name": "PharmacyServiceDonations",
    "slug": "PharmacyServiceDonations",
    "version": "2.1.1",
    "ios": {
      "bundleIdentifier": "com.anonymous.PharmacyServiceDonations",
      "icon": "./assets/icon/adaptive-icon.png",
      "buildNumber": "2.1.1"
    },
    "android": {
      "package": "com.anonymous.PharmacyServiceDonations"
    },
    "extra": {
      "eas": {
        "projectId": "58244e3c-69dd-4e9d-ac67-cffb4a705d19"
      }
    }
  }
}

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>CADisableMinimumFrameDurationOnPhone</key>
    <true/>
    <key>CFBundleDevelopmentRegion</key>
    <string>$(DEVELOPMENT_LANGUAGE)</string>
    <key>CFBundleExecutable</key>
    <string>$(EXECUTABLE_NAME)</string>
    <key>CFBundleIdentifier</key>
    <string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
    <key>CFBundleInfoDictionaryVersion</key>
    <string>6.0</string>
    <key>CFBundleName</key>
    <string>$(PRODUCT_NAME)</string>
    <key>CFBundlePackageType</key>
    <string>$(PRODUCT_BUNDLE_PACKAGE_TYPE)</string>
    <key>CFBundleShortVersionString</key>
    <string>2.1.1</string>
    <key>CFBundleSignature</key>
    <string>????</string>
    <key>CFBundleVersion</key>
    <string>2</string>
    <key>CFBundleIconName</key>
    <string>AppIcon</string>
    <key>LSRequiresIPhoneOS</key>
    <true/>
    <key>NSAppTransportSecurity</key>
    <dict>
        <key>NSAllowsArbitraryLoads</key>
        <false/>
        <key>NSAllowsLocalNetworking</key>
        <true/>
    </dict>
    <key>UILaunchStoryboardName</key>
    <string>SplashScreen</string>
    <key>UIRequiredDeviceCapabilities</key>
    <array>
        <string>arm64</string>
    </array>
    <key>UIStatusBarStyle</key>
    <string>UIStatusBarStyleDefault</string>
    <key>UISupportedInterfaceOrientations</key>
    <array>
        <string>UIInterfaceOrientationPortrait</string>
        <string>UIInterfaceOrientationLandscapeLeft</string>
        <string>UIInterfaceOrientationLandscapeRight</string>
    </array>
    <key>UIViewControllerBasedStatusBarAppearance</key>
    <false/>
    <key>NSCameraUsageDescription</key>
    <string>Your message to user when the camera is accessed for the first time</string>
    <key>NSMicrophoneUsageDescription</key>
    <string>Your message to user when the microphone is accessed for the first time</string>
    <key>NSPhotoLibraryAddUsageDescription</key>
    <string>Your message to user when the photo library is accessed for the first time</string>
    <key>NSPhotoLibraryUsageDescription</key>
    <string>Your message to user when the photo library is accessed for the first time</string>
</dict>
</plist>

排查原因及解决方法

1. 图标配置优先级冲突

你的info.plist中设置了CFBundleIconName为AppIcon,但Expo默认通过app.json的ios.icon字段生成图标集,两者冲突会导致App Store Connect无法正确识别图标。

  • 解决:删除info.plist中的<key>CFBundleIconName</key>和对应的<string>AppIcon</string>条目,让Expo完全接管图标配置。

2. PNG文件格式隐蔽问题

即使尺寸正确,PNG可能存在以下问题:

  • 使用索引颜色模式:Apple要求图标用RGB模式,索引模式会被判定无效。
  • 存在隐含透明通道:部分工具导出的PNG即使视觉不透明,仍可能保留空透明通道。
  • 解决:用Photoshop或Mac Preview重新导出:
    • 确认颜色模式为RGB。
    • 导出时选"PNG-24",明确关闭透明选项。

3. Expo构建未正确嵌入图标

eas build可能未将图标正确打包到IPA中,即使构建无报错。

  • 解决:
    1. 清理Expo缓存:执行npx expo prebuild --clean,重新生成原生项目文件。
    2. 重新执行eas build --platform ios,检查构建日志无图标相关警告。
    3. 下载IPA包解压,查看Payload/[AppName].app/Assets.car是否包含正确图标资源。

4. App Store Connect缓存问题

Apple服务器可能缓存旧图标数据,导致新提交的图标无法被识别。

  • 解决:
    • 登录App Store Connect,进入应用"App信息"页面,手动上传1024x1024的App Store图标。
    • 等待15-30分钟后,重新执行eas submit --platform ios。

内容的提问来源于stack exchange,提问作者ahmad hamdan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 05:54:54