expo / eas-cli

Fastest way to build, submit, and update iOS and Android apps
https://docs.expo.dev/eas/
MIT License
821 stars 84 forks source link

EAS Submit fails with Error: Asset validation failed SDK version issue #1816

Closed Chrissi2812 closed 1 year ago

Chrissi2812 commented 1 year ago

Build/Submit details page URL

https://expo.dev/accounts/pixel-kraft/projects/commulino-liborius/submissions/53b8f5b9-7768-4630-80ce-21f03265fbce

Summary

If I run eas build -p ios --auto-submit the build finishes without problems, but the Submission fails with a Error Message regarding wrong iOS SDK.

Managed or bare?

Managed

Environment

expo-env-info 1.0.5 environment info: System: OS: Windows 10 10.0.22621 Binaries: Node: 16.15.1 - C:\Program Files\nodejs\node.EXE npm: 8.19.2 - C:\Program Files\nodejs\npm.CMD npmPackages: @expo/metro-config: ^0.3.0 => 0.3.22 babel-preset-expo: ~9.2.0 => 9.2.0 expo: ^46.0.0 => 46.0.7 react: 18.0.0 => 18.0.0 react-dom: 18.0.0 => 18.0.0 react-native: 0.69.6 => 0.69.6 Expo Workflow: managed

✔ Validating global prerequisites versions passed ✔ Checking for incompatible packages passed ✔ Checking for conflicting global packages in project passed ✔ Verifying prebuild support package versions are compatible passed ✖ Checking dependency versions for compatibility with the installed Expo SDK failed Issues: Some dependencies are incompatible with the installed expo version: @react-native-picker/picker@2.4.4 - expected version: 2.4.2 expo-camera@12.3.0 - expected version: ~12.5.0 expo-linking@3.2.2 - expected version: ~3.2.4 expo-updates@0.14.6 - expected version: ~0.14.7 react-native@0.69.6 - expected version: 0.69.9 Your project may not work correctly until you install the correct versions of the packages. Install individual packages by running npx expo install @react-native-picker/picker@2.4.2 expo-camera@~12.5.0 expo-linking@~3.2.4 expo-updates@~0.14.7 react-native@0.69.9 Found outdated dependencies Advice: • Use npx expo install --check to review and upgrade your dependencies. ✔ Validating Expo Config passed ✔ Checking package.json for common issues passed

✖ Found one or more possible issues with the project. See above logs for issues and advice to resolve.

Error output

✖ Something went wrong when submitting your app to Apple App Store Connect.

We couldn't figure out what went wrong. See logs to learn more.

[logs] Starting the submit process [logs] Downloading archive [logs] Preparing artifact [logs] Verifying archive [logs] Creating ascApiJsonKey.json file with ASC credentials [logs] Submitting iOS app to TestFlight... [logs] Submitting the app with fastlane pilot [logs] ------------------- [logs] --- Step: pilot --- [logs] ------------------- [logs] Creating authorization token for App Store Connect API [logs] Ready to upload new build to TestFlight (App: 6448564110)... [logs] Going to upload updated app to App Store Connect [logs] This might take a few minutes. Please don't interrupt the script. [logs] [altool] 2023-04-27 09:16:53.172 *** Error: Asset validation failed SDK version issue. This app was built with the iOS 15.5 SDK. All iOS and iPadOS apps submitted to the App Store must be built with the iOS 16.1 SDK or later, included in Xcode 14.1 or later. (ID: 3712a12f-0e39-471d-8c8a-c7aa9cf466f7) (90725) [logs] [altool] { [logs] [logs] [altool] NSLocalizedDescription = "Asset validation failed"; [logs] [logs] [altool] NSLocalizedFailureReason = "SDK version issue. This app was built with the iOS 15.5 SDK. All iOS and iPadOS apps submitted to the App Store must be built with the iOS 16.1 SDK or later, included in Xcode 14.1 or later. (ID: 3712a12f-0e39-471d-8c8a-c7aa9cf466f7)"; [logs] [logs] [altool] "original_server_error" = { [logs] [logs] [altool] code = "STATE_ERROR.VALIDATION_ERROR.90725"; [logs] [logs] [altool] detail = "SDK version issue. This app was built with the iOS 15.5 SDK. All iOS and iPadOS apps submitted to the App Store must be built with the iOS 16.1 SDK or later, included in Xcode 14.1 or later."; [logs] [logs] [altool] id = "3712a12f-0e39-471d-8c8a-c7aa9cf466f7"; [logs] [logs] [altool] status = 409; [logs] [logs] [altool] title = "Asset validation failed"; [logs] [altool] }; [logs] [logs] [altool] } [logs] [logs] Application Loader output above ^ [logs] ERROR: Asset validation failed (90725) SDK version issue. This app was built with the iOS 15.5 SDK. All iOS and iPadOS apps submitted to the App Store must be built with the iOS 16.1 SDK or later, included in Xcode 14.1 or later. (ID: 3712a12f-0e39-471d-8c8a-c7aa9cf466f7) [logs] Error uploading '/var/folders/h2/gp9wlkv11lg0qj6y2mnqgc_40000gn/T/0bed1094-5aca-4bb1-8f04-d3be2364cd09.ipa'. [logs] Asset validation failed SDK version issue. This app was built with the iOS 15.5 SDK. All iOS and iPadOS apps submitted to the App Store must be built with the iOS 16.1 SDK or later, included in Xcode 14.1 or later. (ID: 3712a12f-0e39-471d-8c8a-c7aa9cf466f7) (90725)[logs] The call to the altool completed with a non-zero exit status: 1. This indicates a failure. [logs] Could not download/upload from App Store Connect! [logs] [!] Error uploading ipa file: [logs] [Application Loader Error Output]: ERROR: Asset validation failed (90725) SDK version issue. This app was built with the iOS 15.5 SDK. All iOS and iPadOS apps submitted to the App Store must be built with the iOS 16.1 SDK or later, included in Xcode 14.1 or later. (ID: 3712a12f-0e39-471d-8c8a-c7aa9cf466f7) [logs] [Application Loader Error Output]: Error uploading '/var/folders/h2/gp9wlkv11lg0qj6y2mnqgc_40000gn/T/0bed1094-5aca-4bb1-8f04-d3be2364cd09.ipa'. [logs] [Application Loader Error Output]: Asset validation failed SDK version issue. This app was built with the iOS 15.5 SDK. All iOS and iPadOS apps submitted to the App Store must be built with the iOS 16.1 SDK or later, included in Xcode 14.1 or later. (ID: 3712a12f-0e39-471d-8c8a-c7aa9cf466f7) (90725) [logs] [Application Loader Error Output]: The call to the altool completed with a non-zero exit status: 1. This indicates a failure. [logs] Fastlane pilot failed [logs] Failed to submit the app

