Hi all!
I can’t solve the problem for a week now, I’m trying to run the eas build command for ios only. But there is a problem when doing the fastlane step.
It just hangs at a certain point, and after the time (45 minutes) it just breaks the build.
I’ll attach the screen.
At the same time, yesterday I tried to do the same with an empty project, and in 8 minutes it completely completed the assembly without errors!
I am using monorep.
node → 18.10.0
package.json
{
"name": "netwall-app",
"version": "1.0.0",
"main": "index.js",
"scripts": {
"start": "expo start",
"android": "expo run:android",
"ios": "expo run:ios",
"web": "expo start --web"
},
"dependencies": {
"@expo-google-fonts/montserrat": "^0.2.3",
"expo": "~49.0.8",
"expo-constants": "~14.4.2",
"expo-haptics": "~12.4.0",
"expo-linear-gradient": "~12.3.0",
"expo-linking": "~5.0.2",
"expo-router": "2.0.0",
"expo-splash-screen": "~0.20.5",
"expo-status-bar": "~1.6.0",
"react": "18.2.0",
"react-dom": "18.2.0",
"react-native": "0.72.4",
"react-native-safe-area-context": "4.6.3",
"react-native-screens": "~3.22.0",
"react-native-svg": "13.9.0",
"react-native-svg-transformer": "^1.1.0",
"react-native-web": "~0.19.6"
},
"devDependencies": {
"@babel/core": "^7.20.12",
"@types/react": "~18.2.14",
"typescript": "^5.1.3"
},
"private": true,
"expo": {
"autolinking": {
"nativeModulesDir": "../../packages"
}
}
}
eas.json
{
"cli": {
"version": ">= 4.1.2"
},
"build": {
"development": {
"distribution": "internal",
"android": {
"gradleCommand": ":app:assembleDebug"
},
"ios": {
"buildConfiguration": "Debug",
// "fastlane": "2.213.0"
}
},
"preview": {
"distribution": "internal",
"resourceClass": "large",
"ios": {
// "fastlane": "2.213.0"
}
},
"production": {
"distribution": "internal",
"node": "18.10.0",
// "resourceClass": "large",
"ios": {
// "fastlane": "2.213.0"
},
"env": {
"EXPO_USE_METRO_WORKSPACE_ROOT": "1"
}
},
"test": {
// "credentialsSource": "local",
"distribution": "internal",
"ios": {
"buildConfiguration": "Release",
"enterpriseProvisioning": "adhoc"
}
},
},
"submit": {
"production": {}
}
}
metro.config.js
const { getDefaultConfig } = require('expo/metro-config');
const path = require('path');
// Find the project and workspace directories
const projectRoot = __dirname;
// This can be replaced with `find-yarn-workspace-root`
const workspaceRoot = path.resolve(projectRoot, '../..');
const config = getDefaultConfig(projectRoot);
// 1. Watch all files within the monorepo
config.watchFolders = [workspaceRoot];
// 2. Let Metro know where to resolve packages and in what order
config.resolver.nodeModulesPaths = [
path.resolve(projectRoot, 'node_modules'),
path.resolve(workspaceRoot, 'node_modules'),
];
// 3. Force Metro to resolve (sub)dependencies only from the `nodeModulesPaths`
config.resolver.disableHierarchicalLookup = true;
config.transformer.babelTransformerPath = require.resolve('react-native-svg-transformer');
config.transformer.getTransformOptions = async () => ({
transform: {
experimentalImportSupport: false,
inlineRequires: false,
},
})
config.resolver.assetExts = config.resolver.assetExts.filter(ext => ext !== 'svg'),
config.resolver.sourceExts = [...config.resolver.sourceExts, 'svg']
module.exports = config;
Maybe someone has a solution to this problem?