expo: ios_appd_id key not found in react-native-google-mobile-ads key in app.json

Summary

Running eas build -p ios --profile development --local and eas build -p android --profile development --local I have the same problem for iOS and Android:

› Executing TestProfessioniSanitarie » [CP-User] [RNGoogleMobileAds] Configuration
1022

❌  error: ios_appd_id key not found in react-native-google-mobile-ads key in app.json. App will crash without it.

1023
▸ ** ARCHIVE FAILED **
1024
▸ The following build commands failed:
1025
▸ 	PhaseScriptExecution [CP-User]\ [RNGoogleMobileAds]\ Configuration /Users/expo/Library/Developer/Xcode/DerivedData/TestProfessioniSanitarie-fwtbiszjyxdykrgisljhwxmwaemo/Build/Intermediates.noindex/ArchiveIntermediates/TestProfessioniSanitarie/IntermediateBuildFilesPath/TestProfessioniSanitarie.build/Release-iphoneos/TestProfessioniSanitarie.build/Script-E5F65904F9BF8C50E5CE0D54.sh (in target 'TestProfessioniSanitarie' from project 'TestProfessioniSanitarie')
1026
▸ (1 failure)
1027
2022-08-04 05:33:09.708 xcodebuild[4373:13628] Requested but did not find extension point with identifier Xcode.IDEKit.ExtensionSentinelHostApplications for extension Xcode.DebuggerFoundation.AppExtensionHosts.watchOS of plug-in com.apple.dt.IDEWatchSupportCore
1028
2022-08-04 05:33:09.708 xcodebuild[4373:13628] Requested but did not find extension point with identifier Xcode.IDEKit.ExtensionPointIdentifierToBundleIdentifier for extension Xcode.DebuggerFoundation.AppExtensionToBundleIdentifierMap.watchOS of plug-in com.apple.dt.IDEWatchSupportCore

Managed or bare workflow? If you have ios/ or android/ directories in your project, the answer is bare!

managed

What platform(s) does this occur on?

Android, iOS

SDK Version (managed workflow only)

45.0.0

Environment

expo-env-info 1.0.5 environment info:
    System:
      OS: macOS 12.5
      Shell: 5.8.1 - /bin/zsh
    Binaries:
      Node: 16.15.1 - /usr/local/bin/node
      npm: 8.12.1 - /usr/local/bin/npm
    IDEs:
      Xcode: /undefined - /usr/bin/xcodebuild
    npmPackages:
      @expo/metro-config: ^0.3.18 => 0.3.21 
      babel-preset-expo: ^9.1.0 => 9.2.0 
      expo: ^45.0.0 => 45.0.8 
      react: 17.0.2 => 17.0.2 
      react-native: 0.68.2 => 0.68.2 
    npmGlobalPackages:
      eas-cli: 0.57.0
      expo-cli: 6.0.1
    Expo Workflow: managed

Reproducible demo

I’m facing the same issue of https://github.com/expo/expo/issues/18354, this is my app.json:

{
  "expo": {
    "name": "Test Professioni Sanitarie",
    "slug": "Quiz_Professioni_Sanitarie",
    "privacy": "public",
    "platforms": [
      "ios",
      "android"
    ],
    "version": "1.0.3",
    "icon": "https://claudiofus.github.io/xxxx.png",
    "splash": {
      "image": "https://claudiofus.github.io/xxxx.png",
      "resizeMode": "contain"
    },
    "updates": {
      "fallbackToCacheTimeout": 0
    },
    "assetBundlePatterns": [
      "**/*"
    ],
    "android": {
      "package": "com.claudiofus.xxxx",
      "versionCode": 3,
      "permissions": []
    },
    "ios": {
      "bundleIdentifier": "com.claudiofus.xxxx",
      "buildNumber": "1.0.3",
      "infoPlist": {
        "NSUserTrackingUsageDescription": "Questo consenso verrà utilizzato per mostrare banner pubblicitari personalizzati.",
        "CFBundleDevelopmentRegion": "it"
      },
      "supportsTablet": true
    },
    "description": "",
    "hooks": {
      "postPublish": [
        {
          ...
        }
      ]
    }
  },
  "react-native-google-mobile-ads": {
    "android_app_id": "ca-app-pub-333407809519xxxx~xxxx",
    "ios_app_id": "ca-app-pub-333407809519xxxx~xxxx",
    "user_tracking_usage_description": "Questo consenso verrà utilizzato per mostrare banner pubblicitari personalizzati."
  }
}

This is my package.json:

