images not rendering in iOS expo build but fine on android and all local builds

facing a weird issue where all images are not being rendered on iOS but seem to working fine on android.

I cant seem to replicate the issue locally, on the simulators it renders fine - which has left me scratching my head.

Any advice appreciated. This issue only seems to have started after i ejected into a bare project but i dont understand why it has not shown up on the simulators.

eas-cli: 0.46.0
“expo”: “^42.0.0”,
“react-native”: “~0.63.4”,

“assetBundlePatterns”: [
“./assets/**/*”
],

are you building with eas build? you will likely see a warning about metro.config.js please share your metro config

Hi,

you are right, I did get metro config notice

It looks like that you are using a custom metro.config.js that does not extend @expo/metro-config.
This can result in unexpected and hard to debug issues, like missing assets in the production bundle.
We recommend you to abort, fix the metro.config.js, and try again.
Learn more on customizing Metro: https://docs.expo.dev/guides/customizing-metro/
✔ Would you like to abort? … no
(node:7420) [DEP0148] DeprecationWarning: Use of deprecated folder mapping "./" in the "exports" field module resolution of the package at node_modules/tslib/package.json.
Update this package.json to use a subpath pattern like "./*".
(Use `node --trace-deprecation ...` to show where the warning was created)
✔ Using remote iOS credentials (Expo server)

here was my metro config

const { getDefaultConfig } = require("metro-config");
const { resolver: defaultResolver } = getDefaultConfig.getDefaultValues();

exports.resolver = {
  ...defaultResolver,
  sourceExts: [
     ...defaultResolver.sourceExts,
    "cjs",
  ],
};

i have no updated this to

const { getDefaultConfig } = require('@expo/metro-config');

const defaultConfig = getDefaultConfig(__dirname);

defaultConfig.resolver.sourceExts.push('cjs');

module.exports = defaultConfig;

and that seems to have fixed the issue, thank you.

1 Like