This new major version fixes a bug where expo apps running in monorepos weren't able to locate the js bundle. This is a breaking change and requires a change to your metro.config.js
file. In addition, make sure to run npx expo prebuild -p ios --clean
so that your app runs with the latest native changes.
Before
// Learn more https://docs.expo.io/guides/customizing-metro
const { getDefaultConfig } = require("expo/metro-config");
/**
* Add support for share.js as a recognized extension to the Metro config.
* This allows creating an index.share.js entry point for our iOS share extension
*
* @param {import('expo/metro-config').MetroConfig} config
* @returns {import('expo/metro-config').MetroConfig}
*/
function withShareExtension(config) {
config.transformer.getTransformOptions = () => ({
resolver: {
sourceExts: [...config.resolver.sourceExts, "share.js"], // Add 'share.js' as a recognized extension
},
});
return config;
}
module.exports = withShareExtension(getDefaultConfig(__dirname), {
// [Web-only]: Enables CSS support in Metro.
isCSSEnabled: true,
});
After
// Learn more https://docs.expo.io/guides/customizing-metro
const { getDefaultConfig } = require("expo/metro-config");
const { withShareExtension } = require("expo-share-extension/metro");
module.exports = withShareExtension(getDefaultConfig(__dirname), {
// [Web-only]: Enables CSS support in Metro.
isCSSEnabled: true,
});