Appium will not launch from Eclipse on real iOS device

0

I am having problems running from an eclipse project on Appium in iOS. iOS has been a huge headache and has been giving me problems since I started setting up on a new Mac. For weeks, I couldn't even get it to work in the inspector. Before I had just needed to use my apple developer certificate, but now that didn't seem to be enough.

I was finally able to get it to get appium inspector to connect with iOS by going to product > test in Xcode to manually install WebDriverAgentRunner on the phone. But it fails when I try to run from my eclipse project. I know this isn't an issue with my project because it works fine when my coworker runs it from their computer.

This is the output I get from eclipse:

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: The desired capabilities must include either an app or a bundleId for iOS
Build info: version: '3.141.59', revision: 'e82be7d358', time: '2018-11-14T08:17:03'
System info: host: 'Powerleys-MacBook-Pro.local', ip: 'fe80:0:0:0:d9:262b:6818:287e%en0', os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '10.13.6', java.version: '12.0.1'
Driver info: driver.version: AppiumDriver
remote stacktrace: UnknownError: An unknown server-side error occurred while processing the command. Original error: The desired capabilities must include either an app or a bundleId for iOS
    at getResponseForW3CError (/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-base-driver/lib/protocol/errors.js:826:9)
    at asyncHandler (/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-base-driver/lib/protocol/protocol.js:447:37)
    at process._tickCallback (internal/process/next_tick.js:68:7)
Build info: version: '3.141.59', revision: 'e82be7d358', time: '2018-11-14T08:17:03'
System info: host: 'Powerleys-MacBook-Pro.local', ip: 'fe80:0:0:0:d9:262b:6818:287e%en0', os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '10.13.6', java.version: '12.0.1'
Driver info: driver.version: AppiumDriver

Here are my capabilities, with the values of a few removed:

  "deviceName": "iPhone",
"udid": <removed>
  "platformName": "iOS",
  "platformVersion": "11.2.6",
  "noReset": true,
  "bundleId": <removed>
  "automationName": "XCUITest",
  "showXcodeLog": true,
  "xcodeOrgId": <removed>
  "xcodeSigningId": "iPhone Developer",
  "appActivity": <removed>

Here are my version numbers. It could be that there is a version incompatibility, but I don't know how to check for that.

Appium 1.14.1
Xcode Version 10.1 (10B61)
Mac High Sierra 10.13.6

SilverF0x

Posted 2019-08-28T20:15:03.860

Reputation: 13

Answers

0

The log contains the root cause of the issue:

The desired capabilities must include either an app or a bundleId for iOS
  1. If the application is not installed on the real iOS device - you need to set app mobile capability pointing to the absolute location of the .ipa file containing your application either on local drive or in the web
  2. If the application is installed on the real iOS device - you need to set bundleId capability with the value of your application bundle ID

In addition you need to configure code signing for the WebDriverAgentRunner application (part of Appium bundle), check out Appium XCUITest Driver Real Device Setup article for more details. If you're not too familiar with the process and don't have an Apple developer account it might be easier to use Appium Studio which provides easy GUI wizard allowing configuration of code signing for Appium.

Dmitri T

Posted 2019-08-28T20:15:03.860

Reputation: 411

I have the app installed on a real device and I have my bundle id, as mentioned under capabilities in my original post. I've been through that guide more times that I can remember, despite having an apple developer account certificate, because that way wasn't working. But yes, its strange that its giving me that error. I provided the same exact capabilities in eclipse as I did in appium inspector, but only the latter worked. – SilverF0x – 2019-08-29T13:17:00.617

Oh, you were right. It looks like my code was going down a very similar path to the correct one but that missed the bundle id. – SilverF0x – 2019-08-29T13:27:27.690