appium / appium-uiautomator2-server

Appium UiAutomator/UiObject2-based server for Android UI automation. This module is used by appium-uiautomator2-driver component
Apache License 2.0
319 stars 227 forks source link

UIautomator2 couldn't sign with default certificate #267

Open amrsa1 opened 5 years ago

amrsa1 commented 5 years ago

unable to use uiautomator2 in the desired capabilities

appium server log

[MJSONWP] Calling AppiumDriver.createSession() with args: [{"appActivity":".common.activity.MusicMainActivity","appPackage":"com.sec.android.app.music","autoGrantPermissions":"true","automationName":"uiautomator2","deviceName":"SM_N950F","noReset":"true","platformName":"android","platformVersion":"9","udid":"988a1641434e36333130","newCommandTimeout":0,"connectHardwareKeyboard":true},null,null] [BaseDriver] Event 'newSessionRequested' logged at 1555578799241 (11:13:19 GMT+0200 (CEST)) [Appium] Appium v1.12.1 creating new AndroidUiautomator2Driver (v1.33.0) session [Appium] Capabilities: [Appium] appActivity: .common.activity.MusicMainActivity [Appium] appPackage: com.sec.android.app.music [Appium] autoGrantPermissions: true [Appium] automationName: uiautomator2 [Appium] deviceName: SM_N950F [Appium] noReset: true [Appium] platformName: android [Appium] platformVersion: 9 [Appium] udid: 988a1641434e36333130 [Appium] newCommandTimeout: 0 [Appium] connectHardwareKeyboard: true [BaseDriver] Creating session with MJSONWP desired capabilities: {"appActivity":".common.act... [BaseDriver] Capability 'noReset' changed from string to boolean. This may cause unexpected behavior [BaseDriver] Capability 'autoGrantPermissions' changed from string to boolean. This may cause unexpected behavior [BaseDriver] The following capabilities were provided, but are not recognized by appium: connectHardwareKeyboard. [BaseDriver] Session created with session id: a4da9153-1eb9-486b-b3d0-e56cdeab7038 [AndroidDriver] Retrieving device list [ADB] Trying to find a connected android device [ADB] Getting connected devices... [ADB] 1 device(s) connected [AndroidDriver] Using device: 988a1641434e36333130 [ADB] Setting device id to 988a1641434e36333130 [ADB] Running '/users/amrka/library/android/sdk/platform-tools/adb -P 5037 -s 988a1641434e36333130 shell getprop ro.build.version.sdk' [ADB] Current device property 'ro.build.version.sdk': 28 [ADB] Device API level: 28 [UiAutomator2] Relaxing hidden api policy [ADB] Running '/users/amrka/library/android/sdk/platform-tools/adb -P 5037 -s 988a1641434e36333130 shell settings put global hidden_api_policy_pre_p_apps 1' [ADB] Running '/users/amrka/library/android/sdk/platform-tools/adb -P 5037 -s 988a1641434e36333130 shell settings put global hidden_api_policy_p_apps 1' [ADB] Running '/users/amrka/library/android/sdk/platform-tools/adb -P 5037 -s 988a1641434e36333130 shell settings put global hidden_api_policy 1' [AndroidDriver] No app sent in, not parsing package/activity [ADB] Running '/users/amrka/library/android/sdk/platform-tools/adb -P 5037 -s 988a1641434e36333130 wait-for-device' [ADB] Running '/users/amrka/library/android/sdk/platform-tools/adb -P 5037 -s 988a1641434e36333130 shell echo ping' [AndroidDriver] Pushing settings apk to device... [ADB] Getting install status for io.appium.settings [ADB] Running '/users/amrka/library/android/sdk/platform-tools/adb -P 5037 -s 988a1641434e36333130 shell dumpsys package io.appium.settings' [ADB] 'io.appium.settings' is installed [ADB] Getting package info for 'io.appium.settings' [ADB] Running '/users/amrka/library/android/sdk/platform-tools/adb -P 5037 -s 988a1641434e36333130 shell dumpsys package io.appium.settings' [ADB] The version name of the installed 'io.appium.settings' is greater or equal to the application version name ('2.14.0' >= '2.14.0') [ADB] There is no need to install/upgrade '/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/io.appium.settings/apks/settings_apk-debug.apk' [ADB] Getting IDs of all 'io.appium.settings' processes [ADB] Running '/users/amrka/library/android/sdk/platform-tools/adb -P 5037 -s 988a1641434e36333130 shell 'pgrep --help; echo $?'' [ADB] Running '/users/amrka/library/android/sdk/platform-tools/adb -P 5037 -s 988a1641434e36333130 shell pgrep -f \^io\.appium\.settings\$' [AndroidDriver] io.appium.settings is already running. There is no need to reset its permissions. [ADB] Running '/users/amrka/library/android/sdk/platform-tools/adb -P 5037 -s 988a1641434e36333130 shell appops set io.appium.settings android\:mock_location allow' [Logcat] Starting logcat capture [ADB] Getting install status for io.appium.uiautomator2.server [ADB] Running '/users/amrka/library/android/sdk/platform-tools/adb -P 5037 -s 988a1641434e36333130 shell dumpsys package io.appium.uiautomator2.server' [ADB] 'io.appium.uiautomator2.server' is installed [ADB] Getting package info for 'io.appium.uiautomator2.server' [ADB] Running '/users/amrka/library/android/sdk/platform-tools/adb -P 5037 -s 988a1641434e36333130 shell dumpsys package io.appium.uiautomator2.server' [ADB] The version name of the installed 'io.appium.uiautomator2.server' is greater or equal to the application version name ('3.4.0' >= '3.4.0') [UiAutomator2] io.appium.uiautomator2.server installation state: sameVersionInstalled [ADB] Checking app cert for /Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-uiautomator2-server/apks/appium-uiautomator2-server-v3.4.0.apk [ADB] Starting '/users/amrka/library/android/sdk/build-tools/28.0.3/apksigner' with args '["verify","--print-certs","/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-uiautomator2-server/apks/appium-uiautomator2-server-v3.4.0.apk"]' [ADB] Got an error during apksigner execution: Command '/users/amrka/library/android/sdk/build-tools/28.0.3/apksigner verify --print-certs /Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-uiautomator2-server/apks/appium-uiautomator2-server-v3.4.0.apk' exited with code 20 [ADB] apksigner stderr: Unable to locate an executable at "/usr/libexec/java_home/bin/java" (-1) [ADB] [ADB] Cannot use apksigner tool for signature verification. Original error: Command '/users/amrka/library/android/sdk/build-tools/28.0.3/apksigner verify --print-certs /Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-uiautomator2-server/apks/appium-uiautomator2-server-v3.4.0.apk' exited with code 20 [ADB] Defaulting to verify.jar [ADB] '/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-uiautomator2-server/apks/appium-uiautomator2-server-v3.4.0.apk' is not signed with debug cert [ADB] /Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-uiautomator2-server/apks/appium-uiautomator2-server-v3.4.0.apk' is already zip-aligned. Doing nothing [ADB] Signing '/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-uiautomator2-server/apks/appium-uiautomator2-server-v3.4.0.apk' with default cert [ADB] Starting '/users/amrka/library/android/sdk/build-tools/28.0.3/apksigner' with args '["sign","--key","/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-adb/keys/testkey.pk8","--cert","/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-adb/keys/testkey.x509.pem","/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-uiautomator2-server/apks/appium-uiautomator2-server-v3.4.0.apk"]' [ADB] Got an error during apksigner execution: Command '/users/amrka/library/android/sdk/build-tools/28.0.3/apksigner sign --key /Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-adb/keys/testkey.pk8 --cert /Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-adb/keys/testkey.x509.pem /Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-uiautomator2-server/apks/appium-uiautomator2-server-v3.4.0.apk' exited with code 20 [ADB] apksigner stderr: Unable to locate an executable at "/usr/libexec/java_home/bin/java" (-1) [ADB] [ADB] Cannot use apksigner tool for signing. Defaulting to sign.jar. Original error: Command '/users/amrka/library/android/sdk/build-tools/28.0.3/apksigner sign --key /Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-adb/keys/testkey.pk8 --cert /Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-adb/keys/testkey.x509.pem /Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-uiautomator2-server/apks/appium-uiautomator2-server-v3.4.0.apk' exited with code 20; StdErr: Unable to locate an executable at "/usr/libexec/java_home/bin/java" (-1) [ADB] [ADB] Resigning apk. [UiAutomator2] Deleting UiAutomator2 session [UiAutomator2] Deleting UiAutomator2 server session [WD Proxy] Matched '/' to command name 'deleteSession' [UiAutomator2] Did not get confirmation UiAutomator2 deleteSession worked; Error was: UnknownError: An unknown server-side error occurred while processing the command. Original error: Trying to proxy a session command without session id [ADB] Running '/users/amrka/library/android/sdk/platform-tools/adb -P 5037 -s 988a1641434e36333130 shell am force-stop com.sec.android.app.music' [Logcat] Stopping logcat capture [ADB] Removing forwarded port socket connection: 8200 [ADB] Running '/users/amrka/library/android/sdk/platform-tools/adb -P 5037 -s 988a1641434e36333130 forward --remove tcp\:8200' [UiAutomator2] Unable to remove port forward 'Error executing adbExec. Original error: 'Command '/users/amrka/library/android/sdk/platform-tools/adb -P 5037 -s 988a1641434e36333130 forward --remove tcp\:8200' exited with code 1'; Stderr: 'adb: error: listener 'tcp:8200' not found'; Code: '1'' [UiAutomator2] Restoring hidden api policy to the device default configuration [ADB] Running '/users/amrka/library/android/sdk/platform-tools/adb -P 5037 -s 988a1641434e36333130 shell settings delete global hidden_api_policy_pre_p_apps' [ADB] Running '/users/amrka/library/android/sdk/platform-tools/adb -P 5037 -s 988a1641434e36333130 shell settings delete global hidden_api_policy_p_apps' [ADB] Running '/users/amrka/library/android/sdk/platform-tools/adb -P 5037 -s 988a1641434e36333130 shell settings delete global hidden_api_policy' [BaseDriver] Event 'newSessionStarted' logged at 1555578800799 (11:13:20 GMT+0200 (CEST)) [MJSONWP] Encountered internal error running command: Error: Could not sign with default certificate. Original error spawn ENOTDIR [MJSONWP] at ADB.signWithDefaultCert (/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-adb/lib/tools/apk-signing.js:124:13) [HTTP] <-- POST /wd/hub/session 500 1561 ms - 206 [HTTP] [HTTP] --> DELETE /wd/hub/session [HTTP] {} [HTTP] No route found. Setting content type to 'text/plain' [HTTP] <-- DELETE /wd/hub/session 404 12 ms - 57 [HTTP]

Screen Shot 2019-04-18 at 11 13 29 AM

appium Version 1.12.1 (1.12.1.20190404.1)

prettycat666 commented 4 years ago

U can use command "adb install -g app.apk"