Could not find a driver for automationName 'XCUITest' and platformName 'iOS'. Please check your desired capabilities - ios

I've searched a lot about this error. I've done a lot of tutorials and nothing works:
I've created a test iOS project and it seems that I have everything installed to start working with appium in iOS
bacelar#Brunos-MacBook-Pro-2 Test % appium-doctor --ios
info AppiumDoctor Appium Doctor v.1.15.1
info AppiumDoctor ### Diagnostic for necessary dependencies starting ###
info AppiumDoctor ✔ The Node.js binary was found at: /usr/local/bin/node
info AppiumDoctor ✔ Node version is 12.13.1
info AppiumDoctor ✔ Xcode is installed at: /Applications/Xcode.app/Contents/Developer
info AppiumDoctor ✔ Xcode Command Line Tools are installed in: /Applications/Xcode.app/Contents/Developer
info AppiumDoctor ✔ DevToolsSecurity is enabled.
info AppiumDoctor ✔ The Authorization DB is set up properly.
info AppiumDoctor ✔ Carthage was found at: /usr/local/bin/carthage. Installed version is: 0.34.0
info AppiumDoctor ✔ HOME is set to: /Users/bacelar
info AppiumDoctor ### Diagnostic for necessary dependencies completed, no fix needed. ###
But when I start inspector session on appium desktop I get the following error:
Encountered internal error running command: Error: Could not find a driver for automationName 'XCUITest' and platformName 'iOS'. Please check your desired capabilities.
Here is the appium log:
[HTTP] {"desiredCapabilities":{"app":"/Users/bacelar/Curatio/automatedTests/iOS/test_project/Test/build/Release-iphonesimulator/Test.app","automationName":"XCUITest","deviceName":"iphone 11","noReset":true,"platformName":"iOS","platformVersion":"13.4","newCommandTimeout":0,"connectHardwareKeyboard":true}}
[MJSONWP] Calling AppiumDriver.createSession() with args: [{"app":"/Users/bacelar/Curatio/automatedTests/iOS/test_project/Test/build/Release-iphonesimulator/Test.app","automationName":"XCUITest","deviceName":"iphone 11","noReset":true,"platformName":"iOS","platformVersion":"13.4","newCommandTimeout":0,"connectHardwareKeyboard":true},null,null]
[BaseDriver] Event 'newSessionRequested' logged at 1588813098829 (17:58:18 GMT-0700 (PDT))
[BaseDriver] Event 'newSessionStarted' logged at 1588813098836 (17:58:18 GMT-0700 (PDT))
[MJSONWP] Encountered internal error running command: Error: Could not find a driver for automationName 'XCUITest' and platformName 'iOS'. Please check your desired capabilities.
[MJSONWP] at AppiumDriver.getDriverAndVersionForCaps (/Applications/Appium.app/Contents/Resources/app/node_modules/appium/lib/appium.js:226:11)
[MJSONWP] at AppiumDriver.getDriverAndVersionForCaps [as createSession] (/Applications/Appium.app/Contents/Resources/app/node_modules/appium/lib/appium.js:300:66)
[MJSONWP] at AppiumDriver.executeCommand (/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-base-driver/lib/basedriver/driver.js:376:19)
[MJSONWP] at AppiumDriver.executeCommand (/Applications/Appium.app/Contents/Resources/app/node_modules/appium/lib/appium.js:482:26)
[MJSONWP] at executeCommand (/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-base-driver/lib/protocol/protocol.js:306:34)
[MJSONWP] at asyncHandler (/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-base-driver/lib/protocol/protocol.js:432:15)
[MJSONWP] at Layer.handle [as handle_request] (/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/express/lib/router/layer.js:95:5)
[MJSONWP] at next (/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/express/lib/router/route.js:137:13)
[MJSONWP] at Route.dispatch (/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/express/lib/router/route.js:112:3)
[MJSONWP] at Layer.handle [as handle_request] (/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/express/lib/router/layer.js:95:5)
[MJSONWP] at /Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/express/lib/router/index.js:281:22
[MJSONWP] at Function.process_params (/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/express/lib/router/index.js:335:12)
[MJSONWP] at next (/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/express/lib/router/index.js:275:10)
[MJSONWP] at logger (/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/morgan/index.js:144:5)
[MJSONWP] at Layer.handle [as handle_request] (/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/express/lib/router/layer.js:95:5)
[MJSONWP] at trim_prefix (/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/express/lib/router/index.js:317:13)
[MJSONWP] at /Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/express/lib/router/index.js:284:7
[MJSONWP] at Function.process_params (/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/express/lib/router/index.js:335:12)
[MJSONWP] at next (/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/express/lib/router/index.js:275:10)
[MJSONWP] at /Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/body-parser/lib/read.js:130:5
[MJSONWP] at invokeCallback (/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/raw-body/index.js:224:16)
[MJSONWP] at done (/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/raw-body/index.js:213:7)
[MJSONWP] at IncomingMessage.onEnd (/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/raw-body/index.js:273:7)
[MJSONWP] at IncomingMessage.emit (events.js:182:13)
[MJSONWP] at endReadableNT (_stream_readable.js:1090:12)
[MJSONWP] at process._tickCallback (internal/process/next_tick.js:63:19)
[HTTP] <-- POST /wd/hub/session 500 11 ms - 254
[HTTP]
[HTTP] --> DELETE /wd/hub/session
[HTTP] {}
[HTTP] No route found. Setting content type to 'text/plain'
[HTTP] <-- DELETE /wd/hub/session 404 1 ms - 57
[HTTP]
What should be done to fix it?

