Skip to content

Commit dcfc688

Browse files
authored
Merge pull request LambdaTest#1968 from akshayverma28/stage
Device Passcode feature iOS
2 parents b5a9e1c + 738d3e9 commit dcfc688

File tree

5 files changed

+226
-0
lines changed

5 files changed

+226
-0
lines changed
118 KB
Loading
75.6 KB
Loading
Lines changed: 114 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,114 @@
1+
---
2+
id: device-passcode-appautomation
3+
title: Device Passcode in App Automation on Real iOS Devices
4+
sidebar_label: Device Passcode
5+
description: Run automated tests on iOS apps that require a device passcode during execution on real devices.
6+
keywords:
7+
- device passcode automation
8+
- ios passcode
9+
- appium automation
10+
- authentication testing
11+
- security testing
12+
- mdm apps
13+
- enterprise apps
14+
- lambdatest ios
15+
- real devices
16+
url: https://www.lambdatest.com/support/docs/device-passcode-appautomation/
17+
site_name: LambdaTest
18+
slug: device-passcode-appautomation/
19+
---
20+
21+
import CodeBlock from '@theme/CodeBlock';
22+
import { YOUR_LAMBDATEST_USERNAME, YOUR_LAMBDATEST_ACCESS_KEY } from "@site/src/component/keys";
23+
24+
import Tabs from '@theme/Tabs';
25+
import TabItem from '@theme/TabItem';
26+
27+
<script type="application/ld+json"
28+
dangerouslySetInnerHTML={{ __html: JSON.stringify({
29+
"@context": "https://schema.org",
30+
"@type": "BreadcrumbList",
31+
"itemListElement": [{
32+
"@type": "ListItem",
33+
"position": 1,
34+
"name": "Home",
35+
"item": "https://www.lambdatest.com"
36+
},{
37+
"@type": "ListItem",
38+
"position": 2,
39+
"name": "Support",
40+
"item": "https://www.lambdatest.com/support/docs/"
41+
},{
42+
"@type": "ListItem",
43+
"position": 3,
44+
"name": "Device Passcode in App Automation",
45+
"item": "https://www.lambdatest.com/support/docs/device-passcode-appautomation/"
46+
}]
47+
})
48+
}}
49+
></script>
50+
51+
> To enable it for your organization, please contact us via <span className="doc__lt" onClick={() => window.openLTChatWidget()}>**24×7 chat support**</span> or you can also drop a mail to **[email protected]**.<br />
52+
53+
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.
54+
55+
LambdaTest’s **Device Passcode in Automation** enables you to run such automated tests seamlessly on real iOS devices.
56+
57+
---
58+
59+
## Use Cases
60+
61+
- Validate apps requiring a system passcode prompt before login or secure workflows.
62+
- Ensure authentication flows function correctly when the device is protected by a passcode.
63+
- Automate enterprise test cases where passcodes are enforced by MDM policies.
64+
65+
---
66+
67+
## Supported Devices
68+
69+
Currently, the Device Passcode feature in **App Automation** is enabled on the following iOS real devices:
70+
71+
| Device Model | iOS Version |
72+
|-----------------------|-------------|
73+
| iPhone 16 | 18 |
74+
| iPhone 16 Pro | 18 |
75+
| iPad Air 11 (2024) | 18 |
76+
| iPhone 15 | 17 |
77+
| iPhone 14 | 16 |
78+
| iPhone 13 | 15 |
79+
80+
> We are actively working on expanding coverage to **all supported iOS devices** on LambdaTest Real Device Cloud.
81+
---
82+
83+
## Capability to Enable Passcode
84+
85+
Use the `enablePasscode` capability to enable passcode-protected devices for automation testing.
86+
87+
| Capability | Type | Default | Description |
88+
|-----------------|---------|---------|-------------|
89+
| **enablePasscode** | Boolean | `false` | Enable passcode devices for running tests. Use `true` to start the session with a system passcode configured (default passcode: `123456`). |
90+
91+
92+
93+
```python
94+
{
95+
"platformName": "ios",
96+
"deviceName": "iPhone 16",
97+
"platformVersion": "18",
98+
"isRealMobile": True,
99+
#highlight-next-line
100+
"enablePasscode": True
101+
}
102+
```
103+
## Unlock Device with Default Passcode
104+
105+
For iOS devices, the default passcode is **123456**.
106+
In your test script, write automation code that taps and sets the passcode accordingly.
107+
108+
:::note
109+
- Passcode entry screens are **not visible** in the stream for security reasons — you may see a blank screen briefly during automation.
110+
- The default passcode for iOS real devices is **123456**.
111+
- Enabling passcode may increase the setup time of your test by **25–30 seconds** compared to regular sessions.
112+
- Passcode support is currently available for **iOS real devices** only. Support for **Android devices** is **Coming Soon**.
113+
:::
114+
Lines changed: 110 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,110 @@
1+
---
2+
id: device-passcode-on-realdevice
3+
title: Device Passcode on Real iOS Devices
4+
sidebar_label: Device Passcode
5+
description: Enable and test iOS app flows that require a device passcode during manual sessions on real iPhones and iPads.
6+
keywords:
7+
- device passcode
8+
- ios passcode
9+
- manual app testing
10+
- authentication testing
11+
- security testing
12+
- mdm apps
13+
- enterprise apps
14+
- lambdatest ios
15+
- real devices
16+
url: https://www.lambdatest.com/support/docs/device-passcode-on-realdevice/
17+
site_name: LambdaTest
18+
slug: device-passcode-on-realdevice/
19+
20+
---
21+
22+
import CodeBlock from '@theme/CodeBlock';
23+
import { YOUR_LAMBDATEST_USERNAME, YOUR_LAMBDATEST_ACCESS_KEY } from "@site/src/component/keys";
24+
25+
import Tabs from '@theme/Tabs';
26+
import TabItem from '@theme/TabItem';
27+
28+
<script type="application/ld+json"
29+
dangerouslySetInnerHTML={{ __html: JSON.stringify({
30+
"@context": "https://schema.org",
31+
"@type": "BreadcrumbList",
32+
"itemListElement": [{
33+
"@type": "ListItem",
34+
"position": 1,
35+
"name": "Home",
36+
"item": "https://www.lambdatest.com"
37+
},{
38+
"@type": "ListItem",
39+
"position": 2,
40+
"name": "Support",
41+
"item": "https://www.lambdatest.com/support/docs/"
42+
},{
43+
"@type": "ListItem",
44+
"position": 3,
45+
"name": "Device Passcode on Real iOS Devices",
46+
"item": "https://www.lambdatest.com/support/docs/device-passcode-on-realdevice/"
47+
}]
48+
})
49+
}}
50+
></script>
51+
52+
> To enable it for your organization, please contact us via <span className="doc__lt" onClick={() => window.openLTChatWidget()}>**24×7 chat support**</span> or you can also drop a mail to **[email protected]**.<br />
53+
54+
LambdaTest’s **Device Passcode** feature allows you to test applications that require a device passcode as part of their security or authentication flow.
55+
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.
56+
57+
## Use Cases
58+
59+
- Verify app behavior when the device requires a passcode for login or secure actions.
60+
- Test app workflows that trigger a system passcode prompt (e.g., after inactivity, or accessing secure sections).
61+
- Validate app compliance with enterprise policies that enforce passcodes.
62+
- Reproduce real-world scenarios for apps with heightened security requirements.
63+
64+
## Supported Devices
65+
66+
Currently, the Device Passcode feature in **App Automation** is enabled on the following iOS real devices:
67+
68+
| Device Model | iOS Version |
69+
|-----------------------|-------------|
70+
| iPhone 16 | 18 |
71+
| iPhone 16 Pro | 18 |
72+
| iPad Air 11 (2024) | 18 |
73+
| iPhone 15 | 17 |
74+
| iPhone 14 | 16 |
75+
| iPhone 13 | 15 |
76+
77+
> We are actively working on expanding coverage to **all supported iOS devices** on LambdaTest Real Device Cloud.
78+
> Support for Android devices with passcode testing is **Coming Soon**.
79+
80+
## Default Passcode
81+
82+
- The default passcode for LambdaTest iOS real devices is **123456**.
83+
- Use your system keyboard to input this passcode when prompted during testing.
84+
85+
## Accessing Device Passcode in Manual Testing
86+
87+
**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.
88+
89+
![Passcode Entry](../assets/images/real-device-app-testing/passcodetoggle.png)
90+
91+
**Step 2:** Start a manual testing session on a real iOS device.
92+
93+
**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.
94+
95+
![Enable Device Passcode](../assets/images/real-device-app-testing/passcodeenabled.png)
96+
97+
**Step 4:** Trigger the workflow inside your app that requires the device passcode.
98+
99+
- A system passcode screen will appear.
100+
- Since passcode entry is sensitive, the keypad or the screen may not be streamed and could appear as black in your session view.
101+
- Use your **system keyboard** to type the passcode (**123456**) and press **Enter**.
102+
103+
**Step 5:** Continue your app testing once the **passcode** is validated.
104+
105+
106+
:::note
107+
- Passcode input is **not visible** in the stream for security reasons.
108+
- You may experience a blacked-out screen briefly during passcode entry.
109+
:::
110+
---

sidebars.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2104,6 +2104,7 @@ module.exports = {
21042104
"accessibility-settings-ios",
21052105
"devtools-on-real-devices-app",
21062106
"set-date-time-hour-format-real-devices",
2107+
"device-passcode-on-realdevice",
21072108
"assistive-touch-on-real-ios-devices",
21082109
"dark-mode-on-real-devices",
21092110
"group-folder-redirect-on-real-device"
@@ -2839,6 +2840,7 @@ module.exports = {
28392840
"basic-authentication-for-web-automation",
28402841
"live-debug-in-app-automation",
28412842
"appium-date-and-time",
2843+
"device-passcode-appautomation",
28422844
"set-device-dark-mode",
28432845
],
28442846
},

0 commit comments

Comments
 (0)