NativeScript Troubleshooting Guide

NativeScript Troubleshooting Guide

Common issues and solutions when integrating UXCam with NativeScript applications.

Quick Diagnostics Checklist

Before diving into specific issues:

  • NativeScript CLI is installed and up to date
  • UXCam plugin is latest version
  • Valid UXCam app key is configured
  • iOS deployment target is 12.0+ / Android minSdkVersion is 21+
  • App module is properly configured

Installation Issues

Plugin Installation Fails

Symptoms:

Error: Failed to install nativescript-uxcam

Solutions:

  1. Update NativeScript CLI:
npm install -g nativescript
ns --version
  1. Clear cache and reinstall:
ns clean
npm install nativescript-uxcam
  1. For NativeScript 8+:
npm install @nicothin/nativescript-uxcam

Build Errors After Installation

iOS CocoaPods Error:

cd platforms/ios
pod install --repo-update

Android Gradle Error:

ns clean
ns build android

Runtime Issues

Sessions Not Appearing in Dashboard

Symptoms:

  • App runs normally
  • No sessions in UXCam dashboard

Debugging Steps:

  1. Verify initialization:
// app.ts or main.ts
import { Application } from '@nativescript/core';
import * as NSUXCam from 'nativescript-uxcam';

Application.on(Application.launchEvent, () => {
    console.log('Initializing UXCam...');

    NSUXCam.optIntoVideoRecordings();
    NSUXCam.startWithKey('YOUR_APP_KEY');

    console.log('UXCam initialized');
});

Application.run({ moduleName: 'app-root' });
  1. Check logs:
  • Android: adb logcat | grep UXCam
  • iOS: Xcode console

Common Solutions:

Wrong import:

// ✅ Correct import
import * as NSUXCam from 'nativescript-uxcam';

// ❌ Incorrect
import { UXCam } from 'nativescript-uxcam';

Late initialization:

// ❌ Too late - in a component
export class HomeComponent {
    ngOnInit() {
        NSUXCam.startWithKey(key); // May miss early screens
    }
}

// ✅ Correct - in app launch
Application.on(Application.launchEvent, () => {
    NSUXCam.startWithKey(key);
});

NSUXCam is Undefined

Symptoms:

TypeError: Cannot read property 'startWithKey' of undefined

Solutions:

  1. Verify plugin installation:
ns plugin list
# Should show: nativescript-uxcam
  1. Rebuild the app:
ns clean
ns build android
ns build ios

Screen Tagging Issues

Screens Not Tagged Correctly

Symptoms:

  • Generic screen names in dashboard
  • Missing screen transitions

Solution - Manual screen tagging:

Angular:

import { Component, OnInit } from '@angular/core';
import * as NSUXCam from 'nativescript-uxcam';

@Component({
    selector: 'home',
    templateUrl: './home.component.html'
})
export class HomeComponent implements OnInit {
    ngOnInit() {
        NSUXCam.tagScreenName('Home');
    }
}

Vue:

export default {
    mounted() {
        NSUXCam.tagScreenName('Home');
    }
}

Plain NativeScript:

export function onNavigatingTo(args) {
    NSUXCam.tagScreenName('Home');
}

With Router:

// Use router events for automatic tagging
import { RouterExtensions } from '@nativescript/angular';

constructor(private router: RouterExtensions) {
    this.router.router.events.subscribe(event => {
        if (event instanceof NavigationEnd) {
            const screenName = event.urlAfterRedirects.replace('/', '') || 'Home';
            NSUXCam.tagScreenName(screenName);
        }
    });
}

Occlusion Issues

Sensitive Data Visible

Solution - Occlude views:

import * as NSUXCam from 'nativescript-uxcam';
import { TextField } from '@nativescript/core';

// Get reference to sensitive field
const creditCardField = page.getViewById<TextField>('creditCard');

// Occlude it
NSUXCam.occludeSensitiveView(creditCardField);

Occlude entire screen:

// When showing sensitive screen
NSUXCam.occludeSensitiveScreen(true);

// When leaving
NSUXCam.occludeSensitiveScreen(false);

Platform-Specific Issues

iOS: Recording Not Starting

Solution:

// Required for iOS
NSUXCam.optIntoVideoRecordings();
NSUXCam.startWithKey('YOUR_APP_KEY');

iOS: Build Fails with Pod Errors

cd platforms/ios
pod deintegrate
pod install

Android: ProGuard Issues

Add to App_Resources/Android/proguard-rules.pro:

-keep class com.uxcam.** { *; }
-dontwarn com.uxcam.**

TypeScript Type Issues

Missing Type Definitions

Solution - Add declaration file references.d.ts:

/// <reference path="./node_modules/nativescript-uxcam/index.d.ts" />

Or use any type:

const NSUXCam: any = require('nativescript-uxcam');

Debug Information Collection

When contacting support, include:

  1. Environment:
ns --version
ns doctor
node --version
npm --version
  1. Plugin version:
npm list nativescript-uxcam
  1. Device logs:
  • Android: adb logcat | grep UXCam
  • iOS: Xcode console
  1. Configuration:
  • package.json
  • Initialization code

Contact Support