When we run the server via appium GUI all is fine however when we try to run it via code it fails
with the “Could not initialize ideviceinstaller” error (see log below). Below is the code we use:
AppiumDriverLocalService service = AppiumDriverLocalService. buildDefaultService ();
service.start();
driver = new IOSDriver(new URL(“http://0.0.0.0:4723/wd/hub”), capabilities);
Any idea what is the root cause & solution for it? =======================
[Appium] Welcome to Appium v1.5.1 (REV ee51200036dac07568da29b8aa88c0335ea6a514)
[Appium] Appium REST http interface listener started on 0.0.0.0:4723
[HTTP] --> GET /wd/hub/status {}
[MJSONWP] Calling AppiumDriver.getStatus() with args: []
[MJSONWP] Responding to client with driver.getStatus() result: {“build”:{“version”:“1.5.1”,“revision”:“ee51200036dac07568da29b8aa88c0335ea6a514”}}
[HTTP] <-- GET /wd/hub/status 200 19 ms - 121
[HTTP] --> POST /wd/hub/session {“desiredCapabilities”:{“app”:"/Users/sgmacbookpro/Appium/iOS/SkyGiraffe.app",“noReset”:“true”,“newCommandTimeout”:12000,“automationName”:“Appium”,“udid”:“51d8c712258a5b0ac63516aa5be9d10014b0c270”,“platformName”:“iOS”,“deviceName”:“SG iPhone 5s”,“autoAcceptAlerts”:“True”}}
[MJSONWP] Calling AppiumDriver.createSession() with args: [{“app”:"/Users/sgmacbookpro/Appium/iOS/SkyGiraffe.app",“noReset”:“true”,“newCommandTimeout”:12000,“automationName”:“Appium”,“udid”:“51d8c712258a5b…
[Appium] Creating new IosDriver session
[Appium] Capabilities:
[Appium] app: ‘/Users/sgmacbookpro/Appium/iOS/SkyGiraffe.app’
[Appium] noReset: ‘true’
[Appium] newCommandTimeout: 12000
[Appium] automationName: ‘Appium’
[Appium] udid: ‘51d8c712258a5b0ac63516aa5be9d10014b0c270’
[Appium] platformName: ‘iOS’
[Appium] deviceName: ‘SG iPhone 5s’
[Appium] autoAcceptAlerts: ‘True’
[BaseDriver] Capability ‘noReset’ changed from string to boolean. This may cause unexpected behavior
[BaseDriver] Capability ‘autoAcceptAlerts’ changed from string to boolean. This may cause unexpected behavior
[BaseDriver] Session created with session id: 54b426a1-0c1e-400f-9125-12163bb96d6d
[debug] [iOS] Not auto-detecting udid.
[BaseDriver] Using local app ‘/Users/sgmacbookpro/Appium/iOS/SkyGiraffe.app’
[debug] [iOS] Removing any remaining instruments sockets
[debug] [iOS] Cleaned up instruments socket /var/folders/wz/bmlkwsw57jbbmyk7dgyxhwd80000gn/T/instruments_sock
[debug] [iOS] No language specified. Using default strings
[debug] [iOS] Strings file not found. Looking in ‘en.lproj’ directory
[iOS] Could not file localizable strings file ‘Localizable.strings’!
[debug] [ios-app-utils] Getting bundle ID from app
[iOS] Extracted bundleID: beta.SkyGiraffe.SkyGiraffe from app: /Users/sgmacbookpro/Appium/iOS/SkyGiraffe.app
[debug] [iOS] Creating instruments
[debug] [UIAuto] Preparing bootstrap code
[debug] [UIAuto] Dynamic bootstrap dir: /Users/sgmacbookpro/Library/Application Support/appium/bootstrap
[debug] [UIAuto] Dynamic env: {“nodePath”:”/usr/local/Cellar/node/0.12.4/bin/node",“commandProxyClientPath”:"/usr/local/lib/node_modules/appium/node_modules/appium-ios-driver/node_modules/appium-uiauto/build/lib/bin/command-proxy-client.js",“instrumentsSock”:"/var/folders/wz/bmlkwsw57jbbmyk7dgyxhwd80000gn/T/instruments_sock",“interKeyDelay”:null,“justLoopInfinitely”:false,“autoAcceptAlerts”:true,“autoDismissAlerts”:false,“sendKeyStrategy”:“grouped”}
[debug] [UIAuto] Dynamic bootstrap code: // This file is automatically generated. Do not manually modify!
…
[debug] [UIAuto] Dynamic bootstrap path: /Users/sgmacbookpro/Library/Application Support/appium/bootstrap/bootstrap-4a14a46e94948c95.js
[debug] [UIAuto] Reusing dynamic bootstrap: /Users/sgmacbookpro/Library/Application Support/appium/bootstrap/bootstrap-4a14a46e94948c95.js
[debug] [iOS] Reset not set, not ending real device
[debug] [iOSLog] Attempting iOS device log capture via libimobiledevice idevicesyslog
[iOSLog] Could not capture device log using libimobiledevice idevicesyslog. Libimobiledevice is probably not installed
[debug] [iOSLog] Attempting iOS device log capture via deviceconsole
[iOS] Could not capture logs from device. Continuing without capturing logs.
[debug] [iOS] Creating iDevice object with udid 51d8c712258a5b0ac63516aa5be9d10014b0c270
[debug] [iOS] Couldn’t find ideviceinstaller, trying built-in at /usr/local/lib/node_modules/appium/node_modules/build/libimobiledevice-macosx/ideviceinstaller
[iOS] Could not initialize ideviceinstaller; make sure it is installed and works on your system
[MJSONWP] Encountered internal error running command: Error: Could not initialize ideviceinstaller; make sure it is installed and works on your system
at IosDriver.getIDeviceObj (lib/driver.js:372:15)
at IosDriver.installToRealDevice$ (lib/driver.js:320:28)
at tryCatch (/usr/local/lib/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:67:40)
at GeneratorFunctionPrototype.invoke [as _invoke] (/usr/local/lib/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:315:22)
at GeneratorFunctionPrototype.prototype.(anonymous function) [as next] (/usr/local/lib/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:100:21)
at invoke (/usr/local/lib/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:136:37)
at enqueueResult (/usr/local/lib/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:185:17)
at new Promise (/usr/local/lib/node_modules/appium/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.promise.js:197:7)
at AsyncIterator.enqueue (/usr/local/lib/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:184:16)
at AsyncIterator.prototype.(anonymous function) [as next] (/usr/local/lib/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:100:21)
at Object.runtime.async (/usr/local/lib/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:209:12)
at IosDriver.installToRealDevice (lib/driver.js:344:16)
at IosDriver.startRealDevice$ (lib/driver.js:308:16)
at tryCatch (/usr/local/lib/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:67:40)
at GeneratorFunctionPrototype.invoke [as _invoke] (/usr/local/lib/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:315:22)
at GeneratorFunctionPrototype.prototype.(anonymous function) [as next] (/usr/local/lib/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:100:21)
at GeneratorFunctionPrototype.invoke (/usr/local/lib/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:136:37)
at run (/usr/local/lib/node_modules/appium/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.promise.js:104:47)
at /usr/local/lib/node_modules/appium/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.promise.js:115:28
at flush (/usr/local/lib/node_modules/appium/node_modules/babel-runtime/node_modules/core-js/library/modules/$.microtask.js:19:5)
at process._tickCallback (node.js:355:11)
[HTTP] <-- POST /wd/hub/session 500 221 ms - 226
@menypeled
I used java so I just wrote it down as an example.
In your case, it will be the file that contains the code to start Appium Server as you mentioned “however when we try to run it via code it fails”
Running via code: Facing issue
In this case I just think the issue came from ideviceinstaller path. Somehow the IDE which perform the code didn’t has the right path value.
This steps help me to solve the problem. I was really stuck for the problem from last couple of days. Had tried all the options of uninstalling/installing, upgrading/downgrading the appium, ideviceinstaller. But nothing was working. Thanks much again.