Knowledge Base

Manual Testing

  • Full control of mobile devices: Test on physical devices remotely with support for multi-touch gestures, orientation and GPS simulations, camera and speaker control, and device connection management.

  • Automatically record all test sessions: Kobiton captures all the actions you perform on the app in a device log so you can quickly review performance benchmarks in real time.

  • Enhanced remote control experience: Optimize rendering rate and device selection based on your connection quality and location.

Automation Testing

  • No change to your automation scripts: Execute automation tests on Kobiton devices by updating the device settings to your required configuration.

  • Test sessions history: Kobiton preserves all automation executions, including commands, logs, screenshots and metadata.

  • Automate from A-Z: Kobiton automatically cleans your test apps and data after the session ends.

Device Management

  • Easy setup: Download the Kobiton Desktop App and start plugging in your devices.

  • Easy device enrollment: Register your own devices to the Kobiton cloud and make the device available to your teams across different locations.

  • Maximize device coverage Use your own devices and Kobiton cloud devices together to increase device coverage for your testing and to save on costs.

video

Getting Started with Kobiton

To use the Kobiton desktop app to connect your own devices, you must complete the steps on the Preparing Mac PC to run the Kobiton Desktop App page.

Manual testing

You can remotely access any of the Kobiton mobile devices from the Devices menu. The manual testing interface gives you complete control over the device.

manual-testing.png

For more information about manual testing, refer to the Kobiton for manual tester section.

Getting started with manual testing

Automation Testing

Generate Selenium and Appium desired capabilities by selecting a device and updating your test script. Execute your test and monitor your test session in the session list.

automation-testing.png

For more information about automation testing, refer to the Kobiton for automation tester section.

Getting started with test automation

Manage your own devices with Kobiton

To use and manage your own devices with the Kobiton desktop app, you must download and install the Kobiton desktop app.

manage-personal-device.png

For more information about managing your own devices with the Kobiton desktop app, refer to the Managing your own devices section. Refer to the Device List page for a list of the available Kobiton devices.

Getting started with device management

See list of Kobiton devices

Registration Account

Kobiton Account Types

Kobiton has 2 account types, "Individual developer/tester" and "organization." 

These topics are intended to help you with the registration process and password management.

How to register a new account?

To get started with Kobiton, User "Registration" is the first thing you are required to do. The user account registration process mentioned below will help you to start as a new user.

No. Description
1 Enter your first name. First name is a mandatory field, and you must use your legal name.
2 Enter your last name. Last name is a mandatory field, and you must use your legal name.
3 Create a username. Your username must be in between 5 to 32 characters long (letters, numbers or underscores only).
4 Enter your email address. Email is a mandatory field. Ensure you use a real email address, as Kobiton uses this email for all future communication.
5 Create your password. Password is a mandatory field. Your password must be in between 5 to 32 characters long. Passwords must be a combination of uppercase and lowercase characters and numbers.
6 You must agree to the Kobiton License Agreement in order to complete the registration process.
7 Click Register.
Note: You must Select a subscription plan and provide your billing information to activate your kobiton trial and start testing.

signup.png

Changing my password

To change your current password, select [Your Name]>Account Details to display the Profile tab.

No. Description
1 Enter your current password.
2 Enter your new password.
3 Enter your new password again to confirm it.
4 Click Update.

changing-password.png

Recovering my username and password

Use these steps to recover your Kobiton password:

No. Description
1 Go to the login page
2 Click Reset Password. Kobiton will email password reset instructions to the email you used to register your account.

recover-account.png

Setting up an organization

Setting up an organization allows you to invite other team members (Developers/Testers) to collaborate.

Go to Account Settings in the portal and click "Organization" tab. 

No. Description
1 Click "Create organization."
2 Provide your organization name.
3 Provide the description for your organization.
4 Click "Create your organization."
5 Click "Cancel" to abandon the organization setup process.

OrgCreation.png

Once the organization is successfully setup, you can invite other team members to the organization. You can also upgrade the role of the invited user to "Admin" if desired.

2-ORG-0.3_11OCT.png

Setting up user time zone

Purpose

Because Kobiton users access the portal from various countries around the world, the need to adjust the time settings to reflect their current time zone is critical.

Kobiton now allows users to change their time zone.

How to change your time zone 

Follow these steps below to complete the time zone setting.

Step 1: Go to the Profile page from themenu

step-1.png

Step 2: Select time zone from drop down list

step-2.png

Step 3: Click Update Settings to apply the new time zone

step-3.png

Step 4: You will receive a success message when complete

step-4.png

  • For existing users who signed up before the update to the time zone settings, the default timezone will be set to (GMT+00:00) London.

Application File Formats

Kobiton supports the following file formats for native apps:

OS File format
Android .APK 
iOS .IPA
iOS .ZIP

Zip file format: iOS .app applications file must be in a .zip file format.

If you create your iOS application as a .app directory with multiple files, you need to export it as a .zip file before uploading. If you have created your app as a .ipa file, you can upload that file directly without needing to zip it up.

Parameters for the app method

Parameter Description
app Each application file(.APK, .IPA, .ZIP) uploaded to the app repository must have its own unique ID. You refer to the App ID when setting up the app capability in your test script. Example: kobiton-store:71

Setting Kobiton Desired Capabilities for your application file in Kobiton Storage

Kobiton storage URLs are in the form kobiton-storage:app-id, After you've uploaded the file, you can set your test to reference the application at the Kobiton Storage URL with the app capability, as shown in this example for App.

capabilities.SetCapability("app", "kobiton-store:71");

Apps Repository

The Apps Repository is intended to help users manage new and existing versions of their applications within the Kobiton cloud. Users can add any number of apps to the Apps Repository and also create restricted access if necessary.

Managing apps

The Kobiton Apps Repository helps you manage your apps within the Kobiton cloud so that you can access them anytime, anywhere!

Description
1 Upload your apps into the Apps Repository.
2 By default, your uploaded apps will be visible to all your organization members. You can change the access permissions to "Only Me" OR "Public" by clicking on the icon.
3 Apps which have the "Public" access will display a globe icon on the tile containing the app.
4 Apps with "Only Me" access will display a lock icon on the tile containing the app. Apps with "Only Me" access are available to the masteraccount owner.
5 Multiple app versions are condensed into a single tile wit an overlay (as shown below). You can access different app versions by clicking "View All."
6 You can view information about the uploaded app by clicking on the overlay.

01-Apprepo-Public.png

App versions

The Kobiton Apps Repository helps users manage different versions of their application.

Description
1 To display options for adding/deleting app versions, hover over the tile containing the app.
2 To add a new app version click the + icon.
3 To permanently delete the app from the Apps Repository click the trash icon.

03 Apprepo_show Delete button, add another app version and show the app detail.png

Users can view the multiple versions of the application by clicking on the overlay

04 Apprepo_multiple versions of application.png

Manual Testing with Kobiton

Kobiton manual testing gives you remote access to real mobile devices. You easily test websites, native apps or hybrid apps. Kobiton automatically records all your manual testing actions and stores them as test session details.

Get started with Kobiton as a Manual Tester

How to get started with Kobiton for manual testing

Test your web, native or hybrid apps with Kobiton devices by following these steps:

3 steps to getting started with Kobiton as a manual tester.

Step 1:  Hover over the device you want to test and click Launch device.

step-1.png

Step 2:  When the device launches, go to the APPS tab to upload and install your iOS or Android binary file (IPA/APK).

step-2.png

Step 3 : Use the Sessions tab to view the logs for your manual test session.

step-3.png

For more information, refer to the following topics:

Installing your iOS or Android application on the launched device

You can install your iOS or Android apps on the launched device in one of the following ways:

  • Go to the APPS tab. Browse the location of the file and supply it.
  • Go to the APPS tab. Install the app from a third-party URL.
  • Install your apps from the app repository.

When the app starts uploading and installing, the progress bar shows the progress status accordingly. Kobiton automatically uninstalls all your app when the test session ends.

video

Manual test session set up

You can add manual test session details to help you organize your testing. While all settings are optional, you may want to adjust the frame rate for image quality.

No. Description
1 Go to the "SESSION" tab in a launched device. 
2 Name your manual test session so it's easier to find in the list of test sessions.
3 Describe the test objective in the test session description.
4 All screenshots captured by you will be available in the "Screenshots" section.
5 Download a screenshot by clicking the download icon.
6 Set the screen quality (Low, Medium, High) per your network speed.

video

Toolbar features

Use the toolbar to perform different operations on the launched device during your manual testing.

No. Description
1 Expands the device to full view. 
2 Performs a screen capture of the device.
3 Enables touch gesture on the device.
4 Enables pinch zoom gesture on the device.
5 Rotates the device view between portrait and landscape.
6 Simulate device location
7 Presses the device Power button.
8 Presses the Menu button.
Note: Applicable for Android only and will be hidden in case of iOS.
9 Presses the device Home button.
10 Presses the device Back button.
Note: Applicable for Android only and will be hidden in case of iOS.
11 Terminates the test session and closes the device window.

toolbar.png

How to simulate device location

video

How to get coordinates of a place for location-based test

With Google Maps there are 3 steps to easily get the coordinates of a place.

Step 1: Browse to your desired location via manual browsing or by entering an address.

Step 2: Right click on the location and select What's here?

Step 3: Google Maps will return coordinates of a place with a relevant latitude and longitude.

map.png

How to simulate device time zone

Goal

  • Mobile developer and tester want to simulate time zone for their testing purpose.

How to simulate device time zone

User performs 3 steps below to set device time zone

  • Step 1: Click on Set device time zone icon

    step-1.png

  • Step 2: Select a time zone from the pop-up form

    step-2.png

  • Step 3: Click Set button to set the device time zone

    step-3.png

Anti-virus scanning

When Kobiton device is being used either in Automation or Manual session, Kobiton performs scanning for virus on files downloaded to the device like installing ad-hoc app. The anti-virus scanning happens in one of following events:

  1. Binary files from Internet are downloaded to the device. For example, an user starts a Manual session and uses Google Chrome browser to download a file; the file is scanned for virus by Kobiton first, then it's transferred to the device if there is no virus or security threat (like malware) found. Otherwise, the Chrome browser receives an error returned by Kobiton virus scanning saying the file can't be served due to virus threat

  2. Application files (.apk, .ipa) are installed to the device through either Apps Repository or ad-hoc files (uploaded by user or external url). These files are scanned by App-Ray - Kobiton security partner - for identifying vulnerabilities

If App-Ray sees any major security threat after scanning app, Kobiton blocks the app from being installed to Kobiton device. However, in some cases, if the author app thinks these threats are harmless to the device, they can request Kobiton to approve for bypassing so that it can be used in Kobiton device

Below sections are more information about which is threat evaluated as major and the workflow for requesting approval

Kobiton major security threats

Below are the list of threat types that the app will be blocked if they're found after scanning

Notes:

  • For an app which is detected as HIGH risk, user has to submit bypass approval request to Kobiton. Kobiton support team will consider and approve/reject
