Unable to Record on iOS Simulator: Simulator architecture is unsupported

Been trying to solve this issue for quite some time. I was going to record an iOS test on a simulator using a .app file but it failed. I have tried some suggestions that I found from similar issues but nothing works.

I’m using Katalon 7.6.2
Xcode 11.6
Simulator iOS 13.6

Any help would be appreciated.

This is the error that I got:

java.util.concurrent.ExecutionException: org.openqa.selenium.SessionNotCreatedException: Unable to create a new remote session. Please check the server log for more details. Original error: An unknown server-side error occurred while processing the command. Original error: Simulator architecture is unsupported by the '/Users/[user]/Downloads/[path]/MyApp.app' application. Make sure the correct deployment target has been selected for its compilation in Xcode.

Build info: version: 'unknown', revision: 'unknown', time: 'unknown'

System info: host: '[hostname]', ip: '[ipaddress]', [os.name](http://os.name/): 'Mac OS X', os.arch: 'x86_64', os.version: '10.15.6', java.version: '1.8.0_181'

Driver info: driver.version: IOSDriver remote stacktrace: UnknownError: An unknown server-side error occurred while processing the command. Original error: Simulator architecture is unsupported by the '/Users/[user]/Downloads/[path]/MyApp.app' application. Make sure the correct deployment target has been selected for its compilation in Xcode.

 at getResponseForW3CError (/usr/local/lib/node_modules/appium/node_modules/appium-base-driver/lib/protocol/errors.js:804:9)

 at asyncHandler (/usr/local/lib/node_modules/appium/node_modules/appium-base-driver/lib/protocol/protocol.js:381:37)

Build info: version: 'unknown', revision: 'unknown', time: 'unknown'

System info: host: '[hostname]', ip: '[ipaddress]', [os.name](http://os.name/): 'Mac OS X', os.arch: 'x86_64', os.version: '10.15.6', java.version: '1.8.0_181'

Driver info: driver.version: IOSDriver

at com.kms.katalon.composer.components.impl.dialogs.ProgressMonitorDialogWithThread.runAndWait(ProgressMonitorDialogWithThread.java:49)

at com.kms.katalon.composer.mobile.objectspy.components.MobileLocalAppComposite$12.run(MobileLocalAppComposite.java:474)

at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:119)

Caused by: org.openqa.selenium.SessionNotCreatedException: Unable to create a new remote session. Please check the server log for more details. Original error: An unknown server-side error occurred while processing the command. Original error: Simulator architecture is unsupported by the '/Users/[user]/Downloads/[path]/MyApp.app' application. Make sure the correct deployment target has been selected for its compilation in Xcode.

Build info: version: 'unknown', revision: 'unknown', time: 'unknown'

System info: host: '[hostname]', ip: '[ipaddress]', [os.name](http://os.name/): 'Mac OS X', os.arch: 'x86_64', os.version: '10.15.6', java.version: '1.8.0_181'

Driver info: driver.version: IOSDriver

remote stacktrace: UnknownError: An unknown server-side error occurred while processing the command. Original error: Simulator architecture is unsupported by the '/Users/[user]/Downloads/[path]/MyApp.app' application. Make sure the correct deployment target has been selected for its compilation in Xcode.

 at getResponseForW3CError (/usr/local/lib/node_modules/appium/node_modules/appium-base-driver/lib/protocol/errors.js:804:9)

 at asyncHandler (/usr/local/lib/node_modules/appium/node_modules/appium-base-driver/lib/protocol/protocol.js:381:37)

Build info: version: 'unknown', revision: 'unknown', time: 'unknown'

System info: host: '[hostname]', ip: '[ipaddress]', [os.name](http://os.name/): 'Mac OS X', os.arch: 'x86_64', os.version: '10.15.6', java.version: '1.8.0_181'

Driver info: driver.version: IOSDriver

at io.appium.java_client.remote.AppiumCommandExecutor$1.createSession(AppiumCommandExecutor.java:208)

at io.appium.java_client.remote.AppiumCommandExecutor.createSession(AppiumCommandExecutor.java:217)

at io.appium.java_client.remote.AppiumCommandExecutor.execute(AppiumCommandExecutor.java:239)

at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:552)

at io.appium.java_client.DefaultGenericMobileDriver.execute(DefaultGenericMobileDriver.java:42)

at io.appium.java_client.AppiumDriver.execute(AppiumDriver.java:1)

at io.appium.java_client.ios.IOSDriver.execute(IOSDriver.java:1)

at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:213)

at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:131)

at io.appium.java_client.DefaultGenericMobileDriver.<init>(DefaultGenericMobileDriver.java:38)