I think the values that you pass in your desired capabilities for deviceName, platformName, platformVersion should match to a simulator that is there in your Xcode so that appium can find and start it.
The below set of capabilities has worked for me in the past:
File demoAppPath = new File("Demo App");
File demoApp = new File(demoAppPath, "Demo.app");
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability(MobileCapabilityType.APP, demoApp.getAbsolutePath());
capabilities.setCapability(MobileCapabilityType.DEVICE_NAME, "iPhone 8");
capabilities.setCapability(MobileCapabilityType.PLATFORM_NAME, "IOS");
capabilities.setCapability(MobileCapabilityType.PLATFORM_VERSION, "13.2");
capabilities.setCapability(MobileCapabilityType.AUTOMATION_NAME, AutomationName.IOS_XCUI_TEST);
Note that i had a simulator in my Xcode with the name iPhone 8 and has the iOS version 13.2. Hope it helps !!

After long hours searching I found a way to solve it.
The desires capabilities needs to be:
"xcodeOrgId": "XXXXXXXXX",
"xcodeSigningId": "iPhone Developer",
"udid": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"platformName": "iOS",
"deviceName": "DEVICE NAME",
"bundleId": "BUNDLE ID",
"automationName": "XCUITest"
Executing the steps from this tutorial:
https://github.com/appium/appium-xcuitest-driver/blob/master/docs/real-device-config.md
I was getting errors and after executing this command on terminal
security unlock-keychain -p ****
Everything is working, I can inspect my app and run my automated tests.
Hope it helps if you are getting the same issue.

I faced this issue and looked at many solutions, but none that worked. Finally, I updated Appium desktop to v1.18.3 and Appium CLI to v1.19.1. It really works. So, it may be version bug.

Related

Can't start a session for Appium Inspector - Neither ANDROID_HOME nor ANDROID_SDK_ROOT environment variable was exported