Reproducible demo or steps to reproduce from a blank project

I am Using fairly standard Build config files:

eas.json
{
  "cli": {
    "version": ">= 0.49.0"
  },
  "build": {
    "production": {
      "env": {
        ***********
      },
      "channel": "production"
    },
    "development": {
      "developmentClient": true,
      "distribution": "internal",
      "extends": "production",
      "channel": "development"
    },
    "preview": {
      "distribution": "internal",
      "extends": "production",
      "channel": "preview"
    }
  },
  "submit": {
    "production": {
      "android": {
        "track": "production"
      },
      "ios": {
        "appleId": "*****",
        "ascAppId": "*****",
        "appleTeamId": "*****"
      }
    }
  }
}
app.json
{
  "expo": {
    "jsEngine": "hermes",
    "name": "*****",
    "slug": "*****",
    "scheme": "*****",
    "privacy": "unlisted",
    "platforms": [
      "ios",
      "android"
    ],
    "version": "1.2.10",
    "orientation": "portrait",
    "icon": "./projects/*****/assets/icon.android.png",
    "primaryColor": "#72a900",
    "splash": {
      "image": "./projects/*****/assets/splash.png",
      "resizeMode": "cover",
      "backgroundColor": "#ffffff"
    },
    "updates": {
      "enabled": true,
      "fallbackToCacheTimeout": 0,
      "checkAutomatically": "ON_ERROR_RECOVERY"
    },
    "assetBundlePatterns": [
      "assets/**/*",
      "projects/*****/assets/**/*"
    ],
    "android": {
      "package": "*****",
      "googleServicesFile": "./projects/*****/google-services.json",
      "icon": "./projects/*****/assets/icon.android.png",
      "versionCode": 8,
      "permissions": [
        "CAMERA",
        "MANAGE_DOCUMENTS",
        "READ_EXTERNAL_STORAGE",
        "WRITE_EXTERNAL_STORAGE",
        "READ_INTERNAL_STORAGE",
        "ACCESS_MEDIA_LOCATION ",
        "RECORD_AUDIO",
        "USE_FINGERPRINT",
        "VIBRATE",
        "READ_CALENDAR",
        "WRITE_CALENDAR"
      ]
    },
    "ios": {
      "icon": "./projects/*****/assets/icon.ios.png",
      "supportsTablet": true,
      "bundleIdentifier": "*****",
      "buildNumber": "10",
      "config": {
        "usesNonExemptEncryption": false
      },
      "infoPlist": {
        "NSMicrophoneUsageDescription": "***** App Zugriff auf das Mikrofon gewähren um Ton für Videos aufzunehmen.",
        "NSCameraUsageDescription": "***** App Zugriff auf Kamera gewähren um Bilder für den Beitrag aufzunehmen.",
        "NSCalendarsUsageDescription": "***** App Zugriff auf den Kalender erlauben, um Events direkt im Kalender speichern zu können.",
        "NSPhotoLibraryUsageDescription": "***** App Zugriff auf Galerie gewähren um Bilder für den Beitrag auszuwählen.",
        "CFBundleLocalizations": [
          "de"
        ],
        "CFBundleDevelopmentRegion": "de"
      },
      "usesIcloudStorage": true
    },
    "notification": {
      "icon": "./projects/*****/assets/notification-icon.png",
      "color": "#72a900",
      "iosDisplayInForeground": true
    },
    "hooks": {
      "postPublish": [
        {
          "file": "sentry-expo/upload-sourcemaps",
          "config": {
            "organization": "*****",
            "project": "*****",
            "authToken": "****",
            "url": "https://sentry.*****.de"
          }
        }
      ]
    },
    "packagerOpts": {
      "config": "metro.config.js",
      "sourceExts": [
        "js",
        "jsx",
        "ts",
        "tsx",
        "svg",
        "svgx",
        "md"
      ]
    },
    "plugins": [
      "sentry-expo"
    ],
    "extra": {
      "eas": {
        "projectId": "*****"
      }
    }
  }
}
dembal1990 commented 1 year ago