Threat type Threat description Severity Require Kobiton approval
BINARY_BUSYBOX The app accesses the busybox binary High Yes
BINARY_SU The app accesses the su binary High Yes
DEVICEADMIN The app contains a Broadcast Receiver that can acquire device admin rights High Yes
FACTORYTEST The app has the FACTORY_TEST permission set High Yes
VIRUS Virus scanners recognize this as malicious High Yes
INITIATE_PHONECALLS The app can silently initiate phone calls High Yes
READ_LOGS The app is able to read the system log files High Yes
READ_TASKS The app checks which other applications are running High Yes
SEND_SMS The app can silently send SMS High Yes
SQL_FLAW Potential SQL injections found in x places High Yes
ACCESS_FILES_OTHER_APP This app accesses files of another app Minor No
ADS_DYNAMIC x ad servers are contacted Minor No
ADS_STATIC x ad libraries are referenced Minor No
AUTOSTART The app can start automatically when the device is booted Minor No
BACKUP_ALLOWED Backup is allowed Minor No
BACKUP_SELFIMPLEMENTED App handles Android backups Minor No
BLUETOOTH_ADMIN The app uses Bluetooth and may initiate device discovery Minor No
BLUETOOTH_USED The app uses Bluetooth Minor No
CAMERA_USED The app uses the camera Minor No
CAPABILITYLEAK x capability leaks detected Minor No
CONTACTS_READ The app can read contact data Minor No
CONTACTS_WRITE The app can write contact data Minor No
CRYPTO_SIGNING_KEYLENGTH_LOW Signature key length less than 1024 bits Minor No
DATAFLOW_STATIC Static data leakage detected Minor No
DEBUGGABLE Debuggable flag set. Sensitive information might be accessible Minor No
DISABLE_KEYGUARD The app can silently unlock the screen Minor No
DYNAMICCODE This app loads code dynamically Minor No
FINGERPRINTING The app can fingerprint the runtime environment Minor No
FRAMEBUFFER The app has access to the framebuffer Minor No
HTTP_COMMUNICATION_DYNAMIC The app communicates over HTTP Minor No
HTTP_COMMUNICATION_STATIC The app communicates over HTTP Minor No
LEFTKEY The app contains x access keys to web services or APIs Minor No
LOCATION_COARSE The app accesses your coarse location Minor No
LOCATION_GPS The app accesses your GPS locatio Minor No
LOCATION_WIFISTATE The app accesses your wifi state which can potentially leak your location Minor No
MISSING_TAPJACKING_PROTECTION Missing TapJacking protection Minor No
NATIVELIBS This app contains native executables Minor No
NESTEDAPK_ACCESSED App-Ray cached a possible Apk file that was accessed at runtime, download Minor No
NESTEDAPK_CONTAINED The apps APK contains one or more nested APKs Minor No
OVERPERMISSIVE x permissions are requested but might not be required Minor No
PASSWORD_READ The app reads account passwords Minor No
PAYMENT_STATIC The app contains the following in-app payment libraries: x Minor No
PROFILE_READ The app can read user profiles Minor No
PROFILE_WRITE The app can write user profiles Minor No
READ_EXTERNAL_STORAGE The app can read the contents of the SD card Minor No

Workflow to request approval for bypassing

A. From Apps repository

1. In the App repository, select the app with the status "High risk"

image alt text

2. Open the menu and select View security risks

image alt text

3. Click to Request to bypass

image alt text

4. The System sends the request to the Kobiton support team for approval and updates the app label to "Security approval pending"

image alt text

5. If the Kobiton support team approves the request then the app label is turned to "Security approved"

image alt text

B. From manual test session

1. User clicks on the "View Detail" message bar when the system detects potential security issues

image alt text

2. System opens the "Security Scan Results" page then user clicks on “Request to bypass” button

image alt text

3. System will upload the app to the App repository and send the request to the Kobiton team for investigation.

image alt text

4. User will see the status "Security approval pending" in the App repository

image alt text

5. If the Kobiton support team approves the request, the app’s label is updated to "Security approved"

image alt text

6. The Approved app can now be installed directly from the APPS section during a manual test session

image alt text

Using Kobiton for Automation Testing

You can run automation tests on real mobile devices using Kobiton. Kobiton generates a test report for device tests, which includes detailed logs, HTTP commands, and metadata.

To get started with automation testing, refer to

Automation testing with Kobiton

Using the Appium Framework, you can use Kobiton to run automation tests on physical devices in the Kobiton cloud. Follow these steps for automation testing in Kobiton:

No. Description
1 Log in to Kobiton. 
2 On the Devices tab, hover over the device you want to test and select Show automation settings.
3 Use the desired capabilities settings you configure here in your Appium test automation script.
4 Execute your test.
5 Review the test log

video

Which test automation frameworks does Kobiton support?

Kobiton supports the Appium test automation framework.

Desired capabilities usage

Use Kobiton’s automation settings to configure your test scripts using the Appium Framework.

The automation settings have got all the required configurations you need to automate your test using the Appium Framework and to run your automation test on real devices in the Kobiton cloud.

Generate the Desired Capabilities as per your test requirements and update your test script.

No. Description
1 To execute an automation test on your organization’s device, select Organization Devices. To execute on an available Kobiton device that matches your desired capabilities, select Kobiton Devices. 
2 Select Use specific device to execute your automation test on a particular device based on the device UDID.
3 Select the checkbox if you want to capture screenshots during the test session.
4 Select Testing type > Web application for web testing.
5 Select Testing type > Native/Hybrid application to test your native or hybrid app.
6 Name your automation test session so it is easy to find it in the list of test sessions.
7 Describe your test session objective.
8 Choose your test script language.
9 For automation web testing, choose your browser.
10 Set the device orientation to Portrait or Landscape.
11 Choose the API key.
12 Copy the "Desired Capabilities" and update your test script.

DesiredCapability.png

Test client libraries compatibility with Kobiton

Kobiton is built on top of Appium 1.7.1. This document lists supported versions of testing client libraries that work with Kobiton.

C#

Java

Ruby

NodeJS

PHP

Python

Automation Testing Practices on Kobiton

Kobiton applies following timeouts in an Automation session

  • On the first request to initialize a session (e.g. "POST /wd/hub/session"), Kobiton will terminate the session if there is no response to the test script after a timeout.
    • If the test session is web testing (i.e. use browser in desired Capabilities), the timeout is 10 minutes.
    • If the test session is app testing (i.e. use app in desired Capabilities), the timeout is 30 minutes.
  • On subsequence requests, Kobiton will terminate the session if there is no response to the test script after 10 minutes.

Kobiton also supports user-specified Appium implicit / explicit wait timeout in automation script. Testers are able to use Appium / Selenium commands to specify (implicit / explicit) wait timeout duration during a running Automation session. Kobiton also applies default values so that Automation sessions can run well even testers don't have them in script. When a wait timeout is provided in test script, Kobiton ensures that it matches with Kobiton-specific value range, if not, Kobiton applies the default value.

  • The minimum wait timeout is 10 seconds
  • The maximum wait timeout is 30 minutes
  • The default wait timeout is 5 minutes

To have more info about wait timeout, consult Selenium document

Override HTTP timeout for client libraries

The HTTP library used by various client libraries usually has a timeout of 2 minutes. That is, when the HTTP library is used to send an HTTP request, it will wait for the response in a certain timeout before terminating the request. However, an app _test session (i.e. use _app in desired Capabilities) may need more than 2 minutes to initialize because it needs to download and install the app. Therefore, to prevent the client libraries from ending prematurely, users should extend the timeout, which should not exceed 30 minutes (the max timeout used by Kobiton). Please see Set custom timeout on testing client libraries for examples of changing timeout.

Override noReset and fullReset values in Desired Capabilities

Kobiton system overwrites noReset is FALSE and fullReset is TRUE during automation app testing regardless of noReset and fullReset values in your desired capabilities. It means your application will be uninstalled and the app data will be cleared after ending test sessions.

Set custom timeout on testing client libraries

This document explains how to set an HTTP timeout in popular client libraries.

Appium Java

Currently Appium has an issue about this, so this code would throw error. This sample code should work after the issue was resolved. Github issue link here.

int connectionTimeout = 20 * 60 * 1000;  
int socketTimeout = 90 * 1000;  

ApacheHttpClient.Factory clientFactory = new ApacheHttpClient.Factory(new HttpClientFactory(connectionTimeout, socketTimeout));  
AppiumCommandExecutor executor = new AppiumCommandExecutor(new HashMap<String, AppiumCommandInfo>(), new URL(kobitonServerUrl), clientFactory);  
AndroidDriver driver = new AndroidDriver<>(executor, capabilities);

Appium C#

int timeOutInSeconds = 20 * 60;  
AndroidDriver driver = new AndroidDriver<AppiumWebElement>(serverUri, capabilities, TimeSpan.FromSeconds(timeOutInSeconds));

Appium Ruby

Both Appium and Selenium driver in Ruby don't allow user to customize HTTP timeout, see code. Therefore, in order to set custom timeout, user has to edit driver.rb inside ruby gem directory

Selenium 2 / JavaScript

wd.configureHttp({
    timeout: 20 * 60 * 1000  
})  
const driver = wd.promiseChainRemote(serverConfig)

Selenium / PHP

$desired_caps_android_app = array(  
  array(  
   'host' => $auth,  
   'port' => 80,  
   'desiredCapabilities' => ...,  
   'seleniumServerRequestsTimeout' => 120  )  
);

Get Kobiton session ID

The Kobiton Session Id can be obtained from the RemoteWebDriver or AppiumDriver instance. See the code snippets for the specified languages below:

1. JavaScript

    import BPromise from 'bluebird'
    const sessionCapabilities = await BPromise.fromCallback((done) => driver.sessionCapabilities(done))
    console.log(sessionCapabilities.kobitonSessionId)

2. Java

Selenium Webdriver

    String kobitonSessionId = driver.getCapabilities().getCapability("kobitonSessionId").toString();
    System.out.println("kobitonSessionId: " + kobitonSessionId);

Appium Driver

    String kobitonSessionId = driver.getSessionDetails().get("kobitonSessionId").toString();
    System.out.println("kobitonSessionId: " + kobitonSessionId);

3. C#

Selenium Webdriver

    string kobitonSessionId = driver.Capabilities.GetCapability("kobitonSessionId").ToString();
    Console.WriteLine("kobitonSessionId: " + kobitonSessionId);

Appium Driver

    string kobitonSessionId = driver.SessionDetails["kobitonSessionId"].ToString();
    Console.WriteLine("kobitonSessionId: " + kobitonSessionId);

4. Python (Selenium Webdriver & Appium Driver)

    kobitonSessionId = self.driver.desired_capabilities.get('kobitonSessionId')
    print(kobitonSessionId)

5. PHP

Selenium Webdriver

    $getCapabilities = $this->driver->getCapabilities()->toArray();
    $kobitonSessionId = $getCapabilities['kobitonSessionId'];
    print($kobitonSessionId);

6. Ruby

Selenium Webdriver

    puts @driver.capabilities['kobitonSessionId']

Appium Driver

    puts @driver.driver.capabilities['kobitonSessionId']

Managing Your Own Devices

With Kobiton, you can do the following:

  • Use your mobile devices in the Kobiton cloud
  • Manage your device infrastructure in the Kobiton Desktop App

Refer to Getting started with device management to learn how to install the KobitonDesktop App.

Getting started with Kobiton desktop app

When you launch the Kobiton Desktop App, you must complete the following steps:

No. Description
1 Enter the email address you used to register on the Kobiton website. 
2 Enter your password.
3 Click the Login button.
4 After the system validates your credentials, the Plug in your devices screen displays.
5 Connect your mobile device to display the device list.
6 Click Activate to begin using your device for testing. (You can click Deactivate to remove the device.)

For a list of all devices supported by Kobiton, refer to the Kobiton Device List.

login.png

plug-in.png

individual.png

Learn about the device support on Kobiton platform. See What kind of mobile devices are supported by Kobiton?

Downloading the Kobiton desktop app

You can download the Kobiton Desktop App from the Kobiton Download menu. 

download.png

Getting started with device management

With Kobiton, you can use your own devices. Complete the following steps to get started with device management.

No. Description
1 Download the Kobiton Desktop App from the download menu. Refer to this topic for more information about downloading the Kobiton Desktop App. 
2 Install the Kobiton Desktop App on your computer.
3 Refer to Setup Mac machine.
4 Refer to Setup Android device.
5 Refer to Setup iOS device.
6 Connect your mobile device to the computer.
7 Activate your mobile device by clicking the Register to cloud button.

opening-walk-through.png

Manually installing and configuring Android SDK in Kobiton

  1. Download the Android SDK from the following location:
    https://developer.android.com/studio/index.html#downloads

  2. Install the Android SDK on your computer.

  3. Enter the Android SDK path in the Kobiton Desktop App.

android-SDK.png

Manually installing and configuring Java in Kobiton

  1. Install Java as described in the following location:
    https://java.com/en/download/help/mac_install.xml

  2. Enter the Java path in the Kobiton Desktop App.

Setup an Android devices

Install / Update Google Chrome

Install Google Chrome app from Play Store on the device

Enable Developer Mode

  1. For Android 4.2 & 5.0
  • Go to Settings. Tap the Developer Options.

  • Check the USB debugging checkbox.

  • For Android 4.2

usb-debugging-on-android-4-2.png

  • For Android 5.0

