expo ios build failing on fastlane - react-native

I am trying to build my expo app for ios (eas build --platform ios) but it keeps failing at fastlane. My previous build (2 months ago) was successful so I don't know what the problem is now.
Here is the error -
Here is how my eas.json looks like:
{
"cli": {
"version": ">= 0.53.0"
},
"build": {
"development": {
"developmentClient": true,
"distribution": "internal",
"ios": {"image": "latest"}
},
"preview": {
"distribution": "internal"
},
"production": {
}
},
"submit": {
"production": {
"ios": {
"appleId": "raxxxxxx",
"ascAppId": "xxxxxx",
"appleTeamId": "xxxxxx"
}
}
}
}
How can I resolve this?
My app is just a simple one, here is how it is structured:

Related

Expo Eas Build Local Loads To Type Error Invalid Version

Hey guys I have been trying to run my expo project build locally for debugging but I keep running into the following error when running the following command. Any help is appreciated!
eas build --profile development --local
✔ Select platform › Android
✔ Using remote Android credentials (Expo server)
✔ Using Keystore from configuration: Build Credentials xxxxxxxx (default)
TypeError: Invalid Version:
This is my eas.json
{
"build": {
"development": {
"developmentClient": true,
"distribution": "internal",
"android": {
"buildType": "apk"
},
"ios": {
"simulator": true
}
},
"preview": {
"distribution": "internal"
},
"production": {}
}
}
And my app.json
{
"expo": {
"name": "financialkeeps",
"slug": "financialkeeps",
"version": "1.0.0",
"orientation": "portrait",
"icon": "./assets/appicon2.png",
"userInterfaceStyle": "light",
"splash": {
"image": "./assets/splashscreen2.png",
"resizeMode": "cover",
"backgroundColor": "#FFFFFF"
},
"updates": {
"fallbackToCacheTimeout": 0
},
"assetBundlePatterns": [
"**/*"
],
"android": {
"adaptiveIcon": {
"foregroundImage": "./assets/adaptive-appicon2.png",
"backgroundColor": "#FFFFFF"
},
"package": "com.financialkeeps"
},
"ios": {
"supportsTablet": true,
"simulator": true,
"bundleIdentifier": "com.financialkeeps"
},
"web": {
"favicon": "./assets/favicon.png"
},
"extra": {
"eas": {
"projectId": "xxxxxxxxxxxxxxxxxxxxxxxxxxxx"
}
}
},
"react-native-google-mobile-ads": {
"android_app_id": "ca-app-pub-xxxxxxxxxxxxxxx",
"ios_app_id": "ca-app-pub-xxxxxxxx~xxxxxxxx"
}
}

React Native - How to generate an APK from EAS that doesn't require a seperate development server

Running npx eas-cli build creates an APK that I installed on my phone. I do, however, need to start the server from my computer. I would like to have a working APK, that doesn't need this local server.
I modified my EAS slightly according to docs. Though, unsure if I did right.
My eas.json:
{
"cli": {
"version": ">= 3.3.2"
},
"build": {
"development": {
"distribution": "internal",
"android": {
"gradleCommand": ":app:assembleDebug"
},
"ios": {
"buildConfiguration": "Debug"
}
},
"preview": {
"distribution": "internal",
"android": {
"buildType": "apk"
}
},
"preview3": {
"developmentClient": true
},
"production": {}
},
"submit": {
"production": {}
}
}
I appreciate any help!
eas build --profile preview --local
--profile preview - gets config from your eas file. You've set "buildType": "apk" there.
--local - means that you'll use your machine for building an app.

Apk file which made using eas build of react native expo cli is not works on real device

I've made an app using React Native Expo Cli. It works fine on Expo Go App and I've generated apk file using eas build --profile development --platform android and eas build --platform android. But these does not work on real device.
I've used eas build for making apk because earlier I was using expo build:android but now If I write this command on cmd and hit enter then after some seconds it is showing "Unsupported SDK version: our app builders do not support SDK version 45, yet. The latest SDK version is 45.0.0. Unsupported SDK version". You can check my app.json and eas.json file.
app.json
{
"expo": {
"name": "RoyalVivahVendor",
"slug": "RoyalVivahVendor",
"version": "1.0.0",
"orientation": "portrait",
"icon": "./assets/icon.png",
"userInterfaceStyle": "light",
"splash": {
"image": "./assets/splash.png",
"resizeMode": "contain",
"backgroundColor": "#ffffff"
},
"updates": {
"fallbackToCacheTimeout": 0
},
"assetBundlePatterns": [
"**/*"
],
"ios": {
"supportsTablet": true
},
"android": {
"adaptiveIcon": {
"foregroundImage": "./assets/adaptive-icon.png",
"backgroundColor": "#FFFFFF"
},
"package": "com.royalvivah.royalvivahvendor",
"versionCode": 1
},
"web": {
"favicon": "./assets/favicon.png"
}
}
}
eas.json
{
"cli": {
"version": ">= 0.52.0"
},
"build": {
"development": {
"developmentClient": true,
"distribution": "internal"
},
"preview": {
"distribution": "internal"
},
"production": {
"android": {
"buildType": "apk"
}
}
},
"submit": {
"production": {}
}
}

Detox react-native build success, "Detox can't seem to connect to the test app(s)!" (iOS)

Managed to build successfully, but I suspect I have something wrong with my binaryPath in .detoxrc?
react-native: 0.64.1
detox: 18.22.1
.detoxrc.json
{
"testRunner": "jest",
"runnerConfig": "e2e/config.json",
"skipLegacyWorkersInjection": true,
"apps": {
"ios": {
"type": "ios.app",
"binaryPath": "ios/build/Build/Products/Release-iphonesimulator/myappname.app",
"build": "xcodebuild -workspace ios/myappname.xcworkspace -configuration Release -scheme myappname id=ED0F3373-A57D-481B-86DA-D87007C00F85 -sdk iphonesimulator"
}
},
"devices": {
"simulator": {
"type": "ios.simulator",
"device": {
"type": "iPhone 12"
}
}
},
"configurations": {
"ios": {
"device": "simulator",
"app": "ios"
}
}
}
config.json
{
"maxWorkers": 1,
"testEnvironment": "./environment",
"testRunner": "jest-circus/runner",
"testTimeout": 5000,
"testNamePattern": "**.spec.js",
"reporters": ["detox/runners/jest/streamlineReporter"],
"verbose": true
}
react-native app running in iOS Simulator. detox test -c ios leads to:
detox[72935] ERROR: [APP_UNREACHABLE] Detox can't seem to connect to the test app(s)!
HINT:
The test app might have crashed prematurely, or has had trouble setting up the connection.
Refer to our troubleshooting guide, for full details: > https://github.com/wix/Detox/blob/master/docs/Troubleshooting.RunningTests.md#tests-execution-hangs
The same thing happened to me running on M1 Apple Silicon—fixed it by downgrading to 17.14.9

npx react-native run-android error after updating react native

I have upgraded my react native and created a new project.
When i run npx react-native run-android iam getting the below error.
D:\React Native Playground\AwesomeProject\node_modules\react-native\cli.js{ "root": "D:\React Native Playground\AwesomeProject", "reactNativePath": "D:\React Native Playground\AwesomeProject\node_modules\react-native", "dependencies": {}, "commands": [ { "name": "log-ios", "description": "starts iOS device syslog tail" }, { "name": "run-ios", "description": "builds your app and starts it on iOS simulator", "examples": [ { "desc": "Run on a different simulator, e.g. iPhone 5", "cmd": "react-native run-ios --simulator \"iPhone 5\"" }, { "desc": "Pass a non-standard location of iOS directory", "cmd": "react-native run-ios --project-path \"./app/ios\"" }, { "desc": "Run on a connected device, e.g. Max's iPhone", "cmd": "react-native run-ios --device \"Max's iPhone\"" }, { "desc": "Run on the AppleTV simulator", "cmd": "react-native run-ios --simulator \"Apple TV\" --scheme \"helloworld-tvOS\"" } ], "options": [ { "name": "--simulator [string]", "description": "Explicitly set simulator to use. Optionally include iOS version betweenparenthesis at the end to match an exact version: \"iPhone 6 (10.0)\"", "default": "iPhone 11" }, { "name": "--configuration [string]", "description": "Explicitly set the scheme configuration to use", "default": "Debug" }, { "name": "--scheme [string]", "description": "Explicitly set Xcode scheme to use" }, { "name": "--project-path [string]", "description": "Path relative to project root where the Xcode project (.xcodeproj) lives.", "default": "ios" }, { "name": "--device [string]", "description": "Explicitly set device to use by name. The value is not required if you have a single device connected." }, { "name": "--udid [string]", "description": "Explicitly set device to use by udid" }, { "name": "--no-packager", "description": "Do not launch packager while building" }, { "name": "--verbose", "description": "Do not use xcpretty even if installed" }, { "name": "--port [number]", "default": 8081 }, { "name": "--terminal [string]", "description": "Launches the Metro Bundler in a new window using the specified terminal path." } ] }, { "name": "log-android", "description": "starts logkitty" }, { "name": "run-android", "description": "builds your app and starts it on a connected Android emulator or device", "options": [ { "name": "--root [string]", "description": "Override the root directory for the android build (which contains the android directory)", "default": "" }, { "name": "--variant [string]", "description": "Specify your app's build variant", "default": "debug" }, { "name": "--appFolder [string]", "description": "Specify a different application folder name for the android source. If not, we assume is \"app\"", "default": "app" }, { "name": "--appId [string]", "description": "Specify an applicationId to launch after build.", "default": "" }, { "name": "--appIdSuffix [string]", "description": "Specify an applicationIdSuffix to launch after build.", "default": "" }, { "name": "--main-activity [string]", "description": "Name of the activity to start", "default": "MainActivity" }, { "name": "--deviceId [string]", "description": "builds your app and starts it on a specific device/simulator with the given device id (listed by running \"adb devices\" on the command line)." }, { "name": "--no-packager", "description": "Do not launch packager while building" }, { "name": "--port [number]", "default": 8081 }, { "name": "--terminal [string]", "description": "Launches the Metro Bundler in a new window using the specified terminal path." }, { "name": "--tasks [list]", "description": "Run custom Gradle tasks. By default it's \"installDebug\"" }, { "name": "--no-jetifier", "description": "Do not run \"jetifier\" – the AndroidX transition tool. By default it runs before Gradle to ease working with libraries that don't support AndroidX yet. See more at: https://www.npmjs.com/package/jetifier.", "default": false } ] } ], "assets": [], "platforms": { "ios": {}, "android": {} }, "haste": { "providesModuleNodeModules": [ "react-native" ], "platforms": [ "ios", "android" ] }, "project": { "ios": { "sourceDir": "D:\React Native Playground\AwesomeProject\ios", "folder": "D:\React Native Playground\AwesomeProject", "pbxprojPath": "D:\React Native Playground\AwesomeProject\ios\AwesomeProject.xcodeproj\project.pbxproj", "podfile": "D:\React Native Playground\AwesomeProject\ios\Podfile", "podspecPath": null, "projectPath": "D:\React Native Playground\AwesomeProject\ios\AwesomeProject.xcodeproj", "projectName": "AwesomeProject.xcodeproj", "libraryFolder": "Libraries", "sharedLibraries": [], "plist": [], "scriptPhases": [] }, "android": { "sourceDir": "D:\React Native Playground\AwesomeProject\android\app", "isFlat": false, "folder": "D:\React Native Playground\AwesomeProject", "stringsPath": "D:\React Native Playground\AwesomeProject\android\app\src\main\res\values\strings.xml", "manifestPath": "D:\React Native Playground\AwesomeProject\android\app\src\main\AndroidManifest.xml", "buildGradlePath": "D:\React Native Playground\AwesomeProject\android\app\build.gradle", "settingsGradlePath": "D:\React Native Playground\AwesomeProject\android\settings.gradle", "assetsPath": "D:\React Native Playground\AwesomeProject\android\app\src\main\assets", "mainFilePath": "D:\React Native Playground\AwesomeProject\android\app\src\main\java\com\awesomeproject\MainApplication.java", "packageName": "com.awesomeproject" } }}
^
FAILURE: Build failed with an exception.
Where:
Script 'D:\React Native Playground\AwesomeProject\node_modules#react-native-community\cli-platform-android\native_modules.gradle' line: 200
What went wrong:
A problem occurred evaluating script.
Failed to parse React Native CLI configuration. Expected running 'npx.cmd --quiet --no-install react-native config' command from 'D:\React Native Playground\AwesomeProject' directory to output valid JSON, but it didn't. This may be caused by npx resolving to a legacy global react-native binary. Please make sure to uninstall any global 'react-native' binaries: 'npm uninstall -g react-native react-native-cli' and try again.
My package.json
{
"name": "AwesomeProject",
"version": "0.0.1",
"private": true,
"scripts": {
"android": "react-native run-android",
"ios": "react-native run-ios",
"start": "react-native start",
"test": "jest",
"lint": "eslint ."
},
"dependencies": {
"react": "16.9.0",
"react-native": "0.61.5"
},
"devDependencies": {
"#babel/core": "7.8.4",
"#babel/runtime": "7.8.4",
"#react-native-community/eslint-config": "0.0.5",
"babel-jest": "24.9.0",
"eslint": "6.8.0",
"jest": "24.9.0",
"metro-react-native-babel-preset": "0.56.4",
"react-test-renderer": "16.9.0"
},
"jest": {
"preset": "react-native"
}
}
Per the error message, it sounds like npx may be resolving to a legacy react-native binary. If you have previously installed react-native-cli, this is likely the culprit, as the cli is now included along with the react-native binary. Per react-native docs:
If you previously installed a global react-native-cli package, please remove it as it may cause unexpected issues.
If you haven't already, try uninstalling react-native and react-native-cli with npm and then using npx (comes with node) for future react-native usage.
npm uninstall -g react-native react-native-cli
Then,
npx react-native init AwesomeProject