diff --git a/assets/images/real-device-app-testing/passcodeenabled.png b/assets/images/real-device-app-testing/passcodeenabled.png new file mode 100644 index 000000000..2f9312d93 Binary files /dev/null and b/assets/images/real-device-app-testing/passcodeenabled.png differ diff --git a/assets/images/real-device-app-testing/passcodetoggle.png b/assets/images/real-device-app-testing/passcodetoggle.png new file mode 100644 index 000000000..bf4a0cafc Binary files /dev/null and b/assets/images/real-device-app-testing/passcodetoggle.png differ diff --git a/docs/device-passcode-appautomation.md b/docs/device-passcode-appautomation.md new file mode 100644 index 000000000..f398ff237 --- /dev/null +++ b/docs/device-passcode-appautomation.md @@ -0,0 +1,114 @@ +--- +id: device-passcode-appautomation +title: Device Passcode in App Automation on Real iOS Devices +sidebar_label: Device Passcode +description: Run automated tests on iOS apps that require a device passcode during execution on real devices. +keywords: + - device passcode automation + - ios passcode + - appium automation + - authentication testing + - security testing + - mdm apps + - enterprise apps + - lambdatest ios + - real devices +url: https://www.lambdatest.com/support/docs/device-passcode-appautomation/ +site_name: LambdaTest +slug: device-passcode-appautomation/ +--- + +import CodeBlock from '@theme/CodeBlock'; +import { YOUR_LAMBDATEST_USERNAME, YOUR_LAMBDATEST_ACCESS_KEY } from "@site/src/component/keys"; + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + + + +> To enable it for your organization, please contact us via window.openLTChatWidget()}>**24×7 chat support** or you can also drop a mail to **support@lambdatest.com**.
+ +For certain use cases, you may need to perform tests on devices that are **passcode-protected**. Apps handling sensitive data (for example, **banking apps**, **enterprise apps**, or apps distributed through **MDM**) often enforce device passcodes for enhanced security. + +LambdaTest’s **Device Passcode in Automation** enables you to run such automated tests seamlessly on real iOS devices. + +--- + +## Use Cases + +- Validate apps requiring a system passcode prompt before login or secure workflows. +- Ensure authentication flows function correctly when the device is protected by a passcode. +- Automate enterprise test cases where passcodes are enforced by MDM policies. + +--- + +## Supported Devices + +Currently, the Device Passcode feature in **App Automation** is enabled on the following iOS real devices: + +| Device Model | iOS Version | +|-----------------------|-------------| +| iPhone 16 | 18 | +| iPhone 16 Pro | 18 | +| iPad Air 11 (2024) | 18 | +| iPhone 15 | 17 | +| iPhone 14 | 16 | +| iPhone 13 | 15 | + +> We are actively working on expanding coverage to **all supported iOS devices** on LambdaTest Real Device Cloud. +--- + +## Capability to Enable Passcode + +Use the `enablePasscode` capability to enable passcode-protected devices for automation testing. + +| Capability | Type | Default | Description | +|-----------------|---------|---------|-------------| +| **enablePasscode** | Boolean | `false` | Enable passcode devices for running tests. Use `true` to start the session with a system passcode configured (default passcode: `123456`). | + + + +```python +{ + "platformName": "ios", + "deviceName": "iPhone 16", + "platformVersion": "18", + "isRealMobile": True, + #highlight-next-line + "enablePasscode": True +} +``` +## Unlock Device with Default Passcode + +For iOS devices, the default passcode is **123456**. +In your test script, write automation code that taps and sets the passcode accordingly. + +:::note +- Passcode entry screens are **not visible** in the stream for security reasons — you may see a blank screen briefly during automation. +- The default passcode for iOS real devices is **123456**. +- Enabling passcode may increase the setup time of your test by **25–30 seconds** compared to regular sessions. +- Passcode support is currently available for **iOS real devices** only. Support for **Android devices** is **Coming Soon**. +::: + diff --git a/docs/device-passcode-on-realdevice.md b/docs/device-passcode-on-realdevice.md new file mode 100644 index 000000000..4fa2fd0b2 --- /dev/null +++ b/docs/device-passcode-on-realdevice.md @@ -0,0 +1,110 @@ +--- +id: device-passcode-on-realdevice +title: Device Passcode on Real iOS Devices +sidebar_label: Device Passcode +description: Enable and test iOS app flows that require a device passcode during manual sessions on real iPhones and iPads. +keywords: + - device passcode + - ios passcode + - manual app testing + - authentication testing + - security testing + - mdm apps + - enterprise apps + - lambdatest ios + - real devices +url: https://www.lambdatest.com/support/docs/device-passcode-on-realdevice/ +site_name: LambdaTest +slug: device-passcode-on-realdevice/ + +--- + +import CodeBlock from '@theme/CodeBlock'; +import { YOUR_LAMBDATEST_USERNAME, YOUR_LAMBDATEST_ACCESS_KEY } from "@site/src/component/keys"; + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + + + +> To enable it for your organization, please contact us via window.openLTChatWidget()}>**24×7 chat support** or you can also drop a mail to **support@lambdatest.com**.
+ +LambdaTest’s **Device Passcode** feature allows you to test applications that require a device passcode as part of their security or authentication flow. +This is especially useful for apps in **Banking/Finance**, **Enterprise**, or those distributed via **MDM (Mobile Device Management)** that mandate passcode entry for sensitive workflows. + +## Use Cases + +- Verify app behavior when the device requires a passcode for login or secure actions. +- Test app workflows that trigger a system passcode prompt (e.g., after inactivity, or accessing secure sections). +- Validate app compliance with enterprise policies that enforce passcodes. +- Reproduce real-world scenarios for apps with heightened security requirements. + +## Supported Devices + +Currently, the Device Passcode feature in **App Automation** is enabled on the following iOS real devices: + +| Device Model | iOS Version | +|-----------------------|-------------| +| iPhone 16 | 18 | +| iPhone 16 Pro | 18 | +| iPad Air 11 (2024) | 18 | +| iPhone 15 | 17 | +| iPhone 14 | 16 | +| iPhone 13 | 15 | + +> We are actively working on expanding coverage to **all supported iOS devices** on LambdaTest Real Device Cloud. +> Support for Android devices with passcode testing is **Coming Soon**. + +## Default Passcode + +- The default passcode for LambdaTest iOS real devices is **123456**. +- Use your system keyboard to input this passcode when prompted during testing. + +## Accessing Device Passcode in Manual Testing + +**Step 1:** On the App Testing Dashboard, click on **Advanced Settings** and enable the **Device Passcode** filter. This will refine the device list to show only those devices where the passcode feature is available. + +![Passcode Entry](../assets/images/real-device-app-testing/passcodetoggle.png) + +**Step 2:** Start a manual testing session on a real iOS device. + +**Step 3:** From the session toolbar, open the **iOS Settings** panel and toggle **Passcode** on. Once enabled, the device will take **20–25 seconds** to complete the passcode setup. Please wait for confirmation. + +![Enable Device Passcode](../assets/images/real-device-app-testing/passcodeenabled.png) + +**Step 4:** Trigger the workflow inside your app that requires the device passcode. + +- A system passcode screen will appear. +- Since passcode entry is sensitive, the keypad or the screen may not be streamed and could appear as black in your session view. +- Use your **system keyboard** to type the passcode (**123456**) and press **Enter**. + +**Step 5:** Continue your app testing once the **passcode** is validated. + + +:::note +- Passcode input is **not visible** in the stream for security reasons. +- You may experience a blacked-out screen briefly during passcode entry. +::: +--- diff --git a/sidebars.js b/sidebars.js index e859f74ec..96b69ed80 100644 --- a/sidebars.js +++ b/sidebars.js @@ -2097,6 +2097,7 @@ module.exports = { "accessibility-settings-ios", "devtools-on-real-devices-app", "set-date-time-hour-format-real-devices", + "device-passcode-on-realdevice", "assistive-touch-on-real-ios-devices", "dark-mode-on-real-devices", "group-folder-redirect-on-real-device" @@ -2830,6 +2831,7 @@ module.exports = { "basic-authentication-for-web-automation", "live-debug-in-app-automation", "appium-date-and-time", + "device-passcode-appautomation", "set-device-dark-mode", ], },