{
  "main": "node_modules/expo/AppEntry.js",
  "scripts": {
    "profsan-test-ios": "eas build --profile development -p android"
  },
  "dependencies": {
    "@expo/metro-config": "^0.3.18",
    "@expo/ngrok": "^4.1.0",
    "@react-native-async-storage/async-storage": "~1.17.7",
    "@react-native-masked-view/masked-view": "0.2.6",
    "@react-navigation/drawer": "^5.12.9",
    "@react-navigation/native": "^5.9.8",
    "@react-navigation/stack": "^5.14.9",
    "expo": "^45.0.0",
    "expo-constants": "~13.1.1",
    "expo-device": "~4.2.0",
    "expo-linear-gradient": "~11.3.0",
    "expo-linking": "~3.1.0",
    "expo-splash-screen": "~0.15.1",
    "expo-store-review": "~5.2.0",
    "expo-updates": "~0.13.4",
    "firebase": "^9.9.1",
    "prop-types": "^15.7.2",
    "react": "17.0.2",
    "react-native": "0.68.2",
    "react-native-chart-kit": "^6.12.0",
    "react-native-gesture-handler": "~2.2.1",
    "react-native-google-mobile-ads": "^7.0.1",
    "react-native-reanimated": "~2.8.0",
    "react-native-safe-area-context": "4.2.4",
    "react-native-screens": "~3.11.1",
    "react-native-svg": "12.3.0",
    "sentry-expo": "^4.2.0",
    "expo-dev-client": "~1.0.1"
  },
  "devDependencies": {
    "babel-preset-expo": "^9.1.0",
    "eslint-config-handlebarlabs": "^0.0.6",
    "prettier": "^2.7.1",
    "react-devtools": "^4.24.7",
    "react-native-debugger": "^1.1.0"
  },
  "private": true
}

And this is my eas.json:

{
  "cli": {
    "version": ">= 0.54.1"
  },
  "build": {
    "development": {
      "distribution": "internal",
      "env": {
        "APP_ENV": "prof-san"
      }
    }
  }
}

About this issue

  • Original URL
  • State: closed
  • Created 2 years ago
  • Reactions: 7
  • Comments: 24 (11 by maintainers)

Most upvoted comments

Expo merges app.config.js and app.json so you can keep using app.config.js. Just create another file named app.json and only include

{
  "react-native-google-mobile-ads": {
    "android_app_id": "ca-app-pub-xxx",
    "ios_app_id": "ca-app-pub-xxx"
  }
}

I am experiencing the same error but I am using app.json directly:

{
  "expo": {
    "owner": "gainesvilleboyz",
    "name": "Pollen Map",
    "slug": "pollenbbmap",
    "version": "1.0.0",
    "orientation": "portrait",
    "icon": "./assets/bbhex.png",
    "userInterfaceStyle": "light",
    "splash": {
      "image": "./assets/hexsplash.png",
      "resizeMode": "contain",
      "backgroundColor": "#282C33"
    },
    "updates": {
      "fallbackToCacheTimeout": 0,
      "url": "https://u.expo.dev/f1e56d54-fba8-4d30-a13a-8194465be77d"
    },
    "assetBundlePatterns": ["**/*"],
    "ios": {
      "supportsTablet": true,
      "bundleIdentifier": "com.arham23.pollenbbmap",
      "infoPlist": {
        "NSLocationWhenInUseUsageDescription": "Core functionality of the app is to display a map drawn using Uber's H3 partitioning algorithm, this necessitates tracking the user location to draw on relevant portions of the map and center it when requested."
      }
    },
    "android": {
      "config": {
        "googleMaps": {
          "apiKey": "..."
        }
      },
      "adaptiveIcon": {
        "backgroundColor": "#FFE342"
      },
      "package": "com.arham23.pollenbbmap"
    },
    "web": {
      "favicon": "./assets/favicon.png"
    },
    "runtimeVersion": {
      "policy": "sdkVersion"
    }
  },
  "react-native-google-mobile-ads": {
    "android_app_id": "ca-app-pub-xxx",
    "ios_app_id": "ca-app-pub-xxx"
  }
}

Thank you, that’s the point of this issue. I think they could fix it and would be good for all the devs using app.config.js. Without this file and using only app.json we will lose abstraction IMHO.

Convert app.config.js into app.json, I did that to solve the issue, check this comment https://github.com/invertase/react-native-google-mobile-ads/issues/179#issuecomment-1166333372

none of the solutions here worked for me for eas builds

Hello, I had the same problem, ios_app_id key not found. I removed the ' quotes that I had in my photosPermission and savePhotosPermission keys of expo-media-library

expo@47.0.8 expo-media-library@15.0.0

😮‍💨

I am experiencing the same error but I am using app.json directly:

{
....
}

@123epsilon you may want to remove your google API key

Hi, the solutions above didn’t work for me. I cannot eas build anymore because of this error

It worked 2 months ago.

I have both app.json and app.config.js files, but still have ios_app_id key not found.

Did anybody found out something how to fix it?

I had the same error message (running react-native-google-mobile-ads version 8.2.2). It turned out my app.json did not contain valid json. I had an extra comma in there that wasn’t triggering my editors linter for some reason. Maybe check your app.json against a validator like jsonlint.com. I see that your json IS valid and maybe this was a different problem back then with version 7.0.2.