I am using Appium V2.0 and for Appium Inspector client I am getting the following:
My ENV variables have been set up in Windows 10 accordingly:
Path for both system and user variables are:
C:\Users\slai6\AppData\Local\Android\Sdk\platform-tools
C:\Users\slai6\AppData\Local\Android\Sdk\emulator
C:\Users\slai6\AppData\Local\Android\Sdk\tools\bin
Server log :
C:\Users\slai6>appium server -p 9000 -a 127.0.0.1
[Appium] Welcome to Appium v2.0.0-beta.55
[Appium] Non-default server args:
[Appium] {
[Appium] address: '127.0.0.1',
[Appium] port: 9000
[Appium] }
[Appium] Attempting to load driver uiautomator2...
[debug] [Appium] Requiring driver at C:\Users\slai6\.appium\node_modules\appium-uiautomator2-driver
[Appium] Appium REST http interface listener started on 127.0.0.1:9000
[Appium] Available drivers:
[Appium] - uiautomator2#2.12.3 (automationName 'UiAutomator2')
[Appium] No plugins have been installed. Use the "appium plugin" command to install the one(s) you want to use.
[HTTP] --> POST /session
[HTTP] {"capabilities":{"alwaysMatch":{"appium:platformName":"Android","appium:automationName":"UIAutomator2","appium:deviceName":"PixelSix","appium:app":"C:\\Users\\slai6\\Downloads\\ReactNativePipeline20230207.1.apk","appium:platformVersion":"11","appium:newCommandTimeout":3600,"appium:connectHardwareKeyboard":true},"firstMatch":[{}]},"desiredCapabilities":{"appium:platformName":"Android","appium:automationName":"UIAutomator2","appium:deviceName":"PixelSix","appium:app":"C:\\Users\\slai6\\Downloads\\ReactNativePipeline20230207.1.apk","appium:platformVersion":"11","appium:newCommandTimeout":3600,"appium:connectHardwareKeyboard":true}}
[debug] [AppiumDriver#3ea3] Calling AppiumDriver.createSession() with args: [{"appium:platformName":"Android","appium:automationName":"UIAutomator2","appium:deviceName":"PixelSix","appium:app":"C:\\Users\\slai6\\Downloads\\ReactNativePipeline20230207.1.apk","appium:platformVersion":"11","appium:newCommandTimeout":3600,"appium:connectHardwareKeyboard":true},null,{"alwaysMatch":{"appium:platformName":"Android","appium:automationName":"UIAutomator2","appium:deviceName":"PixelSix","appium:app":"C:\\Users\\slai6\\Downloads\\ReactNativePipeline20230207.1.apk","appium:platformVersion":"11","appium:newCommandTimeout":3600,"appium:connectHardwareKeyboard":true},"firstMatch":[{}]}]
[debug] [AppiumDriver#3ea3] Event 'newSessionRequested' logged at 1676346925975 (14:55:25 GMT+1100 (Australian Eastern Daylight Time))
[BaseDriver] The capabilities ["platformName"] are standard capabilities and do not require "appium:" prefix
[Appium] Attempting to find matching driver for automationName 'UIAutomator2' and platformName 'Android'
[Appium] The 'uiautomator2' driver was installed and matched caps.
[Appium] Will require it at C:\Users\slai6\.appium\node_modules\appium-uiautomator2-driver
[debug] [Appium] Requiring driver at C:\Users\slai6\.appium\node_modules\appium-uiautomator2-driver
[AppiumDriver#3ea3] Appium v2.0.0-beta.55 creating new AndroidUiautomator2Driver (v2.12.3) session
[AppiumDriver#3ea3] Checking BaseDriver versions for Appium and AndroidUiautomator2Driver
[AppiumDriver#3ea3] Appium's BaseDriver version is 9.3.1
[AppiumDriver#3ea3] AndroidUiautomator2Driver's BaseDriver version is 9.3.1
[debug] [AndroidUiautomator2Driver#a95b] Creating session with W3C capabilities: {
[debug] [AndroidUiautomator2Driver#a95b] "alwaysMatch": {
[debug] [AndroidUiautomator2Driver#a95b] "platformName": "Android",
[debug] [AndroidUiautomator2Driver#a95b] "appium:automationName": "UIAutomator2",
[debug] [AndroidUiautomator2Driver#a95b] "appium:deviceName": "PixelSix",
[debug] [AndroidUiautomator2Driver#a95b] "appium:app": "C:\\Users\\slai6\\Downloads\\ReactNativePipeline20230207.1.apk",
[debug] [AndroidUiautomator2Driver#a95b] "appium:platformVersion": "11",
[debug] [AndroidUiautomator2Driver#a95b] "appium:newCommandTimeout": 3600,
[debug] [AndroidUiautomator2Driver#a95b] "appium:connectHardwareKeyboard": true
[debug] [AndroidUiautomator2Driver#a95b] },
[debug] [AndroidUiautomator2Driver#a95b] "firstMatch": [
[debug] [AndroidUiautomator2Driver#a95b] {}
[debug] [AndroidUiautomator2Driver#a95b] ]
[debug] [AndroidUiautomator2Driver#a95b] }
[AndroidUiautomator2Driver#a95b] The following capabilities were provided, but are not recognized by Appium:
[AndroidUiautomator2Driver#a95b] connectHardwareKeyboard
[AndroidUiautomator2Driver#a95b (b8865142)] Session created with session id: b8865142-7c11-4a95-bbb4-62e26355f955
[BaseDriver] Using local app 'C:\Users\slai6\Downloads\ReactNativePipeline20230207.1.apk'
[debug] [AndroidUiautomator2Driver#a95b (b8865142)] Checking whether app is actually present
[debug] [AndroidUiautomator2Driver#a95b (b8865142)] Deleting UiAutomator2 session
[debug] [AppiumDriver#3ea3] Event 'newSessionStarted' logged at 1676346926130 (14:55:26 GMT+1100 (Australian Eastern Daylight Time))
[debug] [AppiumDriver#3ea3] Encountered internal error running command: Error: Neither ANDROID_HOME nor ANDROID_SDK_ROOT environment variable was exported. Read https://developer.android.com/studio/command-line/variables for more details
[debug] [AppiumDriver#3ea3] at requireSdkRoot (C:\Users\slai6\.appium\node_modules\appium-uiautomator2-driver\node_modules\appium-adb\lib\helpers.js:81:11)
[debug] [AppiumDriver#3ea3] at Function.createADB (C:\Users\slai6\.appium\node_modules\appium-uiautomator2-driver\node_modules\appium-adb\lib\adb.js:80:37)
[debug] [AppiumDriver#3ea3] at Object.createBaseADB (C:\Users\slai6\.appium\node_modules\appium-uiautomator2-driver\node_modules\appium-android-driver\lib\android-helpers.js:129:20)
[debug] [AppiumDriver#3ea3] at Object.getDeviceInfoFromCaps (C:\Users\slai6\.appium\node_modules\appium-uiautomator2-driver\node_modules\appium-android-driver\lib\android-helpers.js:220:29)
[debug] [AppiumDriver#3ea3] at AndroidUiautomator2Driver.startUiAutomator2Session (C:\Users\slai6\.appium\node_modules\appium-uiautomator2-driver\lib\driver.js:350:40)
[debug] [AppiumDriver#3ea3] at AndroidUiautomator2Driver.createSession (C:\Users\slai6\.appium\node_modules\appium-uiautomator2-driver\lib\driver.js:241:18)
[debug] [AppiumDriver#3ea3] at AppiumDriver.createSession (C:\Users\slai6\AppData\Roaming\npm\node_modules\appium\lib\appium.js:337:35)
[HTTP] <-- POST /session 500 246 ms - 882
I've also used Appium doctor to troublkeshoot the set up issues and this is what it said:
info AppiumDoctor Appium Doctor v.2.0.7
info AppiumDoctor ### Diagnostic for necessary dependencies starting ###
info AppiumDoctor ✔ APPIUM_HOME is C:\Users\slai6\.appium
info AppiumDoctor ✔ The Node.js binary was found at: C:\Program Files\nodejs\node.EXE
info AppiumDoctor ✔ Node version is 19.6.0
WARN AppiumDoctor ✖ ANDROID_HOME environment variable is NOT set!
info AppiumDoctor ✔ JAVA_HOME is set to: C:\Program Files\Java\jdk-19
WARN AppiumDoctor ✖ adb, emulator, apkanalyzer.bat could not be found because ANDROID_HOME or ANDROID_SDK_ROOT is NOT set!
info AppiumDoctor ✔ 'bin' subfolder exists under 'C:\Program Files\Java\jdk-19'
info AppiumDoctor ### Diagnostic for necessary dependencies completed, 2 fixes needed. ###
info AppiumDoctor
info AppiumDoctor ### Diagnostic for optional dependencies starting ###
WARN AppiumDoctor ✖ ffmpeg cannot be found
WARN AppiumDoctor ✖ mjpeg-consumer cannot be found.
WARN AppiumDoctor ✖ bundletool.jar cannot be found
WARN AppiumDoctor ✖ gst-launch-1.0.exe and/or gst-inspect-1.0.exe cannot be found
info AppiumDoctor ### Diagnostic for optional dependencies completed, 4 fixes possible. ###
info AppiumDoctor
info AppiumDoctor ### Manual Fixes Needed ###
info AppiumDoctor The configuration cannot be automatically fixed, please do the following first:
WARN AppiumDoctor ➜ Make sure the environment variable ANDROID_HOME is properly configured for the Appium process. Refer https://github.com/appium/java-client/blob/master/docs/environment.md for more details.
WARN AppiumDoctor ➜ Manually configure ANDROID_HOME and run appium-doctor again.
info AppiumDoctor
info AppiumDoctor ### Optional Manual Fixes ###
info AppiumDoctor The configuration can install optionally. Please do the following manually:
WARN AppiumDoctor ➜ ffmpeg is needed to record screen features. Please read https://www.ffmpeg.org/ to install it
WARN AppiumDoctor ➜ mjpeg-consumer module is required to use MJPEG-over-HTTP features. Please install it with 'npm i -g mjpeg-consumer'.
WARN AppiumDoctor ➜ bundletool.jar is used to handle Android App Bundle. Please read http://appium.io/docs/en/writing-running-appium/android/android-appbundle/ to install it. Also consider adding the ".jar" extension into your PATHEXT environment variable in order to fix the problem for Windows
WARN AppiumDoctor ➜ gst-launch-1.0.exe and gst-inspect-1.0.exe are used to stream the screen of the device under test. Please read https://appium.io/docs/en/writing-running-appium/android/android-screen-streaming/ to install them and for more details
info AppiumDoctor
info AppiumDoctor ###
info AppiumDoctor
info AppiumDoctor Bye! Run appium-doctor again when all manual fixes have been applied!
I don't know why is says that I haven't set the env variables when I have already done this in Windows.
For some reason after a few server restarts and command prompt close and re-opens I ran the Appium doctor and it said that it could find ANDROID_HOME
I did add C:\Users\slai6\AppData\Local\Android\Sdk\tools to my Path though.
Honestly, I am not sure what fixed it but it is working now !

How to inspect windows application using Appium

Is it possible to inspect a Windows application using Appium?
If yes can someone show me what "Desired Capability" shall be set to launch for example notepad?
What I have done is:
Installed/Started Appium
Launched server on 0.0.0.0:4723
Clicked on start inspector
Provided following capabilities:
{
"platformName": "Windows",
"deviceName": "WindowsPC",
"app": "C:\Windows\System32\notepad.exe"
}
What i got back is the following log:
[HTTP] --> POST /wd/hub/session
[HTTP] {"desiredCapabilities":{"app":"C:\\Windows\\System32\\notepad.exe","deviceName":"WindowsPC","platformName":"Windows","newCommandTimeout":0,"connectHardwareKeyboard":true}}
[MJSONWP] Calling AppiumDriver.createSession() with args: [{"app":"C:\\Windows\\System32\\notepad.exe","deviceName":"WindowsPC","platformName":"Windows","newCommandTimeout":0,"connectHardwareKeyboard":true},null,null]
[BaseDriver] Event 'newSessionRequested' logged at 1562752317506 (11:51:57 GMT+0200 (W. Europe Daylight Time))
[Appium] Appium v1.14.0 creating new WindowsDriver (v1.5.1) session
[Appium] Capabilities:
[Appium] app: C:\Windows\System32\notepad.exe
[Appium] deviceName: WindowsPC
[Appium] platformName: Windows
[Appium] newCommandTimeout: 0
[Appium] connectHardwareKeyboard: true
[BaseDriver] Creating session with MJSONWP desired capabilities: {"app":"C:\\Windows\\System...
[BaseDriver] The following capabilities were provided, but are not recognized by Appium:
[BaseDriver] app
[BaseDriver] connectHardwareKeyboard
[BaseDriver] Session created with session id: b4f9003f-6a56-47b8-b9f3-bf70ac3dc91d
[WinAppDriver] You must use WinAppDriver version 1.1
[WinAppDriver] Verifying WinAppDriver version 1.1 is installed via comparing the checksum.
[WinAppDriver] Deleting WinAppDriver session
[BaseDriver] Event 'newSessionStarted' logged at 1562752317614 (11:51:57 GMT+0200 (W. Europe Daylight Time))
[MJSONWP] Encountered internal error running command: Error: Could not verify WinAppDriver install; re-run install
[MJSONWP] at C:\Users\myUser\AppData\Local\Programs\Appium\resources\app\node_modules\appium\node_modules\appium-windows-driver\lib\winappdriver.js:35:13
[MJSONWP] at Generator.next ()
[MJSONWP] at asyncGeneratorStep (C:\Users\myUser\AppData\Local\Programs\Appium\resources\app\node_modules\appium\node_modules\#babel\runtime\helpers\asyncToGenerator.js:3:24)
[MJSONWP] at _next (C:\Users\myUser\AppData\Local\Programs\Appium\resources\app\node_modules\appium\node_modules\#babel\runtime\helpers\asyncToGenerator.js:25:9)
[MJSONWP] at run (C:\Users\myUser\AppData\Local\Programs\Appium\resources\app\node_modules\appium\node_modules\core-js\modules\es6.promise.js:75:22)
[MJSONWP] at C:\Users\myUser\AppData\Local\Programs\Appium\resources\app\node_modules\appium\node_modules\core-js\modules\es6.promise.js:92:30
[MJSONWP] at flush (C:\Users\myUser\AppData\Local\Programs\Appium\resources\app\node_modules\appium\node_modules\core-js\modules\_microtask.js:18:9)
[MJSONWP] at process._tickCallback (internal/process/next_tick.js:61:11)
[HTTP] <-- POST /wd/hub/session 500 113 ms - 190
[HTTP]
[HTTP] --> DELETE /wd/hub/session
[HTTP] {}
[HTTP] No route found. Setting content type to 'text/plain'
[HTTP] <-- DELETE /wd/hub/session 404 1 ms - 57
Uninstalling and reinstalling did not help.
Am i doing anything wrong? Shall windows driver be started manually?
you can run the selenium server from the windows command prompt like
C:\Users\Administrator> “C:\Program Files (x86)\Windows Application Driver\WinAppDriver.exe” 4723/wd/hub
after the server is running. Use breakpoints in your visual studio and then start debugging. When you start debugging, you will see sessionID in your command window. copy that session ID
open appium > File > new session window > custom server > attach to session > paste the session Id > click "attach to session" >
you will get your result. (appium takes some time to grab the current session).

Appium path issue

I'm trying to run an apk file from my test suite in appium, the emulator runs successfully but at the time of launch of the apk it says apk not found. The path looks correct to me still unable to figure out the solution.
Below is the error from Appium.
AndroidDriver] Using device: emulator-5554
[ADB] Checking whether adb is present
[ADB] Using adb from /Library/Android/sdk/platform-tools/adb
[debug] [ADB] Setting device id to emulator-5554
[BaseDriver] Using local app '/src/test/resources/myapp.apk'
[debug] [AndroidDriver] Checking whether app is actually present
[debug] [AndroidDriver] Shutting down Android driver
[AndroidDriver] Cannot shut down Android driver; it has already shut down
[HTTP] <-- POST /wd/hub/session 500 25028 ms - 212
[AndroidDriver] Error: Could not find app apk at /src/test/resources/myapp.apk
at Object.wrappedLogger.errorAndThrow (lib/logger.js:60:13)
at AndroidDriver.checkAppPresent$ (lib/driver.js:274:11)
at tryCatch (/Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:67:40)
at GeneratorFunctionPrototype.invoke [as _invoke] (/Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:315:22)
at GeneratorFunctionPrototype.prototype.(anonymous function) [as next] (/Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:100:21)
at GeneratorFunctionPrototype.invoke (/Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:136:37)
at run (/Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.promise.js:104:47)
at /Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.promise.js:115:28
at flush (/Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/babel-runtime/node_modules/core-js/library/modules/$.microtask.js:19:5)
at _combinedTickCallback (internal/process/next_tick.js:67:7)
at process._tickCallback (internal/process/next_tick.js:98:9)
[Error: Could not find app apk at /src/test/resources/myapp.apk]
I tried following path apart from the one listed above:
1. ./src/test
2. Start from the module name which is part of /src/test i.e. modulename/src/test
3. Tried ~./src/test
4. Tried ~/src/test
Any pointers as to what is it that I'm missing?
Also, why am I getting this ([debug] [AndroidDriver] Shutting down Android driver) before the apk launch?
Code:
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability(MobileCapabilityType.FULL_RESET,"true");
capabilities.setCapability(MobileCapabilityType.DEVICE_NAME,"Nexus10");
capabilities.setCapability(MobileCapabilityType.PLATFORM_VERSION,"4.4");
capabilities.setCapability(MobileCapabilityType.PLATFORM_NAME,"Android");
capabilities.setCapability(MobileCapabilityType.APP,"myapp.package");
capabilities.setCapability(MobileCapabilityType.NEW_COMMAND_TIMEOUT, "20");
capabilities.setCapability("app", "/src/test/resources/myapp.apk");
AndroidDriver = new AndroidDriver(new URL("http://127.0.0.1:4724/wd/hub"), capabilities);
AndroidDriver.rotate(ScreenOrientation.PORTRAIT);
log.info("Set up done for capabilities");
Thanks in advance.
If the 'src' folder is in the same location as you're running from, you want to remove the preceding '/' as that's telling Appium to look starting at the root of the entire file system rather than from your local path.
src/test/resources/myapp.apk
My experience is that using '~' does not work with Appium. I personally have parameterized the app location and pull it from an environment variable to account for it being in different places on different systems, but in all cases I provide the path from the file system root as it's simplest.

xcodebuild failure: "xcodebuild failed with code 65 is displaying when tried to start session with Appium Desktop

When i tried to start session with appium desktop i am getting following error:
An unknown server-side error occurred while processing the command. Original error: Unable to launch WebDriverAgent because of xcodebuild failure: "xcodebuild failed with code 65". Make sure you follow the tutorial at https://github.com/appium/appium-xcuitest-driver/blob/master/docs/real-device-config.md. Try to remove the WebDriverAgentRunner application from the device if it is installed and reboot the device.
Desired Capabilities Used in Appium Desktop:
{
"platformName": "iOS",
"deviceName": "iPhone 7",
"udid": "93551a7d721b790b0188642402f1ada96892b816",
"app": "/Users/globalit/Desktop/IntegrationApp.app",
"automationName": "XCUITest",
"noReset": true
}
Configuration:
IOS 11, OSX 10.12, Xcode 8.1, Appium Desktop 1.2.5
Error logs:
[Xcode] 2017-10-27 15:27:28.943 xcodebuild[871:24036] Error Domain=com.apple.platform.iphoneos Code=-12 "Unable to launch com.apple.test.WebDriverAgentRunner-Runner" UserInfo={NSLocalizedDescription=Unable to launch com.apple.test.WebDriverAgentRunner-Runner, NSUnderlyingError=0x7fd602a29400 {Error Domain=DTXMessage Code=1 "(null)" UserInfo={DTXExceptionKey=The operation couldn’t be completed. Unable to launch com.apple.test.WebDriverAgentRunner-Runner because it has an invalid code signature, inadequate entitlements or its profile has not been explicitly trusted by the user. : Failed to launch process with bundle identifier 'com.apple.test.WebDriverAgentRunner-Runner'}}}
[Xcode] 2017-10-27 15:27:28.943 xcodebuild[871:24036] Error Domain=IDETestOperationsObserverErrorDomain Code=5 "Early unexpected exit, operation never finished bootstrapping - no restart will be attempted" UserInfo={NSLocalizedDescription=Early unexpected exit, operation never finished bootstrapping - no restart will be attempted}
[Xcode] ** TEST EXECUTE FAILED **
[Xcode]
[Xcode]
[XCUITest] xcodebuild exited with code '65' and signal 'null'
[BaseDriver] Event 'wdaStartFailed' logged at 1509098248985 (15:27:28 GMT+0530 (IST))
[XCUITest] Unable to launch WebDriverAgent because of xcodebuild failure: "xcodebuild failed with code 65". Make sure you follow the tutorial at https://github.com/appium/appium-xcuitest-driver/blob/master/docs/real-device-config.md. Try to remove the WebDriverAgentRunner application from the device if it is installed and reboot the device.
[XCUITest] Quitting and uninstalling WebDriverAgent, then retrying
[XCUITest] Shutting down sub-processes
[XCUITest] Shutting down iproxy process (pid 870)
[XCUITest] iproxy exited with code 'null'
[XCUITest] Removing WDA application from device
[XCUITest] Error: Unable to launch WebDriverAgent because of xcodebuild failure: "xcodebuild failed with code 65". Make sure you follow the tutorial at https://github.com/appium/appium-xcuitest-driver/blob/master/docs/real-device-config.md. Try to remove the WebDriverAgentRunner application from the device if it is installed and reboot the device.
at XCUITestDriver.quitAndUninstall$ (/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-xcuitest-driver/lib/driver.js:381:13)
at tryCatch (/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:67:40)
at GeneratorFunctionPrototype.invoke [as _invoke] (/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:315:22)
at GeneratorFunctionPrototype.prototype.(anonymous function) [as next] (/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:100:21)
at GeneratorFunctionPrototype.invoke (/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:136:37)
Error: Unable to launch WebDriverAgent because of xcodebuild failure: "xcodebuild failed with code 65". Make sure you follow the tutorial at https://github.com/appium/appium-xcuitest-driver/blob/master/docs/real-device-config.md. Try to remove the WebDriverAgentRunner application from the device if it is installed and reboot the device.
at XCUITestDriver.quitAndUninstall$ (/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-xcuitest-driver/lib/driver.js:381:13)
at tryCatch (/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:67:40)
at GeneratorFunctionPrototype.invoke [as _invoke] (/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:315:22)
at GeneratorFunctionPrototype.prototype.(anonymous function) [as next] (/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:100:21)
at GeneratorFunctionPrototype.invoke (/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:136:37)
[XCUITest] Not clearing log files. Use `clearSystemFiles` capability to turn on.
[iOSLog] Stopping iOS log capture
[MJSONWP] Encountered internal error running command: Error: Unable to launch WebDriverAgent because of xcodebuild failure: "xcodebuild failed with code 65". Make sure you follow the tutorial at https://github.com/appium/appium-xcuitest-driver/blob/master/docs/real-device-config.md. Try to remove the WebDriverAgentRunner application from the device if it is installed and reboot the device.
at XCUITestDriver.quitAndUninstall$ (/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-xcuitest-driver/lib/driver.js:381:13)
at tryCatch (/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:67:40)
at GeneratorFunctionPrototype.invoke [as _invoke] (/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:315:22)
at GeneratorFunctionPrototype.prototype.(anonymous function) [as next] (/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:100:21)
at GeneratorFunctionPrototype.invoke (/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:136:37)
[HTTP] <-- POST /wd/hub/session 500 29571 ms - 470
[HTTP] --> DELETE /wd/hub/session {}
[HTTP] No route found. Setting content type to 'text/plain'
[HTTP] <-- DELETE /wd/hub/session 404 13 ms - 57
Please run the Xcode project which is located here on your device once: /Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-xcuitest-driver/WebDriverAgent/WebDriverAgent.xcodeproj
And let me know if you face any problems.
WebdriverAgent is not built and tested in your mobile device. I faced the same issue and resolved it by getting the Webdriver agent to open in my mobile device.
I had same issue with Appium-desktop after upgrading to Xcode 12.4 and trying to run on ios 14.4, it worked for me after adding the following capabilities:
{
"xcodeOrgId": "OrgID",
"xcodeSigningId": "SignId",
}
i'm using appium-desktop 1.18.3
The configs from Ashraf answer worked for me. I was facing this issue for more than 24 hours. I have similar configs, iPad with iOS 14.4 and Appium desktop 1.20.2 version, and XCode in 12.4 version.
You can use this command on the terminal:
cd /Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-webdriveragent
xcodebuild -allowProvisioningUpdates -project WebDriverAgent.xcodeproj -scheme WebDriverAgentRunner -destination 'id=Your Device UDID' test
I updated my appium server and my old tests which were giving me this error started working.

Error: The desired capabilities must include either an app or a bundleId for iOS

I am using mac OS X 10.12, Appium server 1.5.3 , xcode version 8.3. If I run the doctor then it shows the appium is installed correctly.
info AppiumDoctor ### Diagnostic starting ###
info AppiumDoctor ✔ Xcode is installed at: /Applications/Xcode.app/Contents/Developer
info AppiumDoctor ✔ Xcode Command Line Tools are installed.
info AppiumDoctor ✔ DevToolsSecurity is enabled.
info AppiumDoctor ✔ The Authorization DB is set up properly.
info AppiumDoctor ✔ The Node.js binary was found at: /usr/local/bin/node
info AppiumDoctor ✔ HOME is set to: /Users/nishamendon
info AppiumDoctor ✔ ANDROID_HOME is set to: /Users/nishamendon/Library/Android/sdk
info AppiumDoctor ✔ JAVA_HOME is set to: /Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home
info AppiumDoctor ✔ adb exists at: /Users/nishamendon/Library/Android/sdk/platform-tools/adb
info AppiumDoctor ✔ android exists at: /Users/nishamendon/Library/Android/sdk/tools/android
info AppiumDoctor ✔ emulator exists at: /Users/nishamendon/Library/Android/sdk/tools/emulator
info AppiumDoctor ### Diagnostic completed, no fix needed. ###
info AppiumDoctor
info AppiumDoctor Everything looks good, bye!
info AppiumDoctor
But, if I start the appium server, and I try to launch the inspector I am getting an error unable to start Inspector with the below log.
[iOS] Error: The desired capabilities must include either an app or a bundleId for iOS
at Object.wrappedLogger.errorAndThrow (lib/logger.js:60:13)
at IosDriver.validateDesiredCaps (lib/driver.js:409:14)
at IosDriver.callee$0$0$ (lib/basedriver/commands/session.js:14:8)
at tryCatch (/Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:67:40)
at GeneratorFunctionPrototype.invoke [as _invoke] (/Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:315:22)
at GeneratorFunctionPrototype.prototype.(anonymous function) [as next] (/Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:100:21)
at invoke (/Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:136:37)
at enqueueResult (/Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:185:17)
at Promise.F (/Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/babel-runtime/node_modules/core-js/library/modules/$.export.js:30:36)
at AsyncIterator.enqueue (/Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:184:12)
at AsyncIterator.prototype.(anonymous function) [as next] (/Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:100:21)
at Object.runtime.async (/Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:209:12)
at IosDriver.callee$0$0 [as createSession] (lib/basedriver/commands/session.js:8:46)
at IosDriver.createSession$ (lib/driver.js:40:16)
at tryCatch (/Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:67:40)
at GeneratorFunctionPrototype.invoke [as _invoke] (/Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:315:22)
at GeneratorFunctionPrototype.prototype.(anonymous function) [as next] (/Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:100:21)
at invoke (/Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:136:37)
at enqueueResult (/Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:185:17)
at Promise.F (/Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/babel-runtime/node_modules/core-js/library/modules/$.export.js:30:36)
at AsyncIterator.enqueue (/Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:184:12)
at AsyncIterator.prototype.(anonymous function) [as next] (/Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:100:21)
at Object.runtime.async (/Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:209:12)
at IosDriver.createSession (lib/driver.js:110:19)
at AppiumDriver.createSession$ (lib/appium.js:121:43)
at tryCatch (/Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:67:40)
at GeneratorFunctionPrototype.invoke [as _invoke] (/Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:315:22)
at GeneratorFunctionPrototype.prototype.(anonymous function) [as next] (/Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:100:21)
at invoke (/Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:136:37)
at enqueueR
esult (/Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:185:17)
at Promise.F (/Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/babel-runtime/node_modules/core-js/library/modules/$.export.js:30:36)
at AsyncIterator.enqueue (/Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:184:12)
at AsyncIterator.prototype.(anonymous function) [as next] (/Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:100:21)
at Object.runtime.async (/Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:209:12)
The regenerator error occurs because xCode 8 works only with appium 1.6 +.
You can refer: https://github.com/appium/appium/issues/6845
Add the desired capabilities for the app path as (for eg.)
DesiredCapabilities.setCapability("app", "/Users/Library/Developer/Xcode/DerivedData/foldername/Build/Products/Debug-iphoneos/appname.app");
Also, you can open appium inspector of 1.5.3 just by opening appium GUI, keeping iOS icon selected and tapping inspector icon (don't tap 'Launch' in GUI) after starting appium (1.6+) server in terminal.
Refer: https://discuss.appium.io/t/how-to-launch-appium-inspector-on-appium-1-6-0-beta2-as-there-is-no-appium-app-file-for-that-beta/12448/16
You need to add the capabilitiy "app" or "bundleId".Because in your case it is not able to know which app it should launch.
capabilities.setCapability("app","path of your .app file");
Appium 1.5.3 is not compatible with xcode 8+. If you are already installed appium through terminal then launch the appium through terminal by running the command.
appium
This command will start the appium server.Don not use appium 1.5.3.
Refer the below link to know how to launch and run the appium from terminal after installing appium 1.6+
Launch and run appium in Mac

Resources