+1

szdziedzic commented 1 year ago
[logs] [altool] 2023-04-27 09:16:53.172 *** Error: Asset validation failed SDK version issue. This app was built with the iOS 15.5 SDK. All iOS and iPadOS apps submitted to the App Store must be built with the iOS 16.1 SDK or later, included in Xcode 14.1 or later. (ID: 3712a12f-0e39-471d-8c8a-c7aa9cf466f7) (90725)

Hi, since April 25th App Store requires all submitted builds to be built with Xcode version >= 14.1.

https://developer.apple.com/news/?id=jd9wcyov

Your build used the macos-monterey-12.4-xcode-13.4 image which contains Xcode in version 13.4.

Changing the image parameter for your build profile to macos-monterey-12.6-xcode-14.1 should help (see https://docs.expo.dev/build-reference/eas-json/#image-1 and https://docs.expo.dev/build-reference/infrastructure/#ios-server-images).

I think it also might be worth it to update your SDK version to version 47 or 48.

Chrissi2812 commented 1 year ago

@szdziedzic Setting it manually in the eas.json worked. But why is the default working correct? According to the Docs it should be macos-monterey-12.6-xcode-14.1 or macos-monterey-12.6-xcode-14.2.

Working eas.json example

{
  "cli": {
    "version": ">= 0.49.0"
  },
  "build": {
    "production": {
      "ios": {
        "image": "macos-ventura-13.3-xcode-14.3" // This needs to be added
      },
      "channel": "production"
    },
  }
}
szdziedzic commented 1 year ago

Please see

Screenshot 2023-04-28 at 11 29 34

under https://docs.expo.dev/build-reference/infrastructure/#configuring-build-environment section.

If you explicitly specify default for your image value, it's true that the build will use macos-monterey-12.6-xcode-14.1 or macos-monterey-12.6-xcode-14.2 (depending on if you are using M1/M2 or Intel builders). However, if you don't specify the image value at all a more appropriate image based on the Expo SDK version or React Native version can be chosen for your build. For the combination of RN and SDK versions used by your project macos-monterey-12.4-xcode-13.4 was chosen.

Please let me know if you have any more questions.

thekamahele commented 1 year ago

Having an issue with this too. I'm using M1 and I've set the image to latest which should be equal to macos-ventura-13.3-xcode-14.3 but still getting the same error.

{
  "cli": {
    "version": ">= 0.51.0"
  },
  "build": {
    "simulator": {
      "ios": {
        "simulator": true
      }
    },
    "development": {
      "releaseChannel": "development"
    },
    "production": {
      "releaseChannel": "production",
      "ios": {
        "image": "latest"
      }
    }
  },
  }
szdziedzic commented 1 year ago

@thekamahele Could you give me a link to your submission and the build you submitted?

thekamahele commented 1 year ago

@thekamahele Could you give me a link to your submission and the build you submitted?

Here's the link to the submission and build bd790e79.

I'm thinking it might be the expo sdk version.. the project was never upgraded from 44 😬

Amabange97 commented 1 year ago

how did you solve the sdk issue? @thekamahele I am struggling to push mine to the app store because of the same error: "[Application Loader Error Output]: Asset validation failed SDK version issue. This app was built with the iOS 15.5 SDK. All iOS and iPadOS apps submitted to the App Store must be built with the iOS 16.1 SDK or later, included in Xcode 14.1 or later." I need help please

szdziedzic commented 1 year ago

@thekamahele Hi, I think you tried to submit a build using a development build profile in the submission you sent me.

I can see that you use the latest image only for the production build profile in your eas.json and I think that this is the reason why you are still using the too old image for your builds done with the development profile.

{
  "cli": {
    "version": ">= 0.51.0"
  },
  "build": {
    "simulator": {
      "ios": {
        "simulator": true
      }
    },
    "development": {
      "releaseChannel": "development"
    },
    "production": {
      "releaseChannel": "production",
      "ios": {
        "image": "latest"
      }
    }
  },
}

You can check what image is your build using in the Spin up build environment phase logs.

Screenshot 2023-06-12 at 08 45 26 Screenshot 2023-06-12 at 08 46 28
m4ndil commented 4 months ago

how did you solve the sdk issue? @thekamahele I am struggling to push mine to the app store because of the same error: "[Application Loader Error Output]: Asset validation failed SDK version issue. This app was built with the iOS 15.5 SDK. All iOS and iPadOS apps submitted to the App Store must be built with the iOS 16.1 SDK or later, included in Xcode 14.1 or later." I need help please

any updates @Amabange97