Android Luciq Migration
Overview
This guide helps you migrate your Android project from the Instabug SDK to the Luciq SDK. This change is part of a company-wide rebranding initiative. You can perform the migration manually by following the step-by-step instructions or use our automated migration script for a faster transition.
Prerequisites
Before starting the migration process, ensure your project meets the following requirements and take the necessary precautions.
Supported Instabug Versions
This migration guide supports projects currently using:
Instabug SDK (Manual & Automated): 16.x.x and above
Target Luciq SDK: 18.0.0
All Instabug modules: Core, APM, Crash, Bug, Survey, Features Request, NDK Crash, Compose, Compose APM, OkHttp Interceptors, gRPC Interceptors, Compiler Extension, Test Report
If you're using Instabug version prior to 16.0.0, it's recommended to upgrade Instabug SDK (consult change logs) before proceeding with this migration process.
Pre-Migration Checklist
Commit all changes to your version control system (e.g., Git).
Create a dedicated backup branch to allow for a clean rollback if needed.
Build and run your project to confirm it's in a stable, working state before you begin.
Assess your project's complexity using the Migration Complexity Assessment to choose the best approach for you.
Project Assessment
Identify all Instabug dependencies in your project
List custom Instabug configurations in build files
Note any custom ProGuard rules related to Instabug
Check for hardcoded Instabug references in code comments or strings
Environment Preparation
Sync project and resolve any existing build issues
Clean build cache: ./gradlew clean
Ensure stable internet connection (for dependency downloads)
Migration Complexity Assistant
Single-target, standard setup
🟢 Simple
Automated script
15-30 minutes
Multi-target, standard config
🟡 Medium
Automated script + manual review
1-2 hours
Complex setup, on-premise config
🔴 Complex
Manual migration or script + careful review
2-4 hours
When to Use Manual vs. Automated Migration
Use Automated Migration when:
You have a standard Instabug setup with minimal customization.
You are using a supported Instabug version.
Your project doesn't have complex custom build scripts that reference Instabug.
You are comfortable using command-line tools and have created a backup.
Use Manual Migration when:
You have a heavily customized Instabug implementation.
You are using an older, unsupported version of the Instabug SDK.
Your project has complex build logic or dependencies that the script might not handle.
You prefer granular control over every step of the migration process.
Step-by-Step Manual Migration
Migrate Your Dependency
Quick option: this step can be automated using the migration script.
General rules:
Replace
com.instabug.librarygroup withai.luciq.libraryReplace
instabugprefix in artifact names withluciqUpgrade artifact version to
18.0.0
Artifact name mappings:
instabug
luciq
instabug-apm
luciq-apm
instabug-crash
luciq-crash
instabug-bug
luciq-bug
instabug-survey
luciq-survey
instabug-features-request
luciq-features-request
instabug-ndk-crash
luciq-ndk-crash
instabug-compose
luciq-compose
instabug-compose-apm
luciq-compose-apm
instabug-apm-okhttp-interceptor
luciq-apm-okhttp-interceptor
instabug-apm-grpc-interceptor
luciq-apm-grpc-interceptor
instabug-core
luciq-core
instabug-with-okhttp-interceptor
luciq-with-okhttp-interceptor
instabug-plugin
luciq-plugin
instabug-test-report
luciq-test-report
instabug-compose-core
luciq-compose-core
Examples:
Before (Version Catalog libs.versions.toml):
After:
Before (build.gradle dependencies):
After:
Migrate your plugin integration
Actions:
Replace
com.instabug.library:instabug-plugin:16.0.1classpath withai.luciq.library:luciq-plugin:18.0.0(if used as classpath).Replace root plugin id
com.instabug.librarywithai.luciq.libraryand version18.0.0(if usingid).Replace module-level plugin ids according to mapping.
Plugin mappings:
instabug
luciq
instabug-crash
luciq-crash
instabug-apm
luciq-apm
instabug-compiler-extension
luciq-compiler-extension
Examples:
Classpath before:
After:
Root plugin before:
After:
Version Catalog plugin before:
After:
Module-level plugin before:
After:
Migrate your plugin configurations
Skip this step if you're not using the Instabug plugin.
Changes summary:
Replace
Instabug/instabugconfiguration closures with a unifiedluciqclosure.APM's
debugEnabledis removed; usesetDebugLogsEnabled()underluciqtop-level instead.Change
APMblock toapm(lowercase) insideluciq.
Naming mapping:
Instabug{}/instabug{}
luciq{}
Instabug { APM { } }
luciq { apm { } }
Migration steps:
Change
instabug/Instabugblocks toluciq.If both legacy and new blocks exist, merge into a single
luciqblock.Change
APMtoapm.If
apmhaddebugEnabled = {boolean}, remove it and addsetDebugLogsEnabled({boolean})at the top-levelluciqblock.
Examples:
Legacy Instabug before:
After:
Using both blocks, Instabug (legacy) and instabug
After:
Migrate your source code (Kotlin/Java)
Key changes:
SDK packages now use prefix
ai.luciqinstead ofcom.instabug.Public classes/methods containing
Instabug,IBG,instabug, oribgare renamed toLuciq/luciqas per casing.
Class/method mappings (select):
Class
Instabug
Luciq
Class
IBGNonFatalException
LuciqNonFatalException
Class
InstabugInvocationEvent
LuciqInvocationEvent
Class
InstabugFloatingButtonEdge
LuciqFloatingButtonEdge
Class
IBGBugReportingType
LuciqBugReportingType
Class
InstabugApmOkHttpEventListener
LuciqApmOkHttpEventListener
Class
InstabugOkhttpInterceptor
LuciqOkhttpInterceptor
Class
InstabugColorTheme
LuciqColorTheme
Method
Replies.isInstabugNotification()
Replies.isLuciqNotification()
Method
Instabug$Builder.setInstabugLogState()
Luciq$Builder.setLuciqLogState()
Composable
IBGScreen()
LuciqScreen()
Extension fn
ibgTrackingInfo()
luciqTrackingInfo()
Migration actions (apply to all Java/Kotlin files):
Replace import prefix
com.instabugwithai.luciq.Replace fully-qualified Instabug class references to
ai.luciq.Replace symbols (classes/methods/enums) according to the mapping table.
Update ProGuard rules: replace
com.instabugwithai.luciqwhere applicable.
Migrate your Manifest file
Only required if:
You specify Instabug application token as metadata
com.instabug.APP_TOKENfor early initialization.You override Instabug framework components (Activities, ContentProviders).
Component mappings:
ContentProvider
InstabugContentProvider
LuciqContentProvider
Activity
InstabugDialogActivity
LuciqDialogActivity
Activity
InstabugThanksActivity
LuciqThanksActivity
Migration actions:
Change metadata key
com.instabug.APP_TOKEN→ai.luciq.APP_TOKENReplace
com.instabugpackage prefix withai.luciqfor overridden components.Map component class names as per the table above.
Automated Migration Script
Introduction
The Luciq Migrator is a Python-based tool that automates the migration steps in this guide. It covers:
Gradle files: Version catalogs (
libs.versions.toml), dependencies, and plugin configurationsPlugin configurations: Legacy and new configuration block migrations
Java/Kotlin source code: Package imports, class names, method names, fully qualified references
Android Manifests: App tokens and ContentProvider declarations
Resource files:
instabug_config.json→luciq_config.jsonProGuard rules: Package name references
The script provides backups, dry-run previews, and follows the exact mapping tables defined in this guide.
Where to find it?
You can find the migration script in Luciq's Github public repository: https://github.com/luciqai/luciq-android-sdk/blob/master/luciq-migrator.zip
Step-by-Step Usage Guide
Step: Extract the Migration Scripts
Extract
luciq-migrator.zipin your Android project root directory:
Verify the directory structure:
Step: Make the Script Executable
Step: Preview Changes (Recommended)
Always preview changes first:
This shows:
Files that will be modified
Exact changes
Migration statistics No changes are applied in dry-run.
Step: Run the Migration
Run full migration once satisfied with preview:
The script will:
Create a backup in migration-backup/
Migrate files per mapping tables
Provide detailed statistics
Step: Verify the Migration
After migration, check for remaining references and build:
Options Catalog
Basic Options
--help
Show help message and usage examples
./luciq-migrator/migrate-to-luciq.sh --help
--dry-run
Preview changes without making modifications
./luciq-migrator/migrate-to-luciq.sh --dry-run
--output-file FILE
Write dry-run output to FILE (only with --dry-run)
./luciq-migrator/migrate-to-luciq.sh --dry-run --output-file changes.txt
Advanced Options
--source-only
Migrate only Java/Kotlin files, Manifest & resources (skip Gradle)
When you've already migrated Gradle files manually or want to test source code migration first
./luciq-migrator/migrate-to-luciq.sh --source-only
--no-backup
Skip creating backup (not recommended)
Only when you have your own backup strategy or project is version controlled
./luciq-migrator/migrate-to-luciq.sh --no-backup
Combining Options examples:
Migration Modes
Comprehensive Mode (Default): Migrates Gradle, Java/Kotlin, Manifest, Resources. Recommended for most users.
Source-Only Mode (
--source-only): Migrates Java/Kotlin, Manifest, Resources only.
Safety Features
Automatic Backup: Creates complete project backup before migration
Dry Run Mode: Preview all changes without applying them
Detailed Statistics: Shows what was modified
Easy Rollback: Restore from backup if issues occur
Zero Dependencies: Uses built-in Python functionality
System Requirements
Python 3.6+
No external dependencies (uses built-in Python modules)
Keep all migration scripts in the same directory
Pro Tip
Always run --dry-run first to understand the scope of changes, especially on large projects. The migration script is designed to be safe and reversible, but previewing changes helps ensure confidence in the process.
Q&As
Last updated about 1 month ago.
Last updated