at io.appium.java_client.AppiumDriver.<init>(AppiumDriver.java:84)

at io.appium.java_client.ios.IOSDriver.<init>(IOSDriver.java:85)

at com.kms.katalon.core.appium.driver.AppiumDriverManager.createMobileDriver(AppiumDriverManager.java:496)

at com.kms.katalon.core.appium.driver.AppiumDriverManager.createMobileDriver(AppiumDriverManager.java:480)

at com.kms.katalon.core.mobile.keyword.internal.MobileDriverFactory.startLocalMobileDriver(MobileDriverFactory.java:527)

at com.kms.katalon.composer.mobile.objectspy.dialog.MobileInspectorController.startMobileApp(MobileInspectorController.java:194)

at com.kms.katalon.composer.mobile.objectspy.components.MobileLocalAppComposite$12$1.call(MobileLocalAppComposite.java:479)

at com.kms.katalon.composer.components.impl.dialogs.ProgressMonitorDialogWithThread.startThreadAndWait(ProgressMonitorDialogWithThread.java:36)

at com.kms.katalon.composer.components.impl.dialogs.ProgressMonitorDialogWithThread.runAndWait(ProgressMonitorDialogWithThread.java:48)

... 2 more

Caused by: java.lang.reflect.InvocationTargetException

at io.appium.java_client.remote.AppiumCommandExecutor$1.createSession(AppiumCommandExecutor.java:186)

... 20 more

Caused by: org.openqa.selenium.WebDriverException: An unknown server-side error occurred while processing the command. Original error: Simulator architecture is unsupported by the '/Users/[user]/Downloads/[path]/MyApp.app' application. Make sure the correct deployment target has been selected for its compilation in Xcode.

Build info: version: 'unknown', revision: 'unknown', time: 'unknown'

System info: host: '[hostname]', ip: '[ipaddress]', [os.name](http://os.name/): 'Mac OS X', os.arch: 'x86_64', os.version: '10.15.6', java.version: '1.8.0_181'

Driver info: driver.version: IOSDriver

remote stacktrace: UnknownError: An unknown server-side error occurred while processing the command. Original error: Simulator architecture is unsupported by the '/Users/[user]/Downloads/[path]/MyApp.app' application. Make sure the correct deployment target has been selected for its compilation in Xcode.

 at getResponseForW3CError (/usr/local/lib/node_modules/appium/node_modules/appium-base-driver/lib/protocol/errors.js:804:9)

 at asyncHandler (/usr/local/lib/node_modules/appium/node_modules/appium-base-driver/lib/protocol/protocol.js:381:37)

at org.openqa.selenium.remote.W3CHandshakeResponse.lambda$errorHandler$0(W3CHandshakeResponse.java:62)

at org.openqa.selenium.remote.HandshakeResponse.lambda$getResponseFunction$0(HandshakeResponse.java:30)

at org.openqa.selenium.remote.ProtocolHandshake.lambda$createSession$0(ProtocolHandshake.java:126)

at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:128)

... 21 more

@Chris_Trevarthen

Hi @nate321,

From the error message, it looks like the .app file wasn’t compiled with support for the architecture of your simulator. iOS apps that are compiled to run on a real device won’t work on a desktop/laptop because those chip architectures are different, and vice versa.

You can check which architecture(s) an .app is built for with this command:

lipo -info MyApp.app/MyApp

If you don’t see something with x86_* then the app won’t run on a desktop/laptop. Your best bet in that case is to open the code in Xcode and rebuild the project with the target as a simulator, not a real device.

Hope this helps,

Chris

@Chris_Trevarthen Thank you for your prompt response! I did your suggestion and I finally can run the simulator to start recording, but it seems that the recorder cannot capture all the objects correctly. So I basically cannot do any actions to record my scenario, because there are only a few captured objects like XCUIElementTypeWindow, XCUIElementTypeOther, but it didn’t capture the rest of the objects. Do you have any suggestions on what might be causing this?

Don’t know if this information would help, but I’m testing a react native app. Does Katalon fully support hybrid apps? Might this be causing my problem?

Thank you very much.

Hi @nate321,

It looks like Katalon partially supports hybrid apps. You can write tests for them, but the Recorder/Spy doesn’t detect elements. Here’s a post that will hopefully be helpful:

– Chris

@Chris_Trevarthen, thanks again for your help. Regarding that information, does it mean that we have to:

  1. Inspect elements using Appium
  2. Create those elements in Katalon’s object repository
  3. Write tests on Katalon
  4. Run tests on Katalon

in order to do testing for mobile hybrid apps?