# API Reference
Source: https://docs.nativebridge.io/api-reference
Programmatically manage your apps and automate testing workflows with the NativeBridge REST API
# API Reference
The NativeBridge REST API enables you to programmatically upload apps, manage builds, generate magic links, and automate your mobile testing workflows.
📚 Full API Documentation
View our complete API reference with interactive examples on Postman
## Key Features
Upload, update, and manage your app builds programmatically
Auto-generate shareable magic links for every build
Integrate with GitHub Actions, GitLab CI, and other pipelines
Run automated tests with Appium and Maestro
## Quick Start
### Authentication
All API requests require authentication using your API key:
```bash
curl -X POST https://api.nativebridge.dev/v1/apps \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json"
```
Get your API key from the [Dashboard](https://nativebridge.io/settings/api-keys) → Settings → API Keys
### Upload Your First App
```bash
curl -X POST https://api.nativebridge.dev/v1/apps/upload \
-H "Authorization: Bearer YOUR_API_KEY" \
-F "file=@path/to/your/app.apk" \
-F "platform=android"
```
The response includes your magic link:
```json
{
"appId": "abc123",
"magicLink": "https://nativebridge.io/app/abc123",
"embedUrl": "https://nativebridge.io/embed/abc123",
"status": "ready"
}
```
## CI/CD Integration
### Auto-Generate Magic Links on Every Push
Automatically create magic links for every commit to get instant preview links for your team:
#### GitHub Actions Example
```yaml
name: Deploy to NativeBridge
on:
push:
branches: [main, develop]
pull_request:
branches: [main]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Build App
run: |
# Your build commands here
./gradlew assembleDebug # Android
# or
# xcodebuild -scheme YourApp # iOS
- name: Upload to NativeBridge
id: upload
run: |
response=$(curl -X POST https://api.nativebridge.dev/v1/apps/upload \
-H "Authorization: Bearer ${{ secrets.NATIVEBRIDGE_API_KEY }}" \
-F "file=@app/build/outputs/apk/debug/app-debug.apk" \
-F "platform=android" \
-F "buildMessage=${{ github.event.head_commit.message }}")
echo "response=$response" >> $GITHUB_OUTPUT
magic_link=$(echo $response | jq -r '.magicLink')
echo "magic_link=$magic_link" >> $GITHUB_OUTPUT
- name: Comment PR with Magic Link
if: github.event_name == 'pull_request'
uses: actions/github-script@v6
with:
script: |
github.rest.issues.createComment({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
body: `🚀 **App Preview Ready!**\n\nTest this build: ${{ steps.upload.outputs.magic_link }}\n\n_Powered by NativeBridge_`
})
```
### Auto-Generate Links for Pull Requests
Create preview apps for every PR to streamline code reviews:
#### GitLab CI Example
```yaml
deploy_preview:
stage: deploy
script:
- |
# Build your app
./gradlew assembleDebug
# Upload to NativeBridge
RESPONSE=$(curl -X POST https://api.nativebridge.dev/v1/apps/upload \
-H "Authorization: Bearer $NATIVEBRIDGE_API_KEY" \
-F "file=@app/build/outputs/apk/debug/app-debug.apk" \
-F "platform=android" \
-F "buildMessage=PR: $CI_MERGE_REQUEST_TITLE")
# Extract magic link
MAGIC_LINK=$(echo $RESPONSE | jq -r '.magicLink')
# Post comment to MR
curl -X POST "$CI_API_V4_URL/projects/$CI_PROJECT_ID/merge_requests/$CI_MERGE_REQUEST_IID/notes" \
-H "PRIVATE-TOKEN: $GITLAB_TOKEN" \
-d "body=🚀 **Preview App Ready**: $MAGIC_LINK"
only:
- merge_requests
```
## Common API Endpoints
### Core Operations
| Endpoint | Method | Description |
| ------------------------------ | ------ | ----------------------------------- |
| `/v1/apps/upload` | POST | Upload a new app or update existing |
| `/v1/apps/{appId}` | GET | Get app details and magic link |
| `/v1/apps/{appId}/builds` | GET | List all builds for an app |
| `/v1/apps/{appId}` | DELETE | Delete an app |
| `/v1/apps/{appId}/permissions` | PUT | Update app permissions |
### Automation & Testing
| Endpoint | Method | Description |
| ------------------------------------- | ------ | --------------------------- |
| `/v1/sessions/start` | POST | Start a new testing session |
| `/v1/sessions/{sessionId}/screenshot` | GET | Capture screenshot |
| `/v1/sessions/{sessionId}/logs` | GET | Get device logs |
| `/v1/sessions/{sessionId}/stop` | POST | End testing session |
For complete endpoint documentation, request/response schemas, and interactive examples, visit our [Postman Documentation](https://documenter.getpostman.com/view/41713518/2sAYkGLf4d)
## Use Cases
### 1. Continuous Deployment
Automatically deploy every commit:
```javascript
// Node.js Example
const FormData = require('form-data');
const fs = require('fs');
async function deployToNativeBridge(appPath, commitMessage) {
const form = new FormData();
form.append('file', fs.createReadStream(appPath));
form.append('platform', 'ios');
form.append('buildMessage', commitMessage);
const response = await fetch('https://api.nativebridge.dev/v1/apps/upload', {
method: 'POST',
headers: {
'Authorization': `Bearer ${process.env.NATIVEBRIDGE_API_KEY}`,
...form.getHeaders()
},
body: form
});
const result = await response.json();
console.log(`Magic Link: ${result.magicLink}`);
return result;
}
```
### 2. Nightly Build Distribution
Share nightly builds with your QA team:
```python
# Python Example
import requests
import schedule
import time
def upload_nightly_build():
with open('app-nightly.apk', 'rb') as f:
files = {'file': f}
data = {
'platform': 'android',
'buildMessage': f'Nightly Build - {time.strftime("%Y-%m-%d")}'
}
headers = {
'Authorization': f'Bearer {API_KEY}'
}
response = requests.post(
'https://api.nativebridge.dev/v1/apps/upload',
files=files,
data=data,
headers=headers
)
magic_link = response.json()['magicLink']
send_slack_notification(magic_link) # Share with team
# Schedule nightly at 2 AM
schedule.every().day.at("02:00").do(upload_nightly_build)
```
### 3. Feature Branch Previews
Create previews for each feature branch:
```bash
#!/bin/bash
# deploy-preview.sh
BRANCH_NAME=$(git rev-parse --abbrev-ref HEAD)
BUILD_MESSAGE="Feature: $BRANCH_NAME"
# Build app
./gradlew assembleDebug
# Upload and get magic link
RESPONSE=$(curl -s -X POST https://api.nativebridge.dev/v1/apps/upload \
-H "Authorization: Bearer $NATIVEBRIDGE_API_KEY" \
-F "file=@app/build/outputs/apk/debug/app-debug.apk" \
-F "platform=android" \
-F "buildMessage=$BUILD_MESSAGE")
MAGIC_LINK=$(echo $RESPONSE | jq -r '.magicLink')
echo "✅ Preview ready: $MAGIC_LINK"
# Update PR description or send to Slack
```
## Best Practices
* Store API keys in environment variables or secrets management
* Never commit API keys to version control
* Use different API keys for production and development
* Rotate API keys regularly
* Compress app files before uploading
* Use parallel uploads for multiple platforms
* Implement retry logic for network failures
* Cache magic links to avoid redundant API calls
* Use meaningful build messages for easy identification
* Tag builds with version numbers and commit hashes
* Set appropriate expiration for preview links
* Clean up old builds periodically
## Rate Limits
| Plan | Requests/Hour | Concurrent Uploads | Max App Size |
| ------- | ------------- | ------------------ | ------------ |
| Free | 60 | 1 | 100 MB |
| Starter | 300 | 3 | 500 MB |
| Growth | 1000 | 10 | 1 GB |
| Custom | Unlimited | Unlimited | Unlimited |
## Error Handling
Common error responses and solutions:
```json
{
"error": "INVALID_FILE_FORMAT",
"message": "File must be .apk, .app, or .ipa",
"solution": "Ensure you're uploading a valid app file"
}
```
Check that your API key is valid and included in the Authorization header
Compress your app or upgrade to a higher plan for larger file limits
You've exceeded the rate limit. Wait and retry or upgrade your plan
Temporary issue on our end. Retry with exponential backoff
## SDK & Libraries
npm install nativebridge
pip install nativebridge
Official GitHub Action
## Next Steps
Explore all endpoints with examples
Generate your API key to get started
Automation and CI/CD integration
Get help with API integration
# Getting Your API Key
Source: https://docs.nativebridge.io/getting-api-key
Generate and manage API keys to access NativeBridge REST API
# Getting Your API Key
API keys allow you to programmatically interact with NativeBridge, enabling you to upload apps, generate magic links, and automate your testing workflows.
API keys are tied to your organization and have the same permissions as your user account. Keep them secure and never share them publicly.
## Generate Your First API Key
Follow these simple steps to create your API key:
Log in to your NativeBridge account and go to your [Dashboard](https://nativebridge.io/dashboard)
Click on **"API Keys"** in the sidebar navigation or go directly to [API Keys](https://nativebridge.io/settings/api-keys)
Click the **"Generate New API Key"** button
Give your API key a descriptive name (e.g., "GitHub Actions", "Development", "Production")
Copy your API key immediately - you won't be able to see it again once you leave the page
**Important:** Your API key will only be shown once. Make sure to copy and store it securely before navigating away from the page.
## Visual Guide
The API Keys section in your dashboard shows:
* List of all active API keys
* When each key was created
* Last used timestamp
* Options to revoke keys
## Using Your API Key
Once you have your API key, you can use it in your API requests:
### In HTTP Headers
```bash
curl -X POST https://api.nativebridge.dev/v1/apps/upload \
-H "Authorization: Bearer YOUR_API_KEY_HERE" \
-F "file=@app.apk" \
-F "platform=android"
```
### In Environment Variables
Store your API key as an environment variable for security:
```bash
# .env file
NATIVEBRIDGE_API_KEY=your_api_key_here
```
```javascript
// Node.js
const apiKey = process.env.NATIVEBRIDGE_API_KEY;
const response = await fetch('https://api.nativebridge.dev/v1/apps/upload', {
headers: {
'Authorization': `Bearer ${apiKey}`
}
});
```
### In CI/CD Pipelines
#### GitHub Actions
1. Go to your repository Settings → Secrets → Actions
2. Add a new secret named `NATIVEBRIDGE_API_KEY`
3. Use in your workflow:
```yaml
- name: Upload to NativeBridge
run: |
curl -X POST https://api.nativebridge.dev/v1/apps/upload \
-H "Authorization: Bearer ${{ secrets.NATIVEBRIDGE_API_KEY }}" \
-F "file=@app.apk"
```
#### GitLab CI
1. Go to Project Settings → CI/CD → Variables
2. Add a variable named `NATIVEBRIDGE_API_KEY`
3. Use in your pipeline:
```yaml
upload_app:
script:
- curl -X POST https://api.nativebridge.dev/v1/apps/upload \
-H "Authorization: Bearer $NATIVEBRIDGE_API_KEY" \
-F "file=@app.apk"
```
## Managing API Keys
### View All Keys
Your [API Keys dashboard](https://nativebridge.io/settings/api-keys) displays:
| Column | Description |
| --------- | ------------------------------------- |
| Name | The descriptive name you gave the key |
| Created | When the key was generated |
| Last Used | Most recent API call using this key |
| Actions | Revoke or regenerate the key |
### Revoke a Key
To revoke an API key:
1. Go to [API Keys](https://nativebridge.io/settings/api-keys)
2. Find the key you want to revoke
3. Click the **"Revoke"** button
4. Confirm the action
Revoking a key immediately invalidates it. Any services using this key will lose access.
### Regenerate a Key
If you suspect a key has been compromised:
1. Revoke the compromised key immediately
2. Generate a new key with the same name
3. Update all services with the new key
## Best Practices
Name keys based on their purpose: "Production API", "GitHub Actions", "Local Development"
Rotate API keys every 90 days for enhanced security
Create separate keys for different environments (dev, staging, production)
Never commit API keys to version control - use environment variables instead
## Security Guidelines
### DO ✅
* Store keys in environment variables or secrets management systems
* Use different keys for different environments
* Revoke unused or compromised keys immediately
* Monitor key usage in your dashboard
* Use HTTPS for all API requests
### DON'T ❌
* Share keys in emails or chat messages
* Commit keys to git repositories
* Use the same key across multiple projects
* Expose keys in client-side code
* Log or print keys in console output
## Rate Limits by Plan
API keys inherit the rate limits of your subscription plan:
| Plan | API Calls/Hour | Concurrent Requests |
| ------- | -------------- | ------------------- |
| Free | 60 | 1 |
| Starter | 300 | 3 |
| Growth | 1000 | 10 |
| Custom | Unlimited | Unlimited |
Need higher limits? [Contact us](mailto:contact@autoflowapp.com) to discuss custom plans.
## Troubleshooting
* Ensure you're including "Bearer " before the key in the Authorization header
* Check that the key hasn't been revoked
* Verify you're using the correct API endpoint
* Make sure there are no extra spaces or characters
* Verify you have the necessary permissions in your organization
* Check if your plan includes API access
* Contact your organization admin for access
* Once created, keys cannot be viewed again for security
* You'll need to revoke the old key and create a new one
* Make sure to update all services with the new key
* Check your current plan's limits in the dashboard
* Consider upgrading to a higher plan
* Implement request caching and batching
## Example: Your First API Call
Once you have your API key, try this simple test:
```bash
# Test your API key
curl -X GET https://api.nativebridge.dev/v1/account \
-H "Authorization: Bearer YOUR_API_KEY_HERE"
# Expected response:
{
"organization": "Your Organization",
"plan": "starter",
"api_calls_remaining": 298
}
```
## Next Steps
Explore all available API endpoints
Start uploading apps via API
Automate with GitHub Actions & GitLab
Interactive API documentation
# Introduction
Source: https://docs.nativebridge.io/index
Run, Test & Develop real iOS and Android apps directly in your browser & IDE(Like VSCode & Cursor) with NativeBridge - no downloads, installations, or extra permissions needed!
## Why NativeBridge?
NativeBridge is a cloud-powered platform that lets developers and teams launch, test, and interact with their mobile apps on real & virtual devices straight from the web.
Built to be fast, flexible, and intuitive, NativeBridge is the go-to solution for a variety of use cases, including:
Share your app instantly with stakeholders via secure links. Preview builds in real-time across multiple devices without deployment delays
Test on 50+ real devices running actual OS versions. Catch device-specific bugs before your users do with comprehensive testing coverage
Showcase your app to clients and investors without app store downloads. Launch interactive demos in seconds directly from your browser
Run Appium and Maestro scripts at scale. Automate your entire QA pipeline with parallel execution across multiple device configurations
Onboard new team members 10x faster with hands-on app walkthroughs. Create interactive training sessions without device provisioning
Embed live app experiences directly into your documentation, landing pages, or support portals with just an iframe
Ready to see NativeBridge in action? Get started in just a few clicks - upload your app or book a demo with us.
## Upload your first App
The easiest way to begin with NativeBridge is to upload your app. Follow along at:
Learn how to upload your iOS or Android app and configure settings for optimal performance
## Run & Test your App
Once your app is uploaded, you can instantly run and test your app with powerful debugging capabilities.
Launch your app instantly and test across multiple devices with real-time interaction
Access comprehensive debugging tools including ADB, shell access, and system logs
## Share and Embed your App
You can also embed and share your app with clients and other stakeholders with just a click.
Embed live app experiences in your website or documentation with our iframe integration
## Running Automated Tests
NativeBridge makes it super simple to run automated tests on any device that you want.
Set up and run Appium & Maestro tests across multiple devices with our automation platform
## Monitor Your Activity
Track all your testing activities and app automation runs in one centralized location.
Monitor all your test runs, sessions, and automation logs with comprehensive analytics
**Need enterprise support?** Contact us at [contact@autoflowapp.com](mailto:contact@autoflowapp.com) for dedicated support, custom modules, and training.
# Activity Dashboard
Source: https://docs.nativebridge.io/platform/app-management/activity-dashboard
Centralized hub for monitoring, analyzing, and managing all device sessions and test automation runs with comprehensive logging and reporting capabilities.
## Overview
The Activity Dashboard provides a comprehensive view of all your testing activities, enabling you to track performance, identify issues, and optimize your testing workflow. Access detailed logs, session recordings, and analytics for both manual device sessions and automated test runs.
## Accessing the Activity Dashboard
Click on the profile icon located in the top-right corner of the interface
Choose **Activity** from the dropdown menu or navigate directly to [nativebridge.io/activity](https://nativebridge.io/activity)
## Device Sessions
### Session Management
Monitor and analyze all your device testing sessions with comprehensive tracking capabilities:
Access detailed logs from each testing session including system events, user interactions, and application responses
Review complete video recordings of your sessions for debugging and quality assurance purposes
Track device specifications, OS versions, and hardware configurations used during testing
Monitor session duration, interaction patterns, and resource utilization metrics
### Key Features
* **Real-time Monitoring**: Track active sessions as they occur
* **Historical Data**: Access archived sessions for compliance and analysis
* **Search & Filter**: Quickly locate specific sessions using advanced filters
* **Export Capabilities**: Download logs and reports for offline analysis
## Test Automation Analytics
### Comprehensive Test Reporting
Gain deep insights into your automated testing processes with advanced analytics:
Detailed pass/fail analysis with execution timelines and error diagnostics
Complete command-line outputs, API responses, and system messages
Visual recordings of automated test executions for verification
Information about testing frameworks, libraries, and configurations used
### Analytics Dashboard Features
* **Test Suite Overview**: Aggregate statistics across all test runs
* **Failure Analysis**: Identify patterns and common failure points
* **Performance Metrics**: Track execution times and resource consumption
* **Integration Data**: Monitor CI/CD pipeline integration status
## Data Management
* Session logs retained for 30 days
* Video recordings available for 14 days
* Test reports archived for 90 days
* Custom retention available for enterprise plans
* **CSV Export**: Structured data for spreadsheet analysis
* **JSON Format**: Machine-readable format for integration
* **PDF Reports**: Professional documentation for stakeholders
* **Video Downloads**: MP4 format for offline review
* Role-based permissions for sensitive data
* Team member access management
* Audit trail for all data access
* Compliance with data protection regulations
## Best Practices
### Optimizing Dashboard Usage
Establish routine review periods to analyze testing patterns and identify optimization opportunities. Weekly reviews help maintain testing quality and efficiency.
Configure alerts for failed tests, unusual session durations, or resource threshold breaches to enable proactive issue resolution.
Leverage dashboard metrics to inform test strategy, device selection, and resource allocation decisions based on historical performance data.
Share dashboard access with relevant team members to foster collaborative debugging and knowledge sharing across your organization.
## Advanced Features
**Pro Tip**: Use the Activity Dashboard's API endpoints to integrate session data with your existing monitoring and analytics tools for enhanced visibility.
### Custom Dashboards
Create personalized views focusing on metrics most relevant to your team:
* Filter by project or application
* Set custom date ranges
* Save frequently used queries
* Schedule automated reports
### Performance Benchmarking
Compare current test results against historical baselines:
* Track performance trends over time
* Identify regression patterns
* Monitor improvement initiatives
* Generate executive summaries
## Troubleshooting
If you experience issues accessing session data or recordings, verify your account permissions and check the retention period for the requested data.
### Common Issues and Solutions
| Issue | Solution |
| -------------------------- | --------------------------------------------------- |
| Missing session recordings | Check if recordings are enabled in project settings |
| Incomplete test logs | Ensure proper test framework integration |
| Slow dashboard loading | Try filtering to a smaller date range |
| Export failures | Verify available storage quota |
## Related Resources
The Activity Dashboard integrates with various platform features. For additional help, please contact your system administrator or check the main platform documentation.
# App Dashboard
Source: https://docs.nativebridge.io/platform/app-management/app-dashboard
Use the App Dashboard in NativeBridge to organize and manage your apps efficiently.
For our enterprise customers we also provide Dedicated App Dashboard which'll show all of the apps within the organisation at a same place.
The **App Dashboard** shows the most recent build uploaded for a selected application.
From this page, you can:
* **Search** for apps by name or identifier
* **Filter** apps by device type (Android or iOS)
* Open the [**App Builds**](#app-builds-page) page to view all builds linked to an application
* **Play** the latest build of an application
* **Share** the latest build of an application
## App Builds Page
The **App Builds** page lists all builds uploaded for a specific application. Builds are organized by version and build details provided by the platform.
From this page, you can:
* View a summary of the [latest build](#user-content-fn-1) for the application
* Quickly **run**, **embed**, or **share** the build using magic link
* **Remove** the application if needed
* **Search** for builds using metadata such as version name, tags, notes, or build ID
* **Upload** a new build
* Open an individual [App Build Page](#app-build-page)
* **Play** the latest build of the application
* **Share** the latest build of the application
* **Favorite** frequently used apps
# Debugging Tools
Source: https://docs.nativebridge.io/platform/app-management/debugging-tools
Comprehensive suite of professional debugging and diagnostic tools for mobile application development, testing, and troubleshooting
## Overview
NativeBridge provides an enterprise-grade debugging toolkit that gives developers and QA engineers unprecedented access to mobile devices for comprehensive application analysis. Our debugging suite offers the same level of control as physical device access, enabling efficient troubleshooting, performance optimization, and quality assurance workflows.
Direct interaction with actual iOS and Android devices in the cloud
Professional-grade tools for deep system analysis and debugging
Complete file system access for data inspection and manipulation
Full ADB connectivity for development and debugging workflows
## Core Debugging Features
### File Transfer System
#### Send Files to Device
Transfer any file type directly to your test device for comprehensive testing scenarios:
Navigate to the **Send files to device** button on the session screen or magic link page
Choose single or multiple files from your local system (supports drag-and-drop)
Specify the target directory on the device or use default app storage
Monitor transfer progress and verify file integrity on the device
**Use Cases:**
* Test document imports and exports
* Validate file handling capabilities
* Load test data and configurations
* Deploy debug certificates and profiles
**File Size Limits**: Standard plans support files up to 100MB. Enterprise plans have unlimited file transfer capabilities.
### Multi-App Testing Environment
#### Upload Multiple Applications
Test complex app interactions and dependencies within a single session:
1. Launch your primary application session
2. Click **Upload Another App** in the control panel
3. Select additional APK/IPA files to install
4. Apps install sequentially with progress tracking
5. Switch between apps seamlessly during testing
* **Deep Linking**: Test app-to-app navigation flows
* **OAuth Flows**: Validate authentication with provider apps
* **Data Sharing**: Verify content sharing between applications
* **Compatibility**: Check for conflicts or interference
* **Integration Testing**: Validate third-party SDK behaviors
| Plan Type | Max Apps | Storage |
| ------------ | --------- | --------- |
| Starter | 2 apps | 500MB |
| Professional | 5 apps | 2GB |
| Enterprise | Unlimited | Unlimited |
### Device Shell Access
#### Command-Line Interface
Direct terminal access to device systems for advanced debugging:
* **System Commands**: Execute standard Unix/Linux commands
* **Process Management**: Monitor and control running processes
* **Network Diagnostics**: Run ping, netstat, and trace commands
* **Package Management**: Install, update, and remove packages
* **Permission Inspection**: Review and modify app permissions
Different permission tiers based on your subscription:
**Basic Access:**
* Read-only system information
* Application-specific directories
* Basic network diagnostics
**Advanced Access:**
* Write permissions to app directories
* Process manipulation capabilities
* Extended system diagnostics
**Root Access (Enterprise):**
* Full system access
* Kernel-level debugging
* System file modifications
* All shell sessions are logged and audited
* Isolated environments prevent cross-contamination
* Automatic session timeouts for security
* Encrypted command transmission
**Security Notice**: Shell access is monitored and logged. Attempting to access restricted areas or perform unauthorized operations will result in immediate session termination.
### File System Explorer
#### Visual File Management
Browse and manage device file systems through an intuitive interface:
* Hierarchical directory browsing
* Quick search and filtering
* Breadcrumb navigation
* Bookmark frequently used paths
* Create, rename, and delete files
* Edit text files in-browser
* View image and media files
* Download files to local system
* Batch operations support
* File permission management
* Symbolic link creation
* Archive extraction and creation
* Direct ADB file push/pull
* Clipboard synchronization
* Drag-and-drop upload
* Context menu actions
### System Logging
#### Comprehensive Log Management
Access and analyze all system and application logs in real-time:
```
VERBOSE - All messages including debug details
DEBUG - Debugging messages and application flow
INFO - Informational messages and events
WARNING - Potentially harmful situations
ERROR - Error events and exceptions
FATAL - Critical errors causing termination
```
* **By Application**: Focus on specific app packages
* **By Tag**: Filter using log tags and categories
* **By Time Range**: View logs within specific periods
* **By Keyword**: Search for specific terms or patterns
* **By PID/TID**: Track specific process or thread logs
* **Plain Text**: Simple log format for quick review
* **JSON**: Structured format for automated analysis
* **CSV**: Spreadsheet-compatible for reporting
* **HTML**: Formatted view with syntax highlighting
**Advanced Features:**
* Real-time streaming with minimal latency
* Color-coded severity levels
* Regular expression pattern matching
* Log persistence across sessions
* Automatic log rotation and archival
### ADB Connectivity
#### Professional Development Bridge
Connect to cloud devices as if they were physically connected to your workstation:
Click **Connect with ADB** to generate unique connection credentials
```bash
adb connect device-id.nativebridge.io:5555
```
Enter the provided authentication token when prompted
Use all standard ADB commands as with a local device
**Pro Tip**: Save frequently used devices as environment variables for quick reconnection:
```bash
export NATIVE_BRIDGE_DEVICE="device-id.nativebridge.io:5555"
adb connect $NATIVE_BRIDGE_DEVICE
```
#### Supported ADB Operations
* Install/uninstall apps
* Deploy debug builds
* Run instrumentation tests
* Profile performance
* Attach debuggers
* Inspect databases
* Monitor network traffic
* Capture heap dumps
* Execute UI tests
* Record/replay sessions
* Capture screenshots
* Generate bug reports
## Advanced Debugging Workflows
### Performance Profiling
Monitor CPU usage and identify performance bottlenecks:
* Method-level profiling
* Thread activity analysis
* Call stack visualization
* Flame graph generation
Track memory allocation and detect leaks:
* Heap dump analysis
* Allocation tracking
* Reference chain inspection
* Memory pressure simulation
Analyze network traffic and API calls:
* Request/response inspection
* Bandwidth usage tracking
* Latency measurements
* SSL/TLS debugging
Optimize rendering and UI performance:
* Frame rate monitoring
* GPU usage analysis
* Overdraw detection
* Layout hierarchy inspection
## Integration Capabilities
### CI/CD Pipeline Integration
Incorporate debugging tools into automated workflows:
```yaml
# Example GitHub Actions Integration
- name: Debug Failed Tests
if: failure()
run: |
native-bridge debug \
--session-id ${{ env.SESSION_ID }} \
--capture-logs \
--screenshot \
--heap-dump
```
### IDE Plugins
The debugging tools integrate with popular development environments. Please check the main platform documentation for current integration options.
## Best Practices
### Debugging Strategy
**Recommended Workflow**: Start with high-level logs, then progressively dive deeper using specialized tools as you narrow down the issue.
1. **Initial Triage**: Review system logs for obvious errors
2. **Reproduce Issue**: Use session recording to capture the problem
3. **Deep Analysis**: Employ specific tools based on issue type
4. **Root Cause**: Use shell and file system access for investigation
5. **Verification**: Confirm fix using automated tests
### Security Guidelines
* Always use secure connections for ADB access
* Rotate authentication tokens regularly
* Limit debug access to development environments
* Sanitize logs before sharing externally
* Follow data protection regulations for user data
## Troubleshooting
| Issue | Solution |
| -------------------------- | ------------------------------------------------ |
| ADB connection timeout | Check firewall settings and authentication token |
| File upload failures | Verify file size limits and storage quota |
| Shell access denied | Confirm subscription tier and permissions |
| Log streaming interruption | Check network stability and reconnect |
| File system not loading | Clear browser cache and reload session |
## Related Resources
For additional documentation and support resources, please check the main platform documentation or contact your system administrator.
# Embedding Apps
Source: https://docs.nativebridge.io/platform/app-management/embedding-apps
Embed your mobile apps directly into websites, documentation, and products using iframes
# Embedding Apps
Embed NativeBridge virtual devices directly into your own websites and products using iframes. Perfect for product demos, documentation, support portals, and interactive showcases.
## Finding Your Embed Link
Get your embed link in just a few clicks:
Go to your [Apps Dashboard](https://nativebridge.io/dashboard/apps) or [App Builds](/platform/app-management/app-dashboard#app-builds-page) page
Select the **Share** button under the app or build you want to embed
Choose "Embed" from the share options to get your iframe-ready link
Test parameters on your [App Page](/platform/app-management/running-and-testing-apps) first, then switch the URL from `/app/` to `/embed/` for iframe usage.
## Basic Embedding
Add your app to any website with a simple iframe:
```html
```
### Live Example
Here's a real embedded app using NativeBridge:
```html
```
## Embedding Options
Advanced Embedding options are only available with Starter, Growth and Custom plans.
### Responsive Design
Make your embedded app responsive to different screen sizes:
```html
```
### Custom Device Frame
Add device frames for a more realistic appearance:
```html
```
### Autoplay Demo
Start your app automatically when the page loads:
```html
```
## Advanced Configurations
### With Query Parameters
Customize the embedded experience with query parameters:
```html
```
### Popular Parameters for Embedding
| Parameter | Description | Example |
| -------------- | --------------------------- | ------------------- |
| `theme` | Set light or dark theme | `theme=light` |
| `device` | Set specific device model | `device=iphone15` |
| `osVersion` | Choose OS version | `osVersion=17.0` |
| `scale` | Adjust device size (25-100) | `scale=75` |
| `centered` | Center device in frame | `centered=true` |
| `deviceColor` | Device frame color | `deviceColor=white` |
| `hideControls` | Hide device controls | `hideControls=true` |
| `language` | Set device language | `language=es` |
| `autoplay` | Start app automatically | `autoplay=true` |
## Use Cases
Embed interactive demos on your landing page to showcase features without downloads
Add live app examples directly in your docs for hands-on learning
Let customers reproduce issues in an embedded app for better support
Create engaging product tours with embedded interactive experiences
Include live app instances in training content for practical learning
Enhance articles with embedded app demos for better engagement
## Embedding in Different Platforms
### WordPress
Add to your WordPress site using the Custom HTML block:
```html
```
### React
Embed in your React application:
```jsx
function AppDemo() {
return (
);
}
```
## Security & Permissions
### Content Security Policy
If your site uses CSP headers, add NativeBridge to your allowed frame sources:
```
Content-Security-Policy: frame-src https://nativebridge.io https://*.nativebridge.io;
```
### Sandbox Attributes
For additional security, you can add sandbox attributes (note: this may limit some functionality):
```html
```
## Best Practices
* **Lazy Load**: Load iframes only when visible
* **Optimize Size**: Use appropriate dimensions for your use case
* **Cache**: Leverage browser caching for repeat visitors
* **CDN**: Ensure your page uses a CDN for faster loading
* **Loading States**: Show a placeholder while iframe loads
* **Responsive**: Ensure embeds work on all screen sizes
* **Context**: Provide instructions or context around the embed
* **Fallback**: Include a fallback link if iframe fails
* **Title**: Always include a descriptive title attribute
* **Alternative**: Provide text alternatives for screen readers
* **Keyboard**: Ensure keyboard navigation works properly
* **Focus**: Manage focus states appropriately
## Troubleshooting
* Check if your embed URL is correct
* Verify app permissions allow public embedding
* Ensure no browser extensions are blocking iframes
* Check browser console for CSP errors
* Verify iframe dimensions match device size
* Check if scale parameter is set appropriately
* Ensure parent container has sufficient space
* Test in different browsers
* Implement lazy loading for multiple embeds
* Reduce number of embeds per page
* Use smaller device scale when possible
* Enable browser caching
* Some features may require full App Page access
* Check if permissions are properly configured
* Verify query parameters are correctly formatted
* Test on actual App Page first
## API Integration
Control embedded apps programmatically:
```javascript
// Dynamically create and configure embedded app
function embedApp(containerId, appId, options = {}) {
const container = document.getElementById(containerId);
const iframe = document.createElement('iframe');
// Build URL with parameters
const params = new URLSearchParams(options);
iframe.src = `https://nativebridge.io/embed/${appId}?${params}`;
// Set iframe attributes
iframe.width = options.width || '400';
iframe.height = options.height || '642';
iframe.title = options.title || 'App Demo - Powered By NativeBridge';
iframe.frameBorder = '0';
iframe.allow = 'accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share';
iframe.referrerPolicy = 'strict-origin-when-cross-origin';
iframe.allowFullscreen = true;
container.appendChild(iframe);
}
// Usage
embedApp('demo-container', 'VpJE', {
theme: 'light',
device: 'iphone14pro',
scale: 75,
centered: true,
autoplay: true,
title: 'Your Mobile App - Powered By NativeBridge'
});
```
## Next Steps
Configure who can embed your apps
Automate app management and embedding
# App Permissions
Source: https://docs.nativebridge.io/platform/app-management/permissions
Control who can access your app and what features they can use
# App Permissions
## Who Can Run Your App
Control access to your app through different sharing methods and permission levels.
### Magic Link Access
When you share your app via magic link, you have control over who can access it:
```
https://nativebridge.io/app/{appId}
```
By default, anyone with the magic link can run your app. This makes it easy to share with stakeholders, clients, and testers without requiring them to create accounts.
### Authenticated Access
For apps containing sensitive data, you can require users to be authenticated and linked to your organization before they can access the App Page.
## Permission Levels
NativeBridge offers flexible permission management at two levels:
Advanced permissions are only available for Starter, Growth and Custom plans
### Organization-Level Permissions
Set default permissions that apply to all apps in your organization:
Go to [Organization → Session Defaults](https://nativebridge.io/organization/session-defaults)
Set your preferred default permissions for all apps
These settings will apply to all new apps and existing apps without custom permissions
### App-Level Permissions
Override organization defaults with app-specific permissions:
App-level permissions will override organization defaults. We recommend using organization-level permissions for consistency unless you need specific exceptions.
Navigate to your [Dashboard](https://nativebridge.io/dashboard) and select your app
Select the specific build you want to configure permissions for
Go to **Settings → App Permissions** and adjust as needed
App permissions can also be configured when uploading via our API. See the [API Reference](/api-reference) for details.
## Available Permissions
Configure these permissions to control what features are available when someone accesses your app:
| Permission | Description | Default |
| ------------------------- | ----------------------------------------------------------- | --------------- |
| **run** | Allow running your application | ✅ Enabled |
| **networkProxy** | Specify a custom network proxy when running the app | ❌ Auth Required |
| **networkIntercept** | Use NativeBridge's intercepting proxy for network debugging | ❌ Auth Required |
| **debugLog** | View app's console output (NSLog/Logger or Logcat) | ❌ Auth Required |
| **adbConnect** | Connect ADB for Android debugging | ❌ Auth Required |
| **androidPackageManager** | Install additional APKs during app session | ❌ Auth Required |
| **deviceControl** | Access device controls (rotation, location, etc.) | ✅ Enabled |
| **mediaUpload** | Upload images/videos to the device | ✅ Enabled |
| **screenshot** | Take screenshots of the app | ✅ Enabled |
## Permission Scenarios
### Public Demo
For public demos and marketing:
* **run**: Public
* **screenshot**: Public
* **deviceControl**: Public
* All debugging features: Authenticated
### Internal Testing
For QA and development teams:
* All permissions: Authenticated
* Requires team members to sign in
### Client Review
For sharing with clients:
* **run**: Public
* **screenshot**: Public
* **deviceControl**: Public
* Technical features: Authenticated
### Beta Testing
For beta testers:
* **run**: Public with expiring links
* **screenshot**: Public
* **debugLog**: Public (for bug reports)
* Admin features: Authenticated
## Security Best Practices
Set expiration dates on magic links for time-limited access
Enable authentication for apps with sensitive data
Keep debugging features restricted to authenticated users
Track who accesses your apps and when
## Managing Access
### Revoking Access
To revoke access to a shared app:
1. **Delete the magic link** - Removes public access immediately
2. **Update permissions** - Change to authenticated-only access
3. **Upload new build** - Previous build links become invalid
### Tracking Usage
Monitor app access through:
* Usage analytics dashboard
* Access logs
* Session recordings (with permission)
## API Configuration
Configure permissions programmatically when uploading apps:
```javascript
// Upload with custom permissions
const response = await fetch('https://api.nativebridge.dev/v1/apps', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
},
body: JSON.stringify({
file: appFile,
permissions: {
run: 'public',
debugLog: 'authenticated',
networkIntercept: 'authenticated',
adbConnect: 'authenticated'
}
})
});
```
## Next Steps
Start uploading and setting permissions
Automate permission management
# Running & Testing Apps
Source: https://docs.nativebridge.io/platform/app-management/running-and-testing-apps
Run, test, and debug your mobile apps instantly on real devices in the cloud via magic links
# Running Apps
## The App Page: Your Magic Link Destination
When anyone clicks a **magic link** you've shared, they're instantly taken to the **App Page** - NativeBridge's powerful, browser-based testing environment. No downloads, no installations, no setup - just immediate access to your app running on real devices in the cloud.
**What is the App Page?**
The App Page is the interactive testing interface that opens when someone clicks your magic link. It's where your app comes to life in the browser, complete with device controls, debugging tools, and testing features.
## Features Available on the App Page
When stakeholders access your app via magic link, they get instant access to:
### Device & OS Selection
* Wide range of supported devices and OS versions
* Switch between different device models in real-time
* Test on the latest iOS and Android versions
### Debugging Tools
Advanced debugging capabilities to streamline your development:
* **UI Automation (AppRecorder)** - Record and replay user interactions
* **Network Traffic Monitor** - Inspect all network requests and responses
* **Debug Logs** - View console and system logs in real-time
* **ADB Tunnel** - Direct ADB access (Android only)
### Device Toolbar
Complete control over device features and settings:
* Home/Lock buttons
* Rotate device orientation
* Shake device gesture
* Toggle soft keyboard
* Light/Dark mode toggle
* Change GPS location
* Switch between languages
* Adjust font scale
* Biometric authentication
* Add media files
* Take screenshots
* Screen recording
## Accessing the App Page
The App Page is what your users see when they click on a magic link. There are several ways to access it:
### Via Magic Link (Primary Method)
When you upload an app and generate a magic link, anyone with the link can instantly access the App Page:
```
https://nativebridge.io/app/{appId}
```
**This is what happens when someone clicks your magic link:**
1. They're taken directly to the App Page in their browser
2. The app loads instantly on a cloud device
3. They can start testing immediately - no setup required
### Direct Access Methods
#### Latest Build
The magic link defaults to the latest version of the app when opened. You can access the most recent build directly:
```
https://nativebridge.io/app/{appId}
```
Go to your [Apps Dashboard](https://nativebridge.io/dashboard/apps)
Click the **Play** button on the app you want to run
The App Page launches with your app running on the selected device
#### Specific Build
Access a specific build version using the version or via the drop down on the magic link page:
```
https://nativebridge.io/app/{appId}?version={appVersion}
```
Example
```
https://nativebridge.io/app/aBcD?version=3.0
```
To access specific builds through the dashboard:
1. Navigate to your [Apps page](https://nativebridge.io/dashboard/apps)
2. Select the app containing your desired build
3. Browse and select from available builds in the builds history
4. The App Page opens with that specific build
## Creating & Sharing Magic Links
Magic links are the primary way to share your app. When recipients click the link, they're taken directly to the App Page where your app runs instantly.
Upload your app and instantly get a magic link that opens the App Page
Control what features are available on the App Page for different users
Monitor how users interact with your app through the App Page
Set time limits for how long the App Page remains accessible
**Important:** Anyone with the magic link can access the App Page and test your app. Share links only with intended recipients and use expiration dates for sensitive apps.
## Testing Workflows on the App Page
When you or your stakeholders access the App Page via magic link, several testing workflows are available:
### Manual Testing
Perfect for exploratory testing and bug reproduction directly on the App Page:
1. Click the magic link to open the App Page
2. Select your target device and OS from the toolbar
3. Interact with your app as a real user would
4. Use the built-in debugging tools to identify issues
5. Share findings with your team instantly
### Stakeholder Review
The App Page is ideal for getting feedback without technical setup:
1. Generate a magic link after uploading your app
2. Share the link with stakeholders via email or chat
3. They click the link and the App Page opens immediately
4. They can test the app and provide feedback in real-time
5. No app stores, no downloads, no provisioning profiles needed
### Automated Testing
While users interact with the App Page manually, you can also:
* Run Appium tests against the same environment
* Execute Maestro flows
* Perform regression testing
* Generate test reports
### Cross-Platform Testing
The App Page allows instant switching between configurations:
* Different OS versions
* Various screen sizes
* Multiple device manufacturers
* Network conditions
All accessible from the same magic link!
## Next Steps
Learn about advanced debugging tools
Set up automated testing workflows
Integrate with your development workflow
# Android
Source: https://docs.nativebridge.io/platform/app-management/uploading-apps/android
Upload and test your Android applications on real devices in the cloud
# Android
## Finding your APK file
### With Android Studio
Select **Build** → **Build APK(s)** → **Build APK(s)** or **Build** → **Generate Signed APK** (and follow the prompts)
Navigate to the Build menu in Android Studio and select your preferred build option
Once the build is complete, you can locate the `.apk` file by selecting `locate` in the dialog that appears, or by navigating to:
```
{project_name}/{app_module_name}/build/outputs/apk/
```
### With Gradle
Generate your build with `gradle` by running the `assemble` command for your preferred app build variant (e.g. `debug` variant):
```bash
./gradlew assembleDebug
```
Once the build is complete, you can locate the `.apk` file by navigating to:
```
{project_name}/{app_module_name}/build/outputs/apk/
```
## Converting AAB to APK
NativeBridge currently only supports `apk` files for Android. If you have an `aab` (Android App Bundle) file, you'll need to convert it to an `apk` using Google's [`bundletool`](https://developer.android.com/tools/bundletool).
### Generate Universal APKs
```bash
bundletool build-apks --bundle=//{aab_name}.aab \
--output=/{your_app}/{app_name}.apks \
--mode=universal
```
### Extract Single APK file
```bash
unzip -p /{your_app}/{app_name}.apks universal.apk > /{your_app}/{app_name}.apk
```
## Troubleshooting
If you are having trouble running your uploaded Android app in NativeBridge, we recommend testing the same APK on the standard Google-provided Android emulator locally over ADB.
Once your emulator is launched and available via `adb devices`, you can install it using:
```bash
adb install -r {your_app}.apk
```
Or simply drag the `apk` file into the emulator window.
Check our [Knowledge Base](https://support.nativebridge.dev/) for frequently asked questions and solutions.
## Next Steps
Ready to upload? Head to our upload page
Learn about iOS app preparation
# iOS
Source: https://docs.nativebridge.io/platform/app-management/uploading-apps/ios
Upload and test your iOS applications on real iPhone and iPad devices in the cloud
# iOS
NativeBridge currently only supports iOS Simulator builds (**.app**). A simulator build can be run in the iOS Simulator with Xcode. AppStore distribution device builds (**.ipa**) are also supported.
For optimal performance and compatibility, we recommend uploading ARM simulator builds of your iOS app.
## Finding your .app file
### With Xcode
The easiest way to get the iOS Simulator build is to run and build your application in Xcode while targeting an iOS Simulator.
Build and run your application from Xcode while targeting a simulator device from the device dropdown.
Once the build is complete and the app is running in the simulator, you can locate the `.app` file by navigating to **Product** → **Show Build Folder in Finder** → **Products/Debug-iphonesimulator**
### With Xcode Command Line Tools
You can also generate the iOS Simulator build of your app by building it directly via the command line using `xcodebuild`.
#### With .xcodeproj
```bash
xcodebuild -project '{project_name}.xcodeproj' \
-scheme '{scheme_name}' \
-sdk iphonesimulator \
-configuration Debug
```
#### With .xcworkspace
```bash
xcodebuild -workspace '{your_workspace_name}.xcworkspace' \
-scheme '{scheme_name}' \
-sdk iphonesimulator \
-configuration Debug
```
The `app` file can then be found under:
```
build/Debug-iphonesimulator/
```
## Compress your .app file
Once you have located your `.app` file, NativeBridge requires it to be in a compressed `zip` or `tar.gz` file:
```bash
zip -r {app_name}.zip {app_name}.app
```
## Troubleshooting
If you are having trouble running your uploaded iOS app in NativeBridge, we recommend trying to run the same app on a simulator provided by Apple in Xcode.
Once your simulator is launched, you can simply drag the `.app` file into the simulator window to test it locally first.
Also check our [Knowledge Base](https://support.nativebridge.dev/) for frequently asked questions and solutions.
## Next Steps
Ready to upload? Head to our upload page
Learn about Android app preparation
# Uploading Apps
Source: https://docs.nativebridge.io/platform/app-management/uploading-apps/uploading-apps
Get your mobile app onto NativeBridge in just minutes - ready to use across all major devices and operating systems.
# Uploading Apps
## Preparing your Build
Learn how to prepare your Android APK for upload
Learn how to prepare your iOS app for upload
We support cross-platform apps made in Flutter, Xamarin, React-Native, Kotlin Multiplatform and others which generate `.app` or `.apk` builds.
For common issues and troubleshooting, visit our [Knowledge base](https://support.nativebridge.dev/uploading-and-installing-apps).
## Upload your App
### With Upload Page
To upload your application via a web browser use our 'Upload' dialog on the landing page or on the [App Section](https://nativebridge.io/dashboard/apps)
#### Update existing Apps
To update an existing app, follow the same steps as uploading a new app via the [Upload](https://nativebridge.io/upload) dialog. The latest build will automatically be associated with your app.
To view all builds for an app, select the app and go to the App Builds Page.
In some instances, you might want to explicitly update a particular app build. To do so, follow these steps:
1. Go to the [Apps Dashboard](https://nativebridge.io/dashboard/apps)
2. **Select the app**
3. Click on 'Upload a new version'
4. Done
### With CI/CD and Third-Party Integrations
NativeBridge integrates with several popular CI/CD tools and other third-party services, allowing you to:
* **Ensure Your App is Always Up-To-Date:**
Automatically upload the latest builds with one of our many CI/CD integrations.
* **Eliminate Manual Processes:**
Automate rolling out of updated apps or specific builds, saving time and effort.
* **Improve User and Development Workflows:**
Integrate with tools such as Storybook Native and Expo to improve user and developer experiences.
* **Run Tests on Pull Requests:**
Automatically upload and test builds on Pull Requests for efficient quality assurance.
Available integrations include:
Automate your workflow with GitHub Actions
Create review apps with GitLab CI/CD
Deploy with Bitrise step
Seamless integration with Expo
Automate with Fastlane
Component-driven development
If there is a 3rd party integration that you think should be on this list, please let us [know](mailto:contact@autoflowapp.com)!
### With REST API
NativeBridge also supports uploading your application programmatically by making use of our REST API:
Check out detailed documentation here
The **latest build** refers to the most recent version of your app on Android, identified by the [versionCode](https://developer.android.com/studio/publish/versioning#versioningsettings), and on iOS, by the [CFBundleShortVersionString](https://developer.apple.com/documentation/bundleresources/information_property_list/cfbundleshortversionstring) and [CFBundleVersion](https://developer.apple.com/documentation/bundleresources/information_property_list/cfbundleversion).
# Test & App Automation
Source: https://docs.nativebridge.io/testing/test-automation
Enterprise-grade mobile application testing and automation platform supporting Appium, Maestro, and custom frameworks for comprehensive quality assurance
## Overview
NativeBridge Test Automation provides a powerful, cloud-based platform for automating mobile application testing across iOS and Android devices. With support for industry-standard frameworks like Appium and Maestro, teams can execute comprehensive test suites, continuous integration workflows, and performance validations at scale.
Full compatibility with Appium WebDriver protocol for cross-platform testing
Native support for Maestro's declarative testing approach
Access to real devices in the cloud for authentic testing scenarios
Seamless integration with popular CI/CD pipelines
## Getting Started
### Accessing the Automation Platform
Click on the profile icon in the top-right corner of the interface
Choose **App Automation** from the menu or navigate directly to [App Automation Section](https://nativebridge.io/dashboard/app-automation)
Select an existing workspace or create a new one for your automation projects
## Project Management
### Creating Projects
NativeBridge offers multiple methods to initialize your automation projects:
Start fresh with a structured project template:
* Pre-configured directory structure
* Sample test files for quick start
* Framework-specific boilerplate code
* Environment configuration templates
Upload existing test suites from your local environment:
* Drag-and-drop folder upload
* Automatic dependency detection
* Configuration file recognition
* Bulk file import with structure preservation
Connect directly to your repository:
* OAuth-based authentication
* Branch selection and management
* Automatic sync with commits
* Pull request integration
### IDE Environment
The integrated development environment provides a comprehensive workspace for test development:
* **Syntax Highlighting**: Language-specific highlighting for test scripts
* **IntelliSense**: Auto-completion for framework methods and properties
* **Error Detection**: Real-time syntax and logic error identification
* **Code Formatting**: Automatic code formatting and linting
* **Project Explorer**: Hierarchical view of all project files
* **Search & Replace**: Global search across all project files
* **Version Control**: Built-in Git integration for tracking changes
* **File Templates**: Quick creation of test files from templates
* **Test Runner**: Execute tests directly from the editor
* **Debugging**: Breakpoint support and step-through debugging
* **Console Output**: Real-time test execution logs
* **Result Viewer**: Interactive test result analysis
## Test Execution
### Execution Methods
Run tests directly from the web interface with visual feedback
Programmatic execution via REST API for automation pipelines
Shareable URLs for triggering specific test suites
### Running Tests via UI
#### Single Test Execution
1. Navigate to your project in the IDE
2. Select the desired spec file from the project explorer
3. Click the **Run** button (green play icon) in the toolbar
4. Configure device and environment settings in the modal
5. Monitor real-time execution progress
#### Batch Test Execution
**Multi-file Selection**: Hold `Ctrl/Cmd` while clicking to select multiple test files, or use `Shift+Click` for range selection. All selected tests will run sequentially or in parallel based on your configuration.
### API-Based Execution
Integrate test execution into your CI/CD pipeline:
```bash
curl -X POST https://api.nativebridge.io/v1/tests/run \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"projectId": "your-project-id",
"testFiles": ["test1.spec.js", "test2.spec.js"],
"device": "iPhone-14-Pro",
"framework": "appium"
}'
```
### Magic Links
Generate shareable execution links for non-technical stakeholders:
1. Configure your test suite in the UI
2. Click **Generate Magic Link**
3. Share the URL with team members
4. Recipients can trigger tests without platform access
## Supported Frameworks
### Appium Configuration
```json
{
"platformName": "iOS",
"platformVersion": "16.0",
"deviceName": "iPhone 14 Pro",
"app": "path/to/app.ipa",
"automationName": "XCUITest",
"noReset": true
}
```
```javascript
describe('Login Test', () => {
it('should login successfully', async () => {
await driver.findElement(By.id('username')).sendKeys('user@example.com');
await driver.findElement(By.id('password')).sendKeys('password123');
await driver.findElement(By.id('loginButton')).click();
const welcomeText = await driver.findElement(By.id('welcomeMessage')).getText();
expect(welcomeText).toBe('Welcome back!');
});
});
```
### Maestro Configuration
```yaml
appId: com.example.app
---
- launchApp
- tapOn: "Get Started"
- inputText: "user@example.com"
- tapOn: "Continue"
- assertVisible: "Welcome Dashboard"
```
```yaml
appId: com.example.app
env:
USERNAME: test@example.com
PASSWORD: ${PASSWORD}
---
- launchApp:
clearState: true
- tapOn:
id: "login_button"
- inputText: ${USERNAME}
- tapOn: "Next"
- inputText: ${PASSWORD}
- tapOn: "Sign In"
- waitForAnimationToEnd
- takeScreenshot: "login_success"
```
## Advanced Features
### Parallel Execution
Run multiple tests simultaneously across different devices:
**Performance Boost**: Parallel execution can reduce total test time by up to 80% compared to sequential runs. Configure parallelization in your project settings.
### Test Data Management
Secure storage and injection of sensitive test data
CSV, JSON, and Excel support for data-driven testing
Built-in functions for generating test data on-the-fly
Integration with external data sources and services
### Reporting & Analytics
#### Test Reports
* **Detailed Results**: Pass/fail status, execution time, error messages
* **Screenshots**: Automatic capture at failure points
* **Video Recording**: Full session recordings for debugging
* **Performance Metrics**: CPU, memory, and network usage
#### Analytics Dashboard
* **Trend Analysis**: Historical pass rates and execution times
* **Flaky Test Detection**: Identify unstable tests automatically
* **Coverage Metrics**: Track test coverage across features
* **Custom Dashboards**: Build personalized views with key metrics
## Best Practices
* Group related tests into suites
* Use descriptive naming conventions
* Implement page object patterns
* Maintain separate configuration files
* Minimize unnecessary waits
* Use efficient element locators
* Implement smart retry logic
* Cache reusable test data
* Regular review of test failures
* Update locators proactively
* Remove obsolete tests
* Document test purposes clearly
* Automate test triggers on commits
* Set up quality gates
* Configure notifications
* Archive test artifacts
## Troubleshooting
### Common Issues
| Issue | Solution |
| ------------------------- | -------------------------------------------------- |
| Tests timing out | Increase wait times or check network connectivity |
| Element not found | Verify selector accuracy and page load status |
| Session creation failed | Check device availability and app compatibility |
| Parallel execution errors | Reduce concurrency or increase resource allocation |
**Resource Limits**: Be aware of your plan's concurrent execution limits. Exceeding these may result in queued tests or execution failures.
## API Reference
### Authentication
All API requests require authentication via Bearer token:
```bash
Authorization: Bearer YOUR_API_KEY
```
### Endpoints
* `POST /v1/tests/run` - Execute test suite
* `GET /v1/tests/{id}/status` - Check execution status
* `GET /v1/tests/{id}/results` - Retrieve test results
* `POST /v1/projects/create` - Create new project
* `PUT /v1/projects/{id}/update` - Update project configuration
## Related Resources
For additional documentation and support resources, please check the main platform documentation or contact your system administrator.