David Henry
David Henry

Reputation: 3062

How to set minimum IPHONEOS_DEPLOYMENT_TARGET version in React Native using Expo

Got the following error after running npx expo run:ios this morning, not sure what's changed was fine yesterday.

/Users/{me}/Desktop/Development/{my-project}/ios/Pods/Pods.xcodeproj: warning: The iOS Simulator deployment target 'IPHONEOS_DEPLOYMENT_TARGET' is set to 11.0, but the range of supported deployment target versions is 12.0 to 17.0.99. (in target 'libaom' from project 'Pods') /Users/{me}/Desktop/Development/{my-project}/ios/Pods/Pods.xcodeproj: warning: The iOS Simulator deployment target 'IPHONEOS_DEPLOYMENT_TARGET' is set to 11.0, but the range of supported deployment target versions is 12.0 to 17.0.99. (in target 'SDWebImage' from project 'Pods') /Users/{me}/Desktop/Development/{my-project}/ios/Pods/Pods.xcodeproj: warning: The iOS Simulator deployment target 'IPHONEOS_DEPLOYMENT_TARGET' is set to 11.0, but the range of supported deployment target versions is 12.0 to 17.0.99. (in target 'FirebaseCoreExtension' from project 'Pods') /Users/{me}/Desktop/Development/{my-project}/ios/Pods/Pods.xcodeproj: warning: The iOS Simulator deployment target 'IPHONEOS_DEPLOYMENT_TARGET' is set to 11.0, but the range of supported deployment target versions is 12.0 to 17.0.99. (in target 'GoogleUtilities' from project 'Pods') /Users/{me}/Desktop/Development/{my-project}/ios/Pods/Pods.xcodeproj: warning: The iOS Simulator deployment target 'IPHONEOS_DEPLOYMENT_TARGET' is set to 11.0, but the range of supported deployment target versions is 12.0 to 17.0.99. (in target 'FirebaseAppCheckInterop' from project 'Pods') /Users/{me}/Desktop/Development/{my-project}/ios/Pods/Pods.xcodeproj: warning: The iOS Simulator deployment target 'IPHONEOS_DEPLOYMENT_TARGET' is set to 11.0, but the range of supported deployment target versions is 12.0 to 17.0.99. (in target 'GoogleDataTransport' from project 'Pods')

Reading through the expo.dev documentation here. I've set my iOS deployment version to be 13.0 in my app.json file as per the below;

"plugins": [
      "@react-native-google-signin/google-signin",
      [
        "@stripe/stripe-react-native",
        {
          "merchantIdentifier": "XXXXXXXXXX",
          "enableGooglePay": false
        }
      ],
      [
        "expo-build-properties",
        {
          "ios": {
            "deploymentTarget": "13.0"
          }
        }
      ],
      "@react-native-firebase/app",
      [
        "expo-build-properties",
        {
          "ios": {
            "useFrameworks": "static"
          }
        }
      ]
    ],

I've deleted my .ios & .android folders re-run npx expo prebuild and then npx expo run:ios but still receiving the same issue.

package.json

"@expo/vector-icons": "^13.0.0",
    "@invertase/react-native-apple-authentication": "^2.3.0",
    "@react-native-async-storage/async-storage": "1.18.2",
    "@react-native-firebase/analytics": "^18.6.2",
    "@react-native-firebase/app": "^18.6.2",
    "@react-native-firebase/auth": "^18.6.2",
    "@react-native-firebase/firestore": "^18.6.2",
    "@react-native-firebase/functions": "^18.6.2",
    "@react-native-firebase/messaging": "^18.6.2",
    "@react-native-google-signin/google-signin": "^10.1.1",
    "@react-navigation/bottom-tabs": "^6.5.11",
    "@react-navigation/native": "^6.1.9",
    "@react-navigation/native-stack": "^6.9.17",
    "@stripe/stripe-react-native": "0.28.0",
    "algoliasearch": "^4.20.0",
    "expo": "~49.0.15",
    "expo-build-properties": "~0.8.3",
    "expo-font": "~11.4.0",
    "expo-image": "~1.3.5",
    "expo-splash-screen": "~0.20.5",
    "expo-status-bar": "~1.6.0",
    "expo-system-ui": "~2.4.0",
    "expo-web-browser": "~12.3.2",
    "react": "18.2.0",
    "react-instantsearch-core": "^7.3.0",
    "react-native": "0.72.6",
    "react-native-fbsdk-next": "^12.1.2",
    "react-native-safe-area-context": "4.6.3",
    "react-native-screens": "~3.22.0"

UPDATE

So turns out that I don't need to specify "deploymentTarget": "13.0" in app.json as when running npx expo prebuild when the native files are generated the podfile sets the deploymentTarget to 13 if the key is missing in the app.json file.

PODFILE:

platform :ios, podfile_properties['ios.deploymentTarget'] || '13.0'

however, this is not being forced in the pods. For example going into XCode and checking I can see it's still 11.0.

enter image description here

Upvotes: 0

Views: 2887

Answers (1)

Muhammad Omran
Muhammad Omran

Reputation: 4615

I've tried this an worked!

by using: expo-build-properties

npx expo install expo-build-properties.

and in your app.json or app.config.js, you will see it added expo-build-properties to the plugin so configure it as below:

    "plugins": [
      // ...prev plugins
      [
        "expo-build-properties",
        {
          "ios": {
            "deploymentTarget": "15.5"
          }
        }
      ]
    ]

Upvotes: 1

Related Questions