usb-debugging-5.0-Lollipop.png

  1. For Android devices that require input Captcha (example: Xiaomi)
  • Go to Settings, and tap the Additional Settings

  • Tap Developer Options

  • Enter Captcha

  • Enable Developer Options

  • Enable USB debugging

  • Turn off Turn on MIUI optimization option

  • Turn on Install via USB option

usb-debugging-on-android-xiaomi.png

Turn off the Screen Lock setting

  • Go to Settings, scroll and touch Lock screen and security.

  • Touch None option

    screenlock.png

Change the Settings View Type into List view Type

  • Go to Settings. 
  • Tap Options (if available) and choose List view (if available)

    change-setting-view-type.png

Troubleshooting Android

Troubleshooting guidelines for Android devices

Device works well when we see Register To Cloud or Unregister button

Otherwise, check below problems and corresponding fixing action

Issue - "Allow USB debugging" dialog on Android

Identify problem

  • Desktop App shows label saying "Allow USB debug ..."

android-usb-desktop.png

  • Double check again by running adb devices from Android SDK

    • Click on gear icon in Desktop App and copy path to Android SDK folder

desktop-android-sdk.png

  • Paste to Terminal app, append path to adb tool /platform-tools/adb devices and run. Expect to see the text unauthorized

adb-unauthorized.png

Action

  • Get UDID

  • Go to the shelf that contain this device because we must handle this directly

  • Follow below steps

    • Check on "Always allow from this computer"
    • Tap on "Ok" button

For Unknown issues (None of above problem is found) on Android devices

Please do the steps below for fixing

  1. Unplug devices
  2. Restart devices
  3. Revoke developer options
  4. Turn on developer options
  5. Plug devices again
  6. Plug / unplug a few times to see "Allow USB debugging" dialog -> Hit "OK" if exists
  7. Move to Home Screen

Setup an iOS device

It requires to apply below config step for all iOS devices before they're plugged into Kobiton Desktop application

Disable passcode

if you can not find option Passcode in Settings, skip this step because default profile has been overridden by kobiton profile and make sure that the passcode is disabled.

  • Access Setting > Passcode., Select Turn Passcode Off.

    passcode.png

Setup developer mode

  • Open Xcode app and wait for it to finish processing the device.

  • To enable UI Automation access Settings > Developer > Enable UI Automation.

    ios-settings-dev-uiautomation.jpg

  • To enable the Web Inspector access Settings > Safari > Advanced > Web Inspector.

    ios-settings-safari-advance-webinspector.jpg

FAQ and Troubleshooting

FAQ

  1. Handle software update dialog on iOS devices
  • Tap "Remind Me Later" button on "Software Update" dialog

    software-update-01.png

  • Tap "Later" button on "Software Update" dialog

    software-update-02.png

  • Tap "Later" button on "Software Update" dialog

    software-update-03.png

  1. Handle trust this computer dialog on iOS devices
  • Tap "Trust" button on "Trust This Computer" dialog

    trust-this-computer.png

  • Unplug device

  • Restart device (hold Power button several seconds and swipe turn off then turn on)

  • Plug device

  • Wait for 5-10 seconds to tap Trust button if required

  1. Handle Processing Symbol Files in Xcode for new iOS devices
  • Open Xcode, click on menu Window -> Device to open Device Window

  • Confirm that Xcode sees the plugged iOS device

  • If NOT, see (C.4) Create symbold files for iOS device plugged in first time in Setup Mac machine

  1. Confirm Wildcard App ID is used in iOS provision profile
  • Open Terminal app

  • Navigate to location of .mobileprovision file used in Desktop, run cat .mobileprovision

  • Expect to see

    <key>AppIDName</key>
    <string>Xcode iOS Wildcard App ID</string>
  • If NOT, double check (C.2.5) Download kobiton.mobileprovision Provisioning Profile file in Setup Mac machine

Troubleshooting iOS

Issue - "Trust This Computer" dialog on iOS devices

  1. Identify problem
  • Desktop App shows label saying about Trust issue

    cannot-connect-problem.png

  • Double check in Xcode

    • Open Xcode > Window > Devices.

    observe-in-Xcode.png * Select the failure device, expect to see yellow triangle and warning labels

    observe-in-Xcode-2.png

  1. Action
  • Follow the guideline in ios handle trust this computer in above section.

Issue - "Software Update" dialog on iOS 10+

  1. Identify problem
  • Desktop App shows label saying Initializing forever

    initializing-problem.png

  1. Action
  • Follow the guideline in ios handle software update in above section

Issue - Error in Kobiton log shows "Cannot launch webkit proxy".

  1. Identify problem
  • Enable UI Automation on Developer mode is turned off in your device
  1. Action
  • Turn Enable UI Automation radio on: Settings > Developer > Enable UI Automation radio

ios-settings-dev-uiautomation.jpg

Issue - Error in Kobiton log shows:

[MJSONWP] Encountered internal error running command: Error: xcodebuild failed with code 65
[XCUITest] Error: Could not navigate to webview; there are none!
  1. Identify problem
  • Web Inspector from Safari browser is turned off
  1. Action
  • Turn Web Inspector radio on: Safari > Advanced > Web Inspector radio

ios-settings-safari-advance-webinspector.jpg

Issue - Error in Kobiton log shows:

Cannot launch webkit proxy
OR
[MJSONWP] Encountered internal error running command: Error: xcodebuild failed with code 65
[XCUITest] Error: Could not navigate to webview; there are none!
OR
2017-06-01T04:12:54.994Z appium-79de3c497b9f174288a68019040ae4aa25907b44 stdout: [iOS] Attempted to get a list of webview contexts but could not connect to ios-webkit-debug-proxy. If you expect to find webviews, please ensure that the proxy is running and accessible
[debug] [iOS] No web frames found.
2017-06-01T04:12:54.995Z appium-79de3c497b9f174288a68019040ae4aa25907b44 stdout: [iOS] Could not find any webviews yet, refreshing/retrying
  1. Identify problem
  • The device hasn't been configurated properly.
  1. Action
  • Follow steps at Setup iOS device to apply necessary Settings on iOS device and replug it again.

Issue - Error in Terminal shows:

xcodebuild: command not found
xcode-select: error: tool 'xcodebuild' requires Xcode, but active developer directory '/Library/Developer/CommandLineTools' is a command line ...
  1. Identify problem
  • Xcode hasn't been configured properly
  1. Action

Issue - Xcode or MacOSX doesn't regconize iOS devices

  1. Identify problem
  • Either their iTunes app is old or customer is using low quality USB cable.
  1. Action
  • Action 1:

    • Install the latest iTunes app version Apple site
    • Replug the device
  • Action 2:

    • Try with better cable

For Unknown issues (None of above problem is found) on iOS devices

Please do the steps below for fixing

  1. Unplug devices
  2. Restart devices
  3. Plug devices again
  4. Plug / unplug a few times (2-3) to see Trust dialog -> Hit Trust if exists
  5. Turn on developer mode
  • Enable UI Automation (Settings > Developer > Enable UI Automation)
  • Turn on: Web Inspector (Settings > Safari > Advanced > Web Inspector)

Setup Mac machine

Prepare Mac to run Kobiton Desktop

This document shows how to setup a fresh Mac for running the Kobiton Desktop App.

  1. (A) General setup
  2. (B) Setup Kobiton Desktop for hosting Android devices: please skip this section if you don't plug Android devices in Mac
  3. (C) Setup Kobiton Desktop for hosting iOS devices: please skip this section if you don't plug iOS devices in Mac

Prerequisites

  • Kobiton Desktop app requires macOS Sierra 10.12.6 or later.
  • Please execute any command with non-root user
  • If you see any issues during setup, please find the solutions at Troubleshooting

(A) General Setup

  1. Increase the maximum number of open files. Please read increase number of open files document.
  2. To gain best performance, the Mac machine should use cable Ethernet instead of wifi
  3. (A.1) Setup common tools
  4. (A.2) Disable Energy Saver in Mac
  5. (A.3) Set up timezone
  6. (A.4) Launch Kobiton Desktop app

(A.1) Setup common tools

    ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
    brew update
  • Use Homebrew to install tools
    brew install nodejs graphicsmagick carthage
    brew install ffmpeg --with-x264

(A.2) Disable Energy Saver in Mac

The Mac machine needs to be always running as a server. However, macOS has Energy Saver to bring the machine into sleep mode when there is no active user. This step is prevent the machine from being sleep by disabling Energy Saver

  • Launch System Preferences app

    launch-setting.png

  • Select Engery Saver by enter the name on search input at top-right corner

    select-engery-saver.png

  • Switch to Power Adapter view, ensure that:

    • Option Prevent computer from sleeping ... is checked
    • Option Put hard disks to sleep when possible is unchecked

    put-os-sleep.png

  • Finish, close the window

(A.2) Set up time zone

The time zone of the Mac machine will be used as default time zone for all the mobile devices.

  • Launch System Preferences app

    launch-setting.png

  • Select Date & Time by enter the name on search input at top-right corner

    select-date-time.jpg

  • Select Time Zone

    select-timezone.jpg

  • Click the lock icon in the left bottom corner and enter your credential so you can change time zone setting.

    unlock-timezone.jpg

  • Uncheck Set time zone automatically using current location

    uncheck-set-timezone-automatically.jpg

  • Choose closest city

    set-closest-city.jpg

  • Finish, close the window

(A.4) Launch Kobiton Desktop app

  • Download Kobiton app from https://portal.kobiton.com/ with private account

  • Extract Kobiton.dmg and move to Applications folder

  • Open Kobiton app

(B) Setup Kobiton Desktop for hosting Android devices

Kobiton supports Android with OS version from 4.2.2 to 8.0.0

Android devices need to be configured in order Kobiton Desktop can control them. Please consult the Setup Android Device document

Kobiton Desktop requires Java JDK 7 and Android SDK available on Mac. They can be installed in two ways:

Manual

  • Install Java JDK 8

  • Install Android Studio

  • Then go to Android Studio -> Preferences -> Appearance & Behavior -> System Settings -> Android SDK

  • Copy Android SDK path from Android Studio and paste it into Kobiton Android SDK path

    android-sdk-tools.png

  • Go to Setting tab (see below screenshot) and provide the location to Java JDK and Android SDK

SDK-location.png

Automated by Kobiton Desktop

  • Login to Kobiton Desktop and go to Setting tab. Below screenshot is how the tab looks like

  • Install Java JDK by clicking CLICK HERE on Java JDK part

    require-java-jdk.png

  • Install Android SDK by clicking CLICK HERE on Android SDK part

    require-android-sdk.png

(C) Setup Kobiton Desktop for hosting iOS devices

Kobiton supports iOS with OS version from 9.0 to 11.2

iOS devices need to be configured in order Kobiton Desktop can control them. Please consult the Setup iOS Device document

The setup process for hosting iOS devices in Mac goes through following sub-sections:

Purchase an Apple Developer program.

In order iOS apps can be installed on your iOS devices, please enroll Apple Developer program and get yourself a Developer or Organization account.

c.1. Setup Xcode and tools. 

Kobiton Desktop uses Xcode and various tools for communicating with iOS devices. This section shows you steps to install them all

c.2. Prepare iOS signing key files.

Wrong iOS signing keys are one of common mistakes that cause failure initializing iOS device in Kobiton Desktop. Please pay extra intention on this section

  • This sub-section shows you how to configure Mac to generate iOS signing key files. These files will be used in (C.3) sub-section.

  • Note:

    • If you have many Mac machines and want to run Kobiton Desktop on them, you only need to perform (C.2) once and you can re-use the iOS signing keys for (C.3) in all of your Mac
    • When your Apple Developer account gets renewed, redo from (C.2.1) to (C.2.5) and (C.3) in all the Mac machines
    • If you plug a new iOS device, you need to redo (C.2.5) and (C.3) at the Mac hosting the new device

c.3. Add iOS signing key files to the Kobiton Desktop app.

This step is to allow Kobiton Desktop to sign iOS apps and install to your devices

c.4. Create symbold files for iOS device plugged in first time.

Xcode requires extra configuration step for any iOS device plugged first time to Mac machine. This step guide you how to configure Xcode for recognizing iOS devices plugged to machine

(C.1) Set up Xcode and tools

