This article provides guidance for when you're trying to pair your mobile device to launch the designer.
For more information, see Connect a mobile device.
Product area: Mobile
Issue
Typically, you need to install the most recent SDK if you’re unable to pair your device to Pendo.
Diagnosis
Once you’ve verified and installed the most recent SDK, you need to confirm your scheme ID. The Scheme ID acts as the access key for conducting pairing activities. It provides access to the WebSocket, where the pairing process occurs. Think of it as an API key specifically for pairing purposes.
Open URL
During SDK installation, developers must implement the openURL method. This method generates a link to pairing mode. Selecting this link opens the app in pairing mode instead of a browser.
Functionality overview
When you select Tag in pairing mode to tag Pages and Features, this prompts the SDK to send the entire page structure to Pendo in JSON format. This JSON encapsulates all elements present on the screen along with relevant information.
Below is an excerpt demonstrating part of the page capture, specifically focusing on a button. This comprehensive attribute breakdown allows Pendo to accurately identify the elements:
"elements": [
{
"textBase64": null,
"position": {
"top": 0,
"width": 375,
"left": 0,
"height": 812
},
"clickable": false,
"type": "view",
"sections": null,
"descriptiveTextBase64": null,
"img_width": null,
"retroElementTexts": {},
"img_height": null,
"retroElementCompatibilityHashes": null,
"zIndex": 1,
"classHierarchy": [
"UIWindow",
"UIView"
]
Solution
If you can't pair your device, review your installation.
- Ensure you have the correct Scheme ID by navigating to Settings > Subscription settings > Applications > your app > app Details.
- Verify that the openURL method is correctly embedded in the appDelegate file within the application method:
func application(_ app: UIApplication,open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool {
if url.scheme?.range(of: "pendo") != nil {
PendoManager.shared().initWith(url)
return true
}
// your code here...
return true
}