iOS EAS build failing - Hermes Podfile

I recently moved to EAS and updated to SDK 47. Local builds used to work fine. I’m having an issue with my iOS builds failing now, related to a dependency with react-native hermes having a podspec that is in conflict with another; here is the exact error.

Specs satisfying the hermes-engine (from …/node_modules/react-native/sdks/hermes/hermes-engine.podspec) dependency were found, but they required a higher minimum deployment target.

I have run --clear-cache, invalidated the cache in the eas.json, run expo doctor, run expo update, npm install expo. Nothing works. Is there any insight here, I’m hitting a wall and any direction would be much appreciated.

setup:
expo sdk 47
expo cli 6.0.6
managed workflow

Hi! If there’s a managed build where this error occurs, if you can provide the link to it, we can take a closer look. I did see a build with this error where the ios folder was checked in, so prebuild wasn’t run. If this is your intended configuration, it may help to try deleting the Podfile.lock file and running pod install again.

Keith,

Thanks for the response. I don’t remember when that ios and dist directories were created… I deleted the ios folder and the build works fine now. Did I misconfigure something? What would have caused that?

Still having an issue with iOS simulator crashing when running the build, even though it works perfectly on the actual devices, but that is unrelated.

If you run npx expo prebuild -p ios it generates the native ios directory.
If you run npx expo run:ios it calls npx expo prebuild -p ios in the background before building the native project. I suspect you did this at some point.

ah okay, good to know. I had run that in order to try to run a production build on Ios simulator that could be debugged. I’m running into a issue where the build package works fine on a device but immediately crashes on the simulator, which causes app review to fail.

Is it possible to get device logs from the simulator?

When running the dev server yes, but not on the production build as far as I can tell; i.e. looking at the terminal to review device logs doesn’t show any console.logs.

e.g.:

error	08:34:25.349220-0500	runningboardd	<OSLaunchdJob | handle=F9C1710C-506A-4B35-9399-6D67A2729B73>: job failed to spawn, plist={
	ProcessType => App
	EnableTransactions => false
	_ManagedBy => com.apple.runningboard
	RootedSimulatorPath => true
	CFBundleIdentifier => com.reservat
	_ResourceCoalition => application<com.reservat>
	ThrottleInterval => 2147483647
	MachServices => {
	}
	EnablePressuredExit => false
	InitialTaskRole => 1
	UserName => mobile
	EnvironmentVariables => {
		TMPDIR => /Users/elliotszutz/Library/Developer/CoreSimulator/Devices/9886DB62-E758-46FD-8F82-FA7DCF5D6123/data/Containers/Data/Application/239BF6C0-DFD5-4DFC-A965-3D984D913A0D/tmp
		HOME => /Users/elliotszutz/Library/Developer/CoreSimulator/Devices/9886DB62-E758-46FD-8F82-FA7DCF5D6123/data/Containers/Data/Application/239BF6C0-DFD5-4DFC-A965-3D984D913A0D
		CFFIXED_USER_HOME => /Users/elliotszutz/Library/Developer/CoreSimulator/Devices/9886DB62-E758-46FD-8F82-FA7DCF5D6123/data/Containers/Data/Application/239BF6C0-DFD5-4DFC-A965-3D984D913A0D
	}
	_AdditionalProperties => {
		RunningBoard<…>
error	08:34:25.349272-0500	runningboardd	Process start failed with Error Domain=NSPOSIXErrorDomain Code=153 "Unknown error: 153" UserInfo={NSLocalizedDescription=Launchd job spawn failed}
error	08:34:25.349591-0500	runningboardd	Launch failed with Error Domain=NSPOSIXErrorDomain Code=153 "Unknown error: 153" UserInfo={NSLocalizedDescription=Launchd job spawn failed}
error	08:34:25.350183-0500	SpringBoard	Bootstrapping failed for <FBApplicationProcess: 0x1668554f0; application<com.reservat>:<invalid>> with error: <NSError: 0x600001b0b450; domain: RBSRequestErrorDomain; code: 5; reason: "Launch failed."> {
    NSUnderlyingError = <NSError: 0x600001b08930; domain: NSPOSIXErrorDomain; code: 153>;
}
error	08:34:25.455070-0500	SpringBoard	Scene FBSceneManager/sceneID:com.reservat-default update failed: <NSError: 0x600001b6ec70; domain: FBSceneErrorDomain; code: 1 (operation-failed); reason: "Scene update failed."> {
    NSUnderlyingError = <NSError: 0x600001b10f60; domain: FBWorkspaceScene; code: 1; reason: "Client process exited.">;
}
error	08:34:25.457739-0500	SpringBoard	Error creating the CFMessagePort needed to communicate with PPT.

I can also see unsymbolicated crash logs:

Last Exception Backtrace:
0   CoreFoundation                	       0x1ad46de88 __exceptionPreprocess + 164
1   libobjc.A.dylib               	       0x1a681b8d8 objc_exception_throw + 60
2   reserv                        	       0x100eaab84 0x100e74000 + 224132
3   reserv                        	       0x100ebead4 0x100e74000 + 305876
4   reserv                        	       0x100ebe188 0x100e74000 + 303496
5   libdispatch.dylib             	       0x1b4a384b4 _dispatch_call_block_and_release + 32
6   libdispatch.dylib             	       0x1b4a39fdc _dispatch_client_callout + 20
7   libdispatch.dylib             	       0x1b4a41694 _dispatch_lane_serial_drain + 672
8   libdispatch.dylib             	       0x1b4a421e0 _dispatch_lane_invoke + 384
9   libdispatch.dylib             	       0x1b4a4ce10 _dispatch_workloop_worker_thread + 652
10  libsystem_pthread.dylib       	       0x1f9b4adf8 _pthread_wqthread + 288
11  libsystem_pthread.dylib       	       0x1f9b4ab98 start_wqthread + 8`

or the crash reports from apple:

"exception" : {"codes":"0x0000000000000000, 0x0000000000000000","rawCodes":[0,0],"type":"EXC_CRASH","signal":"SIGABRT"},
  "asi" : {"libsystem_c.dylib":["abort() called"]},
  "lastExceptionBacktrace" : [{"imageOffset":40584,"symbol":"__exceptionPreprocess","symbolLocation":164,"imageIndex":1},{"imageOffset":96472,"symbol":"objc_exception_throw","symbolLocation":60,"imageIndex":9},{"imageOffset":224132,"imageIndex":4},{"imageOffset":305876,"imageIndex":4},{"imageOffset":303496,"imageIndex":4},{"imageOffset":9396,"symbol":"_dispatch_call_block_and_release","symbolLocation":32,"imageIndex":10},{"imageOffset":16348,"symbol":"_dispatch_client_callout","symbolLocation":20,"imageIndex":10},{"imageOffset":46740,"symbol":"_dispatch_lane_serial_drain","symbolLocation":672,"imageIndex":10},{"imageOffset":49632,"symbol":"_dispatch_lane_invoke","symbolLocation":384,"imageIndex":10},{"imageOffset":93712,"symbol":"_dispatch_workloop_worker_thread","symbolLocation":652,"imageIndex":10},{"imageOffset":3576,"symbol":"_pthread_wqthread","symbolLocation":288,"imageIndex":6},{"imageOffset":2968,"symbol":"start_wqthread","symbolLocation":8,"imageIndex":6}],
  "faultingThread" : 4,
  "threads" : [{"id":2692702,"queue":"com.apple.main-thread","frames":[{"imageOffset":2888,"symbol":"mach_msg2_trap","symbolLocation":8,"imageIndex":0},{"imageOffset":77832,"symbol":"mach_msg2_internal","symbolLocation":80,"imageIndex":0},{"imageOffset":78408,"symbol":"mach_msg_overwrite","symbolLocation":388,"imageIndex":0},{"imageOffset":4236,"symbol":"mach_msg","symbolLocation":24,"imageIndex":0},

Everything is up to date, and it seems to be an issue with the simulator since after the recent macOS and Xcode updates ALL builds new or old crash. I’ve been spending the last few days trying to figure out how to symbolicate the crash reports but finding the source maps (which I think is what I need) is proving to be difficult. Even the npx expo run:ios works fine, there’s something or some env variable that isn’t the same in prod builds.

Any pointers where to look would be much appreciated.

Hi

To see the device logs, have a look at these instructions:

https://developer.apple.com/documentation/xcode/acquiring-crash-reports-and-diagnostic-logs#Access-device-console-logs

See if they give you any useful info.