c.1.1. Setup Xcode

  • Download from Apple Developer site

    • Go to Apple Developer site and login with your Apple ID.
    • Search for Xcode 9, then download and install.
  • After downloading Xcode_9.xip (above step)

    • Double click on it to extract a new app called Xcode.app
    • Move Xcode.app to /Applications/ folder
  • Install command-line tools

    sudo xcode-select -s /Applications/Xcode.app/Contents/Developer
    xcode-select --install
  • Agree on xcodebuild license
    sudo xcodebuild -license accept

c.1.2. Setup tools

  • Upgrade iTunes app to latest version.

  • Use Homebrew to install tools

    brew install --HEAD ideviceinstaller
    brew install --HEAD libimobiledevice
    brew install ios-deploy
    brew install libplist || brew upgrade libplist
  • Use Homebrew to upgrade openssl
    brew install openssl || brew upgrade openssl

The upgrading is success when you see in console (not 100% exact but similar like this)

    ... (other text)

    ==> Summary
    /usr/local/Cellar/openssl/1.0.2l: 1,709 files, 12.2MB
  • Install isign

    • Allow write permission for Python
        sudo chown -R $(whoami) /Library/Python/{version}/site-packages
    
    • For example:
        sudo chown -R $(whoami) /Library/Python/2.7/site-packages
    
    • Install isign
        git clone https://github.com/kobiton/isign.git ~/isign
        cd ~/isign
        ./INSTALL.sh
    
  • Upgrade iTunes app to the latest version.

(C.2) Preparing iOS signing key files

There are 02 types of iOS apps that will be installed in your devices:

  1. Kobiton apps: these are iOS apps built by Kobiton and are required for Kobiton to do its work.
  2. Your apps: these are iOS apps that you want to run in the devices. Note that we currently don't support skipping signing even if you have already signed your apps.

In order to install these apps in your iOS devices, Kobiton Desktop needs to sign them. To enable the signing process in Kobiton Desktop, you need to prepare iOS signing key files and they will be used in Kobiton Desktop whenever it signs the iOS apps

iOS signing key files are:

  • Certificates.p12: A .p12 file is a specially-formatted and encrypted file that contains your distribution certificate.

  • kobiton.mobileprovision: this is the provisioning profile file downloaded from your Apple developer account. It should also contain your device info (list of device UDIDs).

The provision's App ID should be Xcode iOS Wildcard App ID (TEAMID.*). This is required by Kobiton Desktop`

The preparing iOS signing keys contains group of steps:

  • 1. Create and submit .certsigningrequest to Apple Developer site to create a .cer file

  • 2. Install the .cer to Mac and export the .p12 file

  • 3. Download kobiton.mobileprovision Provisioning Profile file

If you're setting up on many Mac, make sure (C.2.1) and (C.2.2) steps must be done on the single Mac machine

After going through above group of steps, you will have iOS signing keys (Certificates.p12 and kobiton.mobileprovision) and you're ready to move to (C.3) sub-section

c.2.1. Create and submit .certsigningrequest to Apple Developer site to create a .cer file

  • Sign in to Apple Developer site with your Developer account

  • Go to Account, click CertificatesIdentifiers & Profiles.

  • In the drop-down menu in the top left corner, verify that iOStvOSwatchOS is selected.

  • In the left-hand sidebar, select Certificates -> Development.

  • Click +.

  • Select iOS App Development and click Continue.

  • Follow the instructions on screen for creating CSR (Certificate Signing Request), click Continue when completing all steps.

While following the instruction, please noted the Common Name field is used to name the .cer file when it appears in other places like Apple website or KeyChain Access app

  • On the Generate your certificate page, click Choose File.

  • Browse to the location where the CSR file for your certificate signing request is stored, select it and confirm the upload.

  • Click Continue.

  • Click Download to download your certificate.

The downloaded .cer file will be used in next step.

c.2.2. Install the .cer to Mac and export the .p12 file

  • In the Applications folder on your Mac, open the Utilities folder and launch Keychain Access.

  • Within the Keychain Access drop down menu, select File > Add Keychain...

  • Navigate and select the downloaded .cer file from previous step

  • In left panel, make sure login is selected under Keychains and Certificates is selected under Category

  • Then in right panel, find the imported certificate by the Common Name used in previous step. It usually looks like iPhone Developer:

  • Right click on the certificate, select Export "iPhone Developer: ...

  • In the next window, make sure the file format is a “.p12”, choose a filename and destination on your hard drive.

  • Click Save.

  • Finally, you’ll be prompted to set a password – but leave both fields blank.

  • Click OK.

You may be asked for the administrator password of the computer at this stage (possibly twice as there are two files to export). If so, enter the password and click OK.

Now you should now have a .p12 file in your chosen location on your hard drive. This file will be used in next step.

c.2.3. Download kobiton.mobileprovision Provisioning Profile file

  • Enter
    isign_export_creds.sh /path/to/your-exporting.p12 /path/to/output/folder

When the isign tool is installed, the script isign_export_creds.sh is available in $PATH so that you can execute the command from anywhere.

  • If you are prompted for a password, just press Return.

  • When asked Done exporting .... Remove it? [Y/n], enter n

  • When asked Find matching provisioning profile? [Y/n], enter n

  • The end result should look like this:

    ls -l output/.isign
    -r--r--r--    1 alice  staff  2377 Sep  4 14:17 certificate.pem
    -r--------    1 alice  staff  1846 Sep  4 14:17 key.pem

Now you have certificate.pem and key.pem.

c.2.4. Download kobiton.mobileprovision Provisioning Profile file

c.2.4-1. Find Team ID

  • Login to Apple Developer site with your Developer account

  • Go to Account, click Membership.

  • Copy the Team ID, we need it for later step

    find-team-id.png

c.2.3-2. Create Wildcard App ID with Team ID

  • Sign in to Apple Developer site with your Developer account

  • Go to Account, click CertificatesIdentifiers & Profiles.

  • In the drop-down menu in the top left corner, verify that "iOStvOSwatchOS" is selected.

  • Select App IDs under Identifiers

  • Click + on right side

    add-app-id.png

  • On Registering an App ID screen

    • On App ID Prefix, select the value matching with Team ID from above step
    • On App ID Suffix, select Wildcard App ID and enter * on Bundle ID input
    • Other inputs are not required for Kobiton
    • Click Continue, and then click Register

c.2.3-3. Create Provisioning Profile

  • If you haven't added your iOS devices into Apple Developer account, please consult Add iOS devices to add your devices first.

  • Sign in to  Apple Developer site with your Developer account

  • Go to Account, click CertificatesIdentifiers & Profiles.

  • In the drop-down menu in the top left corner, verify that "iOStvOSwatchOS" is selected.

  • Select Development under Provisioning Profiles

  • Click +

    add-pp.png

  • Select iOS App Development ratio option, click Continue

  • Select the App ID created from previous step_, click Continue_

  • Select the cert that you created in this guideline_, click Continue_

  • Select desired devices, click Continue

  • Enter provisioning profile name, click Continue

  • Download the file and click Done

Now you have a provisioning profile in your chosen location, assume its name is kobiton.mobileprovision.

Edit provisioning profile

When you have new iOS device, you need to add new device and then edit the provisioning profile to include new UDID

  • To edit a provisioning profile, select Development under Provisioning Profiles

  • Click on the currently provisioning profile, and click on Edit button

    edit-pp.png

  • Add new devices

  • Click on Generate, download and click on Done

(C.3) Add iOS signing key files to Kobiton Desktop app

  • Launch the Kobiton app.

  • Go to iOS tab as below picture:

    Select Development Certificate .p12 file

    add-iOS-singing-key.png

    Select Provisioning Profile kobiton.mobileprovision file

    add-iOS-singing-key.png

  • Select Update.

Now iOS apps can be installed in your devices.

(C.4) Create Symbol files for iOS device plugged in first time

This step is performed once for a new iOS device that is plugged in for the first time.

  • Plug in the iOS device.

  • Open Xcode, at Window -> Devices and Simulators, select the device has just been plugged in.

  • Wait until Processing symbol files is finished.

    install_symbol_files.png

  • Then move to the next iOS device.

FAQ and troubleshooting

FAQ

1. How to find Kobiton's logs folder

  • Locates at /Users/$(whoami)/Library/Application\ Support/Kobiton/logs

2. How to download Kobiton debug build

  • Locates at https://s3.amazonaws.com/kobiton-us-east/downloads/desktop/kobiton-osx-debug.dmg

Troubleshooting

1. Missing Command Line Tools

  • Execute the  command sudo xcodebuild -license and get the error as below:
    xcode-select: error: tool 'xcodebuild' requires Xcode, but active developer directory '/Library/Developer/CommandLineTools' is a command line tools instance xcode-select --install

Identify problem

  • Missing Command Line Tools

Action

  • Execute the command below on Terminal:
    xcode-select --install

Increase open file number

Increase the maximum number of open files

You must increase the maximum number of open files to more than 2000. Complete the following steps to set up your computer:

Reference article

Check the current maximum number of open files as follows:

  $ ulimit -n

If the result is more than 2000, do not compete the rest of these steps. If the number is fewer than 2000, you must complete the rest of the steps.

  1. Copy limit.maxfiles.plist into /Library/LaunchDaemons/limit.maxfiles.plist as follows (or download here)
  <?xml version="1.0" encoding="UTF-8"?>
  <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
  <plist version="1.0">
  <dict>
    <key>Label</key>
    <string>limit.maxfiles</string>
    <key>ProgramArguments</key>
    <array>
      <string>launchctl</string>
      <string>limit</string>
      <string>maxfiles</string>
      <string>65000</string>
      <string>65000</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
    <key>ServiceIPC</key>
    <false/>
  </dict>
  </plist>
  1. Copy_ limit.maxproc.plist_ into /Library/LaunchDaemons/limit.maxproc.plist as follows (or download here)
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple/DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version="1.0">
      <dict>
        <key>Label</key>
          <string>limit.maxproc</string>
        <key>ProgramArguments</key>
          <array>
            <string>launchctl</string>
            <string>limit</string>
            <string>maxproc</string>
            <string>2048</string>
            <string>2048</string>
          </array>
        <key>RunAtLoad</key>
          <true />
        <key>ServiceIPC</key>
          <false />
      </dict>
    </plist>
  1. Change ownership of the above files to root:wheel:

      sudo chown root:wheel /Library/LaunchDaemons/limit.maxfiles.plist  
      sudo chown root:wheel /Library/LaunchDaemons/limit.maxproc.plist
    
    1. Apply them as follows:
      sudo launchctl load -w /Library/LaunchDaemons/limit.maxfiles.plist
      sudo launchctl load -w /Library/LaunchDaemons/limit.maxproc.plist
    
    1. Reboot your computer.
    2. Verify the new limit is applied as follows:
      ulimit -n
    

Plugging devices

How to arrange devices on the surface

  • Put the devices on shelves
  • The device’s back should be located on the shelf surface, with the screen facing upward, like the image below

phone-position.jpeg

Optimal configuration for plugging in devices

Notes about USB 2.0 speed limitation

In order to provide a reasonable frame per second rate on iOS devices, the captured screen is sent from the device in large raw format (500KB - 6MB per frame). Because the data will be transferred between the device and hosting machine at USB 2.0 speed, you should only connect a small number of devices to each USB port for streamlined efficiency.

Devices are categorized into the following groups:

Group A: To produce the maximum 5-10 fps (1MB/frame), the following iOS devices should be plugged into the USB hub at a maximum volume of 4 devices at a time:

  • iPhone 4S
  • iPhone 5 (model A1428, AT&T/Canada)
  • iPhone 5 (model A1429, everything else)
  • iPhone 5c (model A1456, A1532 | GSM)
  • iPhone 5c (model A1507, A1516, A1526 (China), A1529 | Global)
  • iPad 2
  • iPad Mini

Group B: To produce the maximum 5-6 fps (2MB/frame), the following iOS devices should be plugged into the USB hub at a maximum volume of 3 devices at a time:

  • 2nd Generation iPad Mini - Wifi
  • 2nd Generation iPad Mini - Cellular
  • 3rd Generation iPad Mini - Wifi (model A1599)

Group C: To produce the maximum 2 fps (5-8MB/frame), the following iOS devices should be plugged into the USB 1 at a time:

  • 3rd Generation iPad
  • 4th Generation iPad
  • 5th Generation iPad (iPad Air) - Wifi
  • 5th Generation iPad (iPad Air) - Cellular

Group D: Any devices that aren’t listed in groups A, B, or C

Plugging group devices into a Mac

  • General Rules:

    • 3 is the maximum number of tablet devices per USB hub that allows for sufficient charging power
    • 10 is the maximum number of Android devices that a Mac can recognize
    • 10 is the maximum number of iOS devices that a Mac can recognize
    • 15 is the maximum number of devices (despite OS) that can be plugged into a Mac
  • Below are sample scenarios of device grouping configurations using a 7-port USB hub. In the following scenarios, the 7-port hub is connected to a Mac machine via a single USB port. You can use multiple USB hubs as long as the general rules above are met.

    • 1 Group C device, plus 3 Group D devices
    • 3 Group B devices
    • 4 Group A devices
    • 7 Group D devices

Troubleshooting unlisted devices

If the Kobiton Desktop App does not recognize your Android device, verify that the device is correctly connected to the USB port and that the correct USB driver is installed. For more information about installing OEM USB drivers, refer to this Android Studio article.

Installing a USB device

http://windows.microsoft.com/en-gb/windows/install-usb-device#1TC=windows-7

Install OEM USB Drivers

https://developer.android.com/studio/run/oem-usb.html

Managing your devices as an organization

With Kobiton, your organization can manage its device infrastructure for manual and automation testing. To use your devices with Kobiton, you must download the Kobiton Desktop App, available from the download menu. Connect your devices to your computer and activate the devices using the Kobiton Desktop App. The organization feature allows an organization to use device infrastructure from different locations.

The following descriptions explain some of the features of the Kobiton Desktop App:

No. Description
1 KBB Devices (1) shows all the devices you have registered in the Kobiton cloud with the Kobiton Desktop App. KBB is the organization name that you can modify for your organization. 
2 Use the star icon (2) to mark a device as a favorite. Devices marked as favorites appear in the Favorite Devices (5) section.
3 Use the “i” icon (3) to view device information, such as model name, OS version and screen resolution.
4 Use the gear icon (4) to generate the Desired Capabilities for your automation test.
5 "Favorite Devices" shows the frequently tested devices you have selected for convenient access.
6 The green icon (6) indicates the device is available for testing, and the cloud icon (6) indicates the device is a Kobiton device.
7 The red icon (7) indicates the device is not available for testing, and the cloud icon (7) indicates the device is a Kobiton device.
8 Devices without a cloud icon (8) are your devices.
9 The Kobiton Cloud Devices (9) section shows all the Kobiton devices.

Org-dev-user.png

Using the Kobiton Desktop App

Kobiton Desktop App

The Kobiton Desktop App works for organizations who want to use their mobile devices along with Kobiton devices for manual and automation testing. All Kobiton users must download the Kobiton Desktop App and register all mobile devices in the Kobiton cloud. Currently available for Mac OS, the Kobiton Desktop App tracks devices, their current states and the monthly usage hours of each device.

desktop-app.png

Explore the following resources to get started with the Kobiton Desktop App:

Kobiton Device Lists

Latest devices added to Kobiton mobile cloud

No. Device Name OS version
1 Samsung Galaxy S8 7.0
2 Samsung Galaxy S8+ 7.0
3 Iphone 8 11.0 / 11.0.2
4 Iphone 8 Plus 11.0
5 Nokia 6 7.1.1
6 Google Pixel XL 7.1.2
7 HTC U11 7.1.1
8 LG G6 7.0

Trial Cloud - Total 30 Devices

No. Device Name OS version
1 iPad Air 2 (Wi-Fi) 10.3.2
2 iPhone 6 Plus 10.1
3 iPhone 6s 10.3.1
4 iPhone 6s Plus 10.1
5 iPhone 7 10.3.1
6 iPhone 7 Plus 10.3.3
7 iPhone 6s 11.0
8 iPhone 5s (GSM) 11.0
9 Galaxy A7(2017) 6.0.1
10 Galaxy J3(2016) 6.0.1
11 Galaxy J7 Prime 6.0.1
12 Galaxy Note4 5.1.1
13 Galaxy Note5 6.0.1
14 Galaxy S5 6.0.1
15 Galaxy S6 Edge 6.0.1
16 Galaxy S7 7.0
17 Galaxy S7 Edge 7.0
18 Lenovo Yoga TAB3 Plus 6.0.1
19 LG G5 6.0.1
20 Moto G (3rd Gen) 5.1.1
21 Moto G (3rd Gen) 6.0
22 Moto G Plus (5th Gen) 7.0
23 Nexus 5 4.4.2
24 Nexus 5X 7.1.1
25 SONY G8142 7.1.1
26 Xperia XA Ultra 6.0
27 Pixel XL 7.1.2
28 HTC U11 7.1.1
29 Galaxy J7 Prime 6.0.1
30 Galaxy Tab S3 7.0

Public Cloud - Total 300+ Devices

No. Device Name OS version
1 Iphone 8 11.0
2 Iphone 8 11.0.2
3 Iphone 8 plus 11.0
4 iPad Mini 3 11.0
5 iPad Air 2 (Wi-Fi) 10.1.1
6 iPad Air 2 (Wi-Fi) 10.3.2
7 iPad Air 2 (Wi-Fi) 9.3.4
8 iPad mini 3G (Cellular) 10.0.2
9 iPad mini 3G (Cellular) 10.2
10 iPad mini 4G (Cellular) 10.0.2
11 iPad mini 4G (Cellular) 11.0
12 iPad mini 4G (Wi-Fi) 9.3.5
13 iPad Pro 10.5 (Wi-Fi) 10.3.2
14 iPad Pro 10.5 (Wi-Fi) 11.0
15 iPad Pro 12.9 (Wi-Fi) 10.3.2
16 iPad Pro 12.9 (Wi-Fi) 10.3.3
17 iPad Pro 12.9 (Wi-Fi) 11.0
18 iPad Pro 12.9 (Wi-Fi) 9.3.3
19 iPad Pro 9.7 (Wi-Fi) 10.1.1
20 iPad Pro 9.7 (Wi-Fi) 11.0
21 iPad Pro 9.7 (Wi-Fi) 9.3.3
22 iPhone 5c (GSM) 10.2.1
23 iPhone 5c (GSM) 9.3.1
24 iPhone 5 (Global) 10.3.1
25 iPhone 5 (Global) 9.3.5
26 iPhone 5s (GSM) 10.3.1
27 iPhone 5s (GSM) 9.2
28 iPhone 5s (GSM) 9.3.2
29 iPhone 5s (GSM) 9.3.4
30 iPhone 6 10.3.1
31 iPhone 6 10.3.2
32 iPhone 6 10.3.3
33 iPhone 6 11.0
34 iPhone 6 9.3.4
35 iPhone 6 9.3.5
36 iPhone 6 Plus 10.0.2
37 iPhone 6 Plus 10.1
38 iPhone 6 Plus 10.2
39 iPhone 6 Plus 10.2.1
40 iPhone 6 Plus 11.0
41 iPhone 6 Plus 9.2.1
42 iPhone 6s 10.1.1
43 iPhone 6s 10.2.1
44 iPhone 6s 10.3.1
45 iPhone 6s 11.0
46 iPhone 6s 9.3.5
47 iPhone 6s Plus 10.0.2
48 iPhone 6s Plus 10.1
49 iPhone 6s Plus 10.1.1
50 iPhone 6s Plus 10.2.1
51 iPhone 6s Plus 10.3.1
52 iPhone 6s Plus 11.0
53 iPhone 7 10.0.2
54 iPhone 7 10.0.3
55 iPhone 7 10.2.1
56 iPhone 7 10.3.1
57 iPhone 7 11.0
58 iPhone 7 Plus 10.0.1
59 iPhone 7 Plus 10.0.2
60 iPhone 7 Plus 10.1.1
61 iPhone 7 Plus 10.3.2
62 iPhone 7 Plus 10.3.3
63 iPhone 7 Plus 11.0
64 iPhone SE 11.0
65 iPhone SE 9.3.3
66 G3 Beat 4.4.2
67 G3 S 4.4.2
68 Galaxy A3(2016) 6.0.1
69 Galaxy A3 (2017) 6.0.1
70 Galaxy A5(2017) 6.0.1
71 Galaxy A7 5.0.2
72 Galaxy A7(2016) 6.0.1
73 Galaxy A7(2017) 6.0.1
74 Galaxy A8 5.1.1
75 Galaxy A8(2016) 6.0.1
76 Galaxy C5 6.0.1
77 Galaxy J2 Prime 6.0.1
78 Galaxy J3 5.1.1
79 Galaxy J3(2016) 5.1.1
80 Galaxy J3(2016) 6.0.1
81 Galaxy J5 6.0.1
82 Galaxy J5 Prime 6.0.1
83 Galaxy J7 5.1.1
84 Galaxy J7 6.0.1
85 Galaxy J7(2016) 6.0.1
86 Galaxy J7 Prime 6.0.1
87 Galaxy Note3 5.0
88 Galaxy Note4 5.1.1
89 Galaxy Note4 6.0.1
90 Galaxy Note5 6.0.1
91 Galaxy On5 5.1.1
92 Galaxy On7 5.1.1
93 Galaxy S5 5.0
94 Galaxy S5 6.0.1
95 Galaxy S6 6.0.1
96 Galaxy S6 Edge 6.0.1
97 Galaxy S7 6.0.1
98 Galaxy S7 7.0
99 Galaxy S7 Edge 6.0.1
100 Galaxy S7 Edge 7.0
101 Galaxy Tab S2 8.0 5.0.2
102 Galaxy Tab S2 8.0 6.0.1
103 Galaxy Tab S3 7.0
104 G Pad 8.0 5.0.2
105 NOKIA 6 7.1.1
106 NOKIA 6 7.1.1
107 HTC U11 7.1.1
108 HTC U Play 6.0
109 HTC U Ultra 7.0
110 HUAWEI P10 7.0
111 KEYone 7.1.1
112 LENOVO Tab 4 8.0 7.1.1
113 LENOVO Tab 4 10.0 7.1.1
114 LG G6 7.0
115 LG G4 5.1
116 LG G4 6.0
117 LG G5 6.0.1
118 LG K10 LTE 6.0
119 LG K5 5.1
120 LG K7 5.1.1
121 LG K8 6.0
122 LG Stylus 2 6.0.1
123 LG Stylus2 4G 6.0.1
124 LG X power 6.0.1
125 Moto G (3rd Gen) 6.0
126 Moto G(4) 6.0.1
127 Moto G4 Play 6.0.1
128 Moto G(4) Plus 6.0.1
129 Moto G Plus (5th Gen) 7.0
130 MOTOROLA Moto E (4) 7.1.1
131 MOTOROLA Moto Z2 Play 7.1.1
132 Moto X Play 6.0.1
133 Nexus 5 4.4.3
134 Nexus 5 4.4.4
135 Nexus 5 5.1
136 Nexus 5 6.0.1
137 Nexus 5X 7.0
138 Nexus 5X 7.1.1
139 ONEPLUS 5 7.1.1
140 Pixel 7.1
141 Pixel 7.1.1
142 Pixel 7.1.2
143 Pixel C 7.1.1
144 Pixel XL 7.1.2
145 SAMSUNG Galaxy S8 7.0
146 SAMSUNG Galaxy S8+ 7.0
147 SAMSUNG Galaxy J3 7.0
148 SAMSUNG Galaxy J5 7.0
149 SAMSUNG Galaxy J7 7.0
150 SAMSUNG Note FE 7.0
151 SONY Xperia L1 7.0
152 SONY Xperia XZ 7.1.1
153 V10 5.1.1
154 V20 7.0
155 Xperia E5 6.0
156 Xperia X 6.0.1
157 Xperia XA 6.0
158 Xperia XA Ultra 6.0
159 Xperia X Compact 6.0.1
160 Xperia X Performance 6.0.1
161 Xperia XZ 6.0.1

Kobiton iOS 11's Devices

Kobiton now allows you to try iOS 11 on below iOS devices

No. Device Name Total devices for Trial user Total devices for paying users
1 iPhone SE 1
2 iPhone 5s (GSM) 1
3 iPhone 7 1
4 iPhone 6 Plus 1
5 iPhone 6s 1
6 iPad mini 4G (Cellular) 1
7 iPad Pro 9.7 (Wi-Fi) 1
8 iPad mini 3 1
9 iPad Pro (12.9-inch) 1
10 iPhone 6 1

Release Notes

Check here for the most current information about software updates and improvements to the Kobiton platform.

Kobiton 04/18/2017 Release notes

What's new [Release date: 18-APR-2017]:

New Features:

Payment

  • Support for subscriptions & payment via Visa, Master, Amex, Discover and JCB
  • Support for trial, trial bonus and subscription cancellation
  • Adhoc device slot purchasing

Apps Repo

  • Supports uploading apps, personal or shared to entire org
  • Allow use of uploaded apps in both manual and auto tests

Testing:

  • Supports Appium 1.6.3
  • Captures device and Appium logs
  • Cleans up Safari iOS before quitting session
  • Auto provision settings on Android to improve setup experience
  • Many improvements to device stability

Known issues/limitations:

  • Scrolling is buggy on some machines (we’re fixing)
  • Auto update doesn’t work on some machines (we’re fixing)
  • Uploading apps might fail for IPA packages with too many files (we’re fixing)
  • No support swipe command on 1.6.3 (pending for Appium 1.6.4)
  • No support iOS 10.3 (pending for Appium 1.6.4)
  • Long-press doesn’t work on iOS 10 (pending for Appium 1.6.4)
  • Subscription downgrade, upgrade is not supported
  • Billing history, receipts is not supported

Kobiton 05/30/2017 Release notes

Improvements

Automation Testing

  • Support for Appium 1.6.4, support for iOS 10.3, support for Android 7.1+

Manual Testing

  • Support for iOS 10.3, support for Android 7.1+
  • Improved screen streaming to reduce bandwidth consumption by 50%

Security

  • Prevents downloading .apk and .ipa inside the device

Others

  • Ability to display session in user-configured timezone
  • Kobiton Desktop App now shows detailed steps when initializing devices
  • Documented whitelist approach for app testing behind the firewall
  • Many bug fixes

Customers update

Upgrade notes for customers hosting their own devices

The new Kobiton Desktop app (v1.9.1) requires a few extra steps during the setup process up on a Mac machine. Please follow the instructions below to update the Mac machine to run the new Kobiton Desktop app.

  1. Upgrade Xcode
  • This version of the Kobiton Desktop App requires Xcode 8.3.2. Please download and install this exact version.
  • Launch the Terminal app and run the following commands:
  • sudo xcodebuild -license accept  to accept the new license
  • DevToolsSecurity -enable to enable Development Mode
  • xcode-select --install to update Command Line tools
  • xcodebuild -version to verify the correct version of Xcode (8.3.2) is working properly
  1. Install ffmpeg
  • Launch the Terminal app
  • $ brew install ffmpeg --with-x264
  1. Install Kobiton Desktop
  • Quit the Kobiton Desktop App (if actively running)
  • Login to portal.kobiton.com
  • Click Download to re-download the Kobiton Desktop App
  • Install and launch it

Kobiton 07/17/2017 Release notes

Subscription model

Based on feedback from our customers, we have changed our subscription model to be more flexible and affordable. There are 3 subscription plans.

Trial plan

  • 15-day trial with no credit card requirement
  • Access to 30 real devices
  • All features are included

Indie plan

  • Buy minutes as you go and minutes never expire

Business plan

  • Choose your own minutes and device slots
  • Unused minutes will roll over to the next billing cycle
  • Add more minutes and device slots any time

Improvements

REST API

You can now use our API to seamlessly integrate Kobiton into your CI/CD workflow or development process. Check out the API documentation for more details.

Simulate device location (manual testing)

You can now change device location in Android devices. iOS support will be implemented in a future release.

Video recording (manual testing)

Kobiton automatically records your manual test session and the video can later be accessed in the Session Details page.

Others

  • Reset orientation and remove Google account on Android upon session end
  • Better handling of swiping gesture
  • Many bug fixes and UI updates

Customers update

Upgrade notes for customers plugging in their own devices

  1. Android devices need extra setup so that they can be cleaned up properly upon session end, please follow the step of Change the Settings View Type into List View Type

  2. Due to an upgrade on Auto Update feature, you need to install the latest version of Kobiton Desktop manually

  • Quit the Kobiton Desktop App (if actively running)
  • Login to portal.kobiton.com
  • Click Download to download the Kobiton Desktop App
  • Install and launch it

Kobiton 08/28/2017 Release notes

Improvements

Subscription Enhancements

Trial users can now create organizations, invite users and use our Device Lab Management feature.

We also support plan upgrading for paid users:

  • Indie users can now upgrade to Business plan
  • Business users can now upgrade from monthly to annual plan as well as adjust minutes and device slots

Manual Test Enhancements

  • Support iOS 11 Beta on these devices
  • Support video player in the Session Details page
  • Support changing device timezone for Android
  • Support changing device location for IOS

Automation Test Enhancements

  • Retrieve Kobiton Session ID through 02 requests GET /session/:sessionId and POST /session 

  • Finish a test session immediately after DELETE /session/:sessionId instead of waiting for device cleanup

API Enhancements

  • Endpoint to retrieve user subscription info
  • Endpoint to set a session status

Others

  • Allow users to delete unused in-house devices from Portal and Desktop application
  • Better clean up of iOS devices at the end of a manual session:
    • Clear recent apps
    • Sign out of iTunes account

Customers update

Upgrade notes for customers plugging in their own devices

Install libplist v2.0.0: run command

    brew install libplist

After running the command, the installation is successful if seeing below in console

    ==> Upgrading 1 outdated package, with result:
    libplist 2.0.0
    ==> Upgrading libplist
    ==> Downloading https://homebrew.bintray.com/bottles/libplist-2.0.0.sierra.bottle.tar.gz
    ######################################################################## 100.0%
    ==> Pouring libplist-2.0.0.sierra.bottle.tar.gz
    ==> Using the sandbox
    /usr/local/Cellar/libplist/2.0.0: 31 files, 728.8KB

In case the console prints

    Error: libplist 1.12 is already installed
    To upgrade to 2.0.0, run 'brew upgrade libplist'

You need to run command

    brew upgrade libplist

Upgrade note for customers who plug in their own devices and want to use their iOS 11 beta device

  • Install Xcode 9 beta 4 from here
  • Make sure iOS 11 beta 4 installed on the device, Kobiton doesn't work with newer version at the moment

Known Limitations

  • Manual Test

    • Not support “Long Press Home Button” in iOS 10.0.x - 10.2.x
    • Not support “Double Press Home Button” in iOS >= 10.3
    • Not support Zoom function on 32-bit iOS devices
  • Automation Test

    • Not support automation test on iOS 11 Beta

Kobiton 10/09/2017 Release notes

Improvements

More Devices

Manual Test * Improve gestures: scroll and zoom with mouse or trackpad

  • Support changing device timezone for iOS

  • Support iOS 11

  • Support Android 8

Automation Test

  • Support Appium 1.7.1

  • Support iOS 11

  • Support Android 8

Other Improvements

  • Add statistics for sessions

  • Terminate a running session

  • Exit a manual session after long idle time

  • Require email verification for creating new account

Customers update

Upgrade notes for customers plugging in their own devices

If you're plugging iOS devices, this step is required to be performed in all Mac machines having iOS devices

  • Install libimobiledevice tool
    brew install --HEAD libimobiledevice

Known Limitations

  • Android 8.0 doesn't support changing timezone yet

  • Changing timezone on iOS device may take up to 30 seconds

Kobiton 11/20/2017 Release Notes

Mobile Application Security

  • Scan Android & iOS apps to detect vulnerabilities via App-Ray service

Device Lab Management

  • Improve setup workflow of Kobiton desktop app

Manual Test Enhancements

  • Enhance detailed session data:

    • Add more information: Device info, automation info, Request/Response content
    • Enhance automatic screenshot captured
    • Improve action description
    • Add indicators representing gesture behaviours on captured screenshots
  • Support copy and paste text from user’s desktop to Android devices

  • Support iOS 11.2

Automation Test Enhancements

  • Support set timeout for WebDriver and Appium commands

API Enhancements

Useful Links

External documentation

Kobiton resources

Coming soon: How-to videos

Subscription Model

Based on feedback from our customers, we have changed our subscription model to be more flexible and affordable. There are 3 subscription plans.

Trial plan

  • 15-day trial with no credit card requirement
  • Access to 30 real devices
  • All features are included

Indie plan

  • Buy minutes as you go and minutes never expire

Business plan

  • Choose your own minutes and device slots
  • Unused minutes will roll over to the next billing cycle
  • Add more minutes and device slots anytime

To get further information about the changes, please refer below:

Business subscription

Business users now have full control of their subscriptions via the following functions:

1. Upgrading your Business monthly subscription

Users can upgrade a Business monthly subscription by increasing/decreasing device minutes or device slots, or both.

Step 1: Click the Subscription menu (refer to 1) to access the subscription overview page.

1-step-1.png

Step 2: Click Update Plan (refer to 2 & 3) to see the details of the subscription.

Step 3: Adjust the device minutes or device slots, or both.

1-step-3.png

  • For device minutes, users can increase or decrease the minutes, but the minimum value is 500 minutes.
  • For device slots, users can increase or decrease the device slots but the minimum value is 1 slot.
  • Users can either choose device minutes or device slots or both for their plan.

Step 4: The system will display a notification with details of the new subscription that lists the benefits as well as the effective date.

1-step-4.png

Step 5: Confirm the purchase.

1-step-5.png

2. Canceling your Business subscription

Step 1: Click the Subscription menu (refer to 1) to access the subscription overview page.

Step 2: Click Update Plan (refer to 2 & 3) to access the subscription details.

2-step-2.png

Step 3: Click Cancel Subscription.

2-step-3.png

Step 4: Confirm the cancellation.

2-step-4.png

3. Reactivating your canceled Business subscription

Step 1: Click the Subscription menu (refer to 1) to access the subscription overview page.

3-step-1.png

Step 2: Click Reactivate (refer to 2) to reactivate the subscription.

3-step-2.png

4. Upgrading from a Business monthly to a Business annual plan

Step 1: Click the Subscription menu (refer to 1) to access the subscription overview page.

Step 2: Click Upgrade (refer to 2) to access the subscription details.

4-step-2.png

Step 3: Customize your Business plan (refer to 3) and click Upgrade (refer to 4).

4-step-3.png

Step 4: Confirm the charge amount for upgrading to the Business annual plan.

4-step-4.png

Step 5: Once your upgrade to the Business annual plan is complete you will be re-directed to the Subscription overview page.

4-step-5.png

Indie subscription

1. Buying additional minutes

Step 1: Click the Subscription menu (refer to 1).

Step 2: Input the desired number of additional minutes (refer to 2) for purchase and click Add (refer to 3).

1-step-2.png

Step 3:  Confirm the purchase.

1-step-3.png

Step 4: Verify that the recently purchased minutes have been added to your remaining minutes.

1-step-4.png

2. Upgrading from Indie to Business annual plan

Step 1: Click the Subscription menu (refer to 1) to access the subscription overview page.

Step 2: Click Upgrade (refer to 2) to access the subscription details.

2-step-2.png

Step 3: Select Annual Plan (refer to 3) and click Upgrade (refer to 4).

2-step-3.png

Step 4: Confirm the charge amount for upgrading to the Business annual plan.

2-step-4.png

Step 5: Once you have been upgraded to the Business annual plan you will be re-directed to the Subscription overview page.

2-step-5.png

Trial subscription

Subscribing to an Indie plan or Business plan

Step 1: Access your Subscription 1 of 2 ways:

  1. Click Purchase Now (refer to 1) in the notification bar.
  2. Click the Subscription menu (refer to 2).

step-1.png

Step 2: You will be re-directed to the Indie plan (refer to 3) or Business plan page (refer to 4).

step-2-1.png

step-2-2.png

Step 3: Customizing your plan:

  • With the Indie plan, you can buy additional minutes (refer to 3).
  • With the Business plan, you can customize the number of device minutes or device slots in your monthly or annual subscription (refer to 4).

Step 4: Provide your credit card details and finish the purchase.

step-4.png`

FAQ

General questions

What is Kobiton?

Kobiton is the complete mobile device cloud platform you need to manage the devices you own and to access the real devices you want. Simple to use, easy to access from anywhere, and flexible enough to scale capacity across internal or external devices, Kobiton minimizes costs while increasing productivity. Use Kobiton to get your app to market faster.

Who should use Kobiton?

Companies, agencies or developers who want a more integrated, comprehensive, and cost efficient platform to test their growing mobile app and web initiatives should use Kobiton. Businesses looking for more effective ways to manage the devices they own, scale capacity and increase productivity of their infrastructure can benefit from Kobiton.

What types of applications does Kobiton support?

Kobiton supports web, native and hybrid applications for manual and automation testing.

Does Kobiton use simulators or emulators?

No, Kobiton only uses real devices.

Which OS version does Kobiton support?

Kobiton supports iOS versions 9.0 to 11.2 and Android versions 4.2.2 to 8.0.0.

Does Kobiton support multiple user accounts managed under an Admin account?

Yes, an organization's admin user can invite multiple users to be part of the organization. The admin user is the only user who can add or remove users from the organization's account.

What is the maximum app file size?

Kobiton supports application files up to 500 MB.

Does Kobiton support automatic cleanup of my test session data on the device?

Kobiton automatically uninstalls the application at the end of each manual or automation test session. However, we don't delete data generated during the test. For example, if you log into a website and don't log out during the test, the cookie remains on the machine and the next user can log into the website.

Can my manual or automation test session be interrupted in between active test sessions?

Yes, interruption can happen due to bad network conditions. In some cases, devices might restart before your test is completed.

Do you track any user behavioral data from the Kobiton portal?

Yes, as a part of the Kobiton cloud, Kobiton and its service providers may collect, process, store, modify, aggregate and otherwise use statistics and other data regarding your use of the Kobiton cloud. Kobiton calls this Usage Data, and it includes information such as the number and types of devices tested, the timing and duration of tests, app storage, and so on. Kobiton owns and retains all rights in the Usage Data. Usage Data does not include your session information or the information you provide as part of registration.

Do you store my app, tests and other files on your servers? For how long?

Kobiton automatically uninstalls tested apps after the test session. Kobiton retains test history, including session name, description, screenshots, and logs until you can cancel your account. You can delete the test session at any time.

Does Kobiton modify my application?

On iOS devices, Kobiton re-signs your applications with the Kobiton cloud device UDID. This does not affect your original binary (.ipa). Kobiton does not modify Android applications.

What are the available devices?

Kobiton has a large (and growing) selection of iOS and Android devices, including both older and the latest models. See the list of Kobiton devices.

How can I select a device for testing? Can I retest on the same device?

Access all available devices via the Device Menu. You can retest on the same exact device within your organization. However, Kobiton assigns cloud devices based on your desired configuration, making it difficult to guarantee the ability to test on the same device in future test sessions.

Can I request that a device be added to the Kobiton cloud?

Yes, open a support ticket and request the device and specific OS version you are looking for. We will fulfill requests based on demand.

Are there any apps pre-installed on Kobiton devices?

Yes, devices can have a number of apps pre-installed by the device manufacturer or carrier.

Can I make phone calls or send SMS from the devices?

No.

Can I use the device camera?

Yes, you can use the device cameras, both front and rear facing. However, due to the way the devices are mounted, images and videos may look dark and blurry.

What are concurrent tests?

Concurrent tests for automation testing: The number of devices executing your test scripts in parallel during an automation test session.

Are there limits to concurrent testing?

No.

Can I change/simulate a device's location with Kobiton?

Yes, you can change the device location on both Android and iOS devices during manual test sessions.

Can I change a device's timezone with Kobiton?

Yes, currently you can only change the device timezone on Android devices during manual test sessions.

Can I watch a video recording of my test session?

Yes, Kobiton automatically records a video file of every manual test session. You can watch the video inside of the Kobiton portal, or by downloading it and watching on your own player, by going to sessions > video.

Does Kobiton have an API that allows me to integrate my testing with my CI/CD workflow?

Yes, please visit our API documentation.

Free trial and pricing

I’d like to trial Kobiton. Is a trial available?

Yes! You can begin your free trial today. Once you successfully Sign Up for your trial account and login, "Select A Device" and start testing! Contact us if you need help getting started.

How does the free trial work?

The trial period gives you 120 device minutes to use over the course of 15 days. Please see more details on our pricing page.

Users can cancel the trial anytime during the trial period.

Can I extend my trial?

Yes. If you add members or internal devices to your organization account, your trial period will extend to 30 days. To extend your trial minutes, please Contact us.

I want to evaluate Kobiton as a team during my trial. How can I do that?

To add uses to your trial account, go to settings > organization and type the email address of the person you would like to invite to your team.

I want to add internal devices to my trial evaluation. How can I do that?

To add internal devices to your trial account, first download the Kobiton desktop application and then follow he steps outlined in this article.

How many of my own internal devices can I use with Kobiton during my trial?

There is no limit to the number of internal devices you can use with our device lab management feature during the trial.

How many concurrent sessions can I run during my trial?

There is no limit to how many concurrent sessions you can run during your trial period.

How much does Kobiton cost?

Pricing is based on the subscription plan you choose. Please see more details on our pricing page.

How do you charge the overages minutes?

You can continue testing on Kobiton devices after you have used all your subscription minutes. Overage charges are charged at the rate of $0.14 per device minute and are billed at the end of the month.

Can I buy additional device slots?

Yes, however you can only buy additional device slots with the Business plan. Additional device slots are available to you immediately.

When I use my in-house devices, does Kobiton charge me for device minutes, and is there a limit for concurrent sessions on in-house devices?

No, Kobiton does not charge for device minutes or limit concurrent sessions on your in-house devices.

How does Kobiton calculate the device minutes?

Kobiton starts calculating device minutes when you begin a test session on a Kobiton cloud device.

When I close a device or exit the browser, does that mean the device is released and I'm no longer being charged?

Yes, when you close a device or exit the browser, Kobiton immediately releases the device and stops charging you for device minutes.

Can I upgrade and downgrade plans at any time?

Currently, Kobiton only supports upgrading from Indie to Business, and rom Business monthly to Business annual, but not vice versa. Please Contact us if you need to downgrade your subscription.

Are all plans auto-renewed?

No, only Business plans auto-renew. However users may cancel their subscription at anytime.

Which payment methods do you accept?

Kobiton accepts credit cards and PayPal.

Will I receive an invoice?

Yes, Kobiton will send you a payment invoice via email.

What will happen to my current account/plan as a result of the changes?

Your account will automatically be reset to a billing period beginning July 17, 2017. You will not see any changes to the number of remaining minutes in your account.

As an Indie plan user, will I be charged again for creating a new account?

No, we will rollover any unused minutes to your new Indie subscription without charging your credit card again.

As an Indie, is there a minimum number of minutes I must commit to before I can purchase?

Yes, you must purchase at least 100 minutes ($10). There is no maximum.

As an Indie, can I cancel my account if I no longer want to test with Kobiton?

With our new pricing model and plan options, Indies are now pre-paid (or pay as you go) and not on a subscription. You don't have to worry about your credit card being charged at anytime unless you manually elect to purchase additional minutes. If you would still like to cancel for any reason, please contact us via a support ticket.

As a business plan user, will I be charged again for creating a new account?

We refunded you the amount you paid for the month leading up to the pricing change, and the charged your card again for the total amount of the subscription (transferring your exact plan details), effectively resulting in $0 change to your bank or credit balance.

What do I have to do for my plan/account to be reset?

Nothing, just log into the Kobiton portal as usual with the same username and password. You will have the same minutes balance as you had prior to the transition, with the option to purchase more minutes if desired.

How can I purchase additional minutes as an Indie?

By going to the subscription tab in the admin portal and changing the quantity of minutes to your desired amount. The minimum number of minutes for each additional purchase is 100.

How much is each additional minute?

Kobiton charges $0.10 per device minute, but you cannot purchase less than 100 minutes ($10) at a time.

How long do the minutes remain in my account after purchase?

Kobiton minutes never expire for Indies. You can use them whenever you want, no matter how long ago you purchased them. Minutes continue to rollover month-to-month for the Business plan.

As a Business plan user, if I purchase minutes or device slots during the middle of my billing cycle, when will they be available for use?

All upgrades made to business accounts take effect immediately. Any upgrades to your plan will be implemented for the current month, as well as all subsequent months until you change the plan details again. Any downgrades will take effect during the following billing cycle.

As a Business plan user, if I purchase device slots in the middle of my billing cycle, will the charges be prorated?

No, we do not prorate device slots.

As a Business plan user, is there a minimum number of minutes/device slots I must commit to before I can purchase a biz plan?

Yes, you must purchase at least 500 minutes ($50) at a time with business accounts. Any amount above that, including $51, is fine. OR you must purchase at least 1 device slot ($30) to activate a business account.

As a Business plan user, is there a minimum number of minutes/device slots I must purchase when upgrading my plan?

Yes, you must purchase minutes in blocks of at least $50 (500 mins at a time).

As a Business plan user, Is there a maximum number of minutes I can purchase?

No, we do not have a max limitation on number of minutes or device slots.

As a Business plan user, how long do the minutes remain in my account after purchase?

Minutes roll over from month to month and are available for the life of your subscription/contract with us. Your minutes will continue to accrue until your service is terminated.

Apps Repository

What is app repository?

The Apps repository is a storage place in Kobiton for your apps. By storing your apps in the app repository, you can access and test them anytime from anywhere.

I am an organization account user, can I delete apps uploaded by other users in the organization?

No, you can only delete apps you have uploaded. However, you can see the user's public apps and use them for manual and automation testing purposes.

Can i manage multiple version of the app in the App repository?

Yes, you can add multiple versions of your app to the app repository.

Is my application safe in the App repository?

Yes, apps in the repository are only visible to your organization members. There is no public access.

Does the Apps repository support the .zip file format?

Yes, If you create your iOS application as a .app directory with multiple files, you need to export it as a .zip file before uploading. If you have created your app as a .ipa file, you can upload that file directly without needing to zip it up.

Automation testing

Which automation frameworks does Kobiton support?

Kobiton supports the Appium Framework for web application testing on both iOS and Android.

How can I enable screenshot capturing for automation or manual test sessions?

By default, Kobiton automatically records each action performed with a screenshot. To view this setting, hover over your device and select Show automation settings. From here, you can toggle Allow screen capture on and off.

Is there a default Google account on the Android devices?

Yes, each Kobiton device has an active Google account configured on it.

Does Kobiton support recording HTTP commands for automation test?

Kobiton records all automation commands and captures screenshots associated with each command.

For Kobiton iOS devices, do I need to sign the app with a provisioning profile that includes the device UDID?

No, just upload your binary (.ipa file).

For internal iOS, do I need to sign the app with the provisioning profile that includes the organization device UDID?

Yes, you are required to sign the app with the provisioning profile that includes your organization device UDID, so Kobiton can deploy the UDID to your organization devices.

Can I access the machine hosting the Kobiton cloud device or access its shell as part of my tests? Can I access the Internet from the host machine?

No. If you need Internet access from the host machine, please contact us.

How long does it take before automation tests start?

If devices are available, tests usually start within a minute; otherwise, you will receive an error. In future releases, Kobiton plans to support queuing capability and your tests will be queued and executed once the devices are available.

Python selenium client fails to initialize a remote driver using HTTPS Kobiton endpoint with the following error message, how can I fix?

"CertificateError: hostname 'x.x.x.x' doesn't match either of api.kobiton.com"
That is an known issue of Python Selenium client, you have to update your script for remote driver initialization as below:

self.kobitonServerUrl = "https://username:APIKey@api.kobiton.com/wd/hub"
self._command_executor = RemoteConnection(self.kobitonServerUrl, resolve_ip=False)
self.driver = webdriver.Remote(self._command_executor, configs.desired_caps_android_web)
How to customize newCommandTimeout in Katalon Studio?

1. Retrieve Automation settings from your Kobiton device.

2. On Katalon application, open Project -> Settings -> Execution -> Remote as here

3. Input automation settings along with newCommandTimeout settings retrieved from step #1 to this form:

customize-new-command-timeout.png

4. Execute selected test script using "Remote" option as here

How to handle app permission popup in Appium test?

Append the following capabilities, below is a sample java snippet:

Android 6:

capabilities.setCapability("appWaitPackage", "com.android.packageinstaller");
capabilities.setCapability("appWaitActivity", ".permission.ui.GrantPermissionsActivity");

Android 7:

capabilities.setCapability("appWaitPackage", "com.google.android.packageinstaller");
capabilities.setCapability("appWaitActivity","com.android.packageinstaller.permission.ui.GrantPermissionsActivity");

Buttons in dialog have ids:

  • "permission_deny_button"
  • "permission_allow_button"

Use:

driver.findElementById("com.android.packageinstaller:id/permission_allow_button").click();
driver.findElementById("com.android.packageinstaller:id/permission_deny_button").click();

Device management

What is Kobiton device management?

Kobiton device management allows you to use your own devices or your organization’s devices with Kobiton manual and automation testing. You are responsible for all telecommunications services (telephone, data, Internet, etc.) with respect to your devices. Kobiton is not responsible for data usage or any other charges between you and your service provider that you may incur while using your device during Kobiton testing.

What are organization devices?

Using the Kobiton Desktop App, if you are a user within an organization, devices plugged in by you and your organization appear as Organization Devices [Organization Name].

Which Kobiton subscription plans support the device management feature?

The Business subscription plan supports the device management feature.

How do the device slots work?

You can plug in any number of devices using the Kobiton Desktop app, but you can activate only the number of devices per the slots purchased.

Does Kobiton install any applications on my devices?

Yes, Kobiton must install applications on your devices to make your device available in the Kobiton service for manual/automation testing.

Does Kobiton collect my device information?

Yes, Kobiton collects device information such as device name, OS version, and UDID. Kobiton requires the unique identity of your devices to execute manual and automation tests on them.

Where can I get the log files for Kobiton Desktop app?

You can find Kobiton logs at /Users/{username}/Library/Application Support/Kobiton/logs (replace {username} with your real username)

What if my device is damaged (either a software or hardware issue) by using Kobiton device management?

You use your devices with Kobiton at your own risk. Kobiton cannot be held liable for any type of damage caused to your devices.

Security

General security

Does Kobiton keep my application on the device I have tested?

No, Kobiton automatically uninstalls any installed apps when you end the test session. However, Kobiton only uninstalls apps; you must clean up other data created or used during the test session.

Are there any restrictions on testing a particular domain app?

Yes, Kobiton prohibits testing apps that are used for hacking or malware distribution. We also recommend not exposing apps that contain sensitive personal or financial information such as healthcare apps or banking apps.

What should I do if I observe a security breach?

Notify Kobiton immediately for any unauthorized access of your ID, password, or any other known or suspected breach of security with respect to your use of Kobiton.

Is it safe to test my application on Kobiton devices?

Yes, however, we recommend you do not test apps in the cloud that contain sensitive personal and financial information such as healthcare apps or banking apps.

Will anyone else be able to access my app or the device during a testing session?

No, the Kobiton cloud device is only available to you once a test session has started. Kobiton protects your apps, and they are not accessible to anyone during or immediately after a test session. Kobiton automatically uninstalls the app after you complete the test session.

When I am testing on a device, are any other apps using the device at the same time?

While no one else will be testing on the device at the same time, there are always apps using the device such as pre-installed apps, system apps, services, etc. These apps should not interfere with your testing sessions.

Will the automatic activity logs created during a testing session be available to anyone else but me?

Yes, all members of your organization can access the test session data. For an individual tester account, the session log is available only to the account owner.

I once began a test session on a Kobiton Android device and was able to see the left over Google account credentials from the previous tester. How do I keep my information private?

Kobiton now removes all Google account information on Android devices at the end of a test session, but you you should always verify that your information has be wiped just to be sure.

App-Ray security

What is the benefit of the App-Ray integration?

Our integration with App-Ray scans all Android and iOS devices to detect vulnerabilities that could compromise the security of public Kobiton cloud devices. This is a community safety measure that benefits all users.

What type of security threats/risk is App-Ray scanning for?

There are more than 50 threats that App-Ray will scan for, ranging from critical issues such as virus, device admin, etc., to minor issues such as contact read, camera usage, etc.

My app was flagged for risk. What should I do next?

You may have to submit a request for bypass approval. We will then review/verify the app and your account internally before making a decision.

What's the difference in criteria between "no risk" and "security approved"?

No risk means an app has been scanned and there is no risk detected. Security approved means the app bypass request was approved by Kobiton and the app can now be installed on Kobiton devices.

Can I still test my app even if it's flagged for "security risk detected" ?

No, you must submit a request for bypass approval.

How do I change my app from "security risk detected" to "security approved"?

You must submit a request for bypass approval. Kobiton will then verify the information and approve/reject the bypass request accordingly.

I believe my app was incorrectly flagged for security threats. How do I dispute this?

This is unlikely, as we are confident in the App-Ray scanning technology. However, in the event that you do not agree with a app scan result, please email support or create a support ticket inside the portal.

We have done everything on our end to resolve the detected threats but the app still cannot be installed, what should we do next?

Please send an email to Kobiton at support@kobiton.com

My app has been flagged for "security risk detected" can I still install it on my in-house devices?

Yes, apps detected for critical risks are only prohibited from installation on public Kobiton cloud devices.

Local Testing / VPN

Scenario

You have websites or services that are behind a firewall and you want to use Kobiton devices to access these websites or services.

Solution

There are 2 ways for Kobiton devices to access internal websites or services.

1. Whitelist the IP address for Kobiton devices

All Kobiton devices connect to the Internet via the same public IP 72.28.119.198. You can configure your firewall to enable incoming traffic from 72.28.119.198 and route it to your internal websites or services.

Below is a possible workflow to configure the network:

  • Request a public static IP from your network provider, (e.g. 175.5.5.10).

  • Configure the firewall to route traffic from 175.5.5.10 to the website or service in question if it originated from 72.28.119.198 (Kobiton devices).

  • (Optional) If you have a domain (e.g. mycompany.com), you can create a sub-domain for your internal site. Just create an A record on DNS (e.g. mysite.mycompany.com) and map it to the public static IP (e.g. 175.5.5.10).

If you have multiple websites or services, request multiple static IPs and add more routing entries to the firewall as shown in step 2 above.

After completing the above steps, Kobiton devices will be able to access an internal website or service via the corresponding IP address or domain.

2. Setup a tunnel to your local machine

You can use any tunneling service to temporarily establish a public tunnel into your machine. Once that tunnel is created, you can access your websites or services on Kobiton devices by using the public domain names generated by the tunneling service. Below are some popular services:

  • The above third-party services are not related to Kobiton in anyway. Please use them at your own discretion.
  • If the websites or services don't run on your machine, try changing the hostname of the websites and services to the public domain names generated by the tunneling service, then run a lightweight reverse proxy locally to forward traffic from the public tunnel to the internal websites and services. Below is a simple configuration to setup nginx as a reverse proxy.
# These are default settings from nginx
worker_processes 1;
daemon off;
events {
  worker_connections 1012;
}
http {
  server {
    # This is the port in your machine that proxied requests from tunneling service go to 
    listen 8000;

    server_name localhost; 

    # Proxy requests from tunneling service to internal websites / services
    location / {
      # The hostname of your internal websites / services should be renamed
      # to the generated public domain from the tunneling service
      # If you use ngrok.com, you see something like "ebe01685.ngrok.io"
      proxy_pass http://ebe01685.ngrok.io;
    }
  }
}

Test history

What is session information and what does it include?

Session information is a test session record created when you perform manual or automation testing with Kobiton. Session information can include the information contained in your app and records of your test outcomes, such as deices screens shots.

Session information does not include any usage at a or information specific to Kobiton, including the following: functionality, performance, underlying technology, or any other Kobiton confidential information.

You are responsible for removing your apps from Kobiton. If you have not removed your app within a reasonable time after the end of each testing session, you acknowledge that Kobiton may delete the app, but Kobiton is not obligated to do so.

What does a Kobiton test session include?

Kobiton test sessions include session name, description, HTTP commands, actions performed, device logs, screenshots, metadata, etc.

Which device logs are included in a Kobiton test session?

Kobiton test sessions inclulde complete iOS system and Logcat log captures.

Can I download or export my test session?

No, the current release only supports downloading the screenshots from a test session.

Can I record a video of my test session?

Yes, Kobiton automatically records your manual test session. The video can be accessed via the Session Details page.

Privacy

What does Kobiton do on the device when a manual or automation testing ends?

Below actions will be performed on the device when testing session ends:

1. Remove apps installed within the session.

2. Exit from running app if any.

3. Clear browser history and bookmarks:

  • (only on iOS) Safari.
  • (only on Android) Chrome, Android browser, HTC browser, Asus browser, and Samsung browser.

4. (Only on Android) Remove logged-in accounts in Settings.

Fraudulent Credit/Debit card charges

I am being charged for Kobiton but I have never signed up or used the service. Will you refund my money?

We're sorry to hear that your credit/debit card information has been compromised.

Unfortunately, Kobiton cannot issue a refund in this case; however here are the steps you should take to resolve the issue and retrieve your money:

  1. Create a Zendesk ticket or send an email to support@kobiton.com notifying us of the potential threat so that we may suspend the account.

  2. Immediately contact your bank or credit card company and notify them of any charges you suspect to be fraudulent.

  3. Request a refund from your financial institution.

  4. Shut down and/or cancel your card per your financial institution's direction.

  5. If you need further support from Kobiton, continue the conversation on the previously created Zendesk ticket or email thread via support@kobiton.com and we will be happy to assist you to the best of our ability.

In general, due to the recent breach of Equifax, if you suspect you may be a victim of identity theft or credit card fraud, please read over the following resources for precautions and resolution:

Knows limitations and issues

Automation Testing

Kobiton doesn't respect user-specified Appium timeouts, which determine how long a command can take before the session is terminated.

Instead, Kobiton uses its own timeouts which override all of the above.

The command "/session//execute_async" (JsonWire protocol) always produces timeout error on the iOS device.

Manual Testing

iOS Devices

  • iPhone 4, 4S, 5, 5C
  • iPad 2, 3, 4, mini 1
  • iPod Touch 5
  • Kobiton only cleans up data of Safari browser; data from other browsers like Firefox or Chrome is NOT cleaned up at all.
  • Kobiton prevents users from making changes that could break the devices. For instance, users can't perform the following activities: set passcode, user iCloudbackup and keychain, change WiFi settings, etc.
  • Long-press on Home button doesn't work in iOS 10.0.x - 10.2.x
  • Double-press on Home button doesn't in iOS >= 10.3

Android

  • Kobiton prevents users from accessing the Settings screen to keep them from making changes that could break the devices.

IE 11 and Edge browser

  • There is a known issue on video buffering in IE which causes a time delay (up to 11 seconds) in streaming the device screen to the IE 11 and Edge.
Others

For both manual/auto session, on Android Kobiton devices, Kobiton will clean up the app list on Recent App panel at the end of a test session.

App-Ray Security Threats

Critical Risks Definition

Kobiton has just launched the app scanning process powered by App-Ray. Below are the threats which we consider as CRITICAL:

App-Ray Threat Explanation OWASP Top Ten Category
BINARY_BUSYBOX The app accesses the busybox binary, a multi-call binary. A multi-call binary is an executable program that performs the same job as more than one utility program. That means there is just a single BusyBox binary, but that single binary acts like a large number of utilities M1 – Improper Platform Usage
BINARY_SU The app accesses the su binary. It can use a security vulnerability ("root exploit") and "hard-rooting" by flashing a su binary executable, to gain root access without modifying the system partition of a device M1 – Improper Platform Usage
DEVICEADMIN The app contains a Broadcast Receiver that can acquire device admin rights M1 – Improper Platform Usage
FACTORYTEST The app has the FACTORY_TEST permission set M10 – Extraneous Functionality
VIRUS Virus scanners recognize this as malicious M7 – Client Code Quality

You need to submit ticket to bypass these types of threats including below information:

* The current company you are working for:
* Link to your app on appstore/playstore if any:
* The purpose/actions your app performs: