iOS Luciq Migration

Overview

This guide helps you migrate your iOS 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

Pre-Migration Checklist

🔒 Backup Your Project

[ ] 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.

Tip: Assess your project's complexity using our Migration Complexity Assessment to choose the best approach for you

🔍 Project Assessment

[ ] Identify how the Instabug SDK is integrated (CocoaPods, Swift Package Manager, or Manual). [ ] Check for an Instabug.plist file if you use an on-premise or dedicated cloud setup. [ ] Note any custom build scripts that might reference Instabug paths or symbols.

⚙️ Environment Preparation

[ ] Ensure your project builds successfully without any existing errors. [ ] Clean the build folder in Xcode (Product > Clean Build Folder or Cmd + Shift + K). [ ] Run pod install or swift package resolve to ensure all dependencies are correctly synced.shel


Migration Complexity Assistant

Project Type
Complexity
Recommended Approach
Estimated Time

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

Step 1: Migrate Your Dependency

Quick Option

This step can be automated using our migration script. Continue reading for manual instructions.

Update the SDK dependency in your project's configuration based on your dependency manager.

For CocoaPods Users

In your Podfile, change pod 'Instabug' to pod 'Luciq'.

Before:

After:

Then, run pod install in your terminal.

For Swift Package Manager (SPM) Users

  1. In Xcode, navigate to your project's Package Dependencies tab.

  2. Select the "InstabugSDK" package and click the minus (-) button to remove it.

  3. Click the plus (+) button, and in the search bar, enter the new repository URL: https://github.com/luciqai/luciq-ios-sdk.

  4. Follow the prompts to add the new LuciqSDK package.

For Carthage Users

In your Cartfile, change the Instabug dependency to point to the new Luciq repository.

Before:

After:

Then, run the following command in your terminal:

Finally, remove InstabugSDK.xcframework from your project in Xcode and drag the newly built LuciqSDK.xcframework from the Carthage/Build folder into your target's "Frameworks, Libraries, and Embedded Content" section.

For Manual Installations

  1. Locate and remove InstabugSDK.xcframework from your project navigator and target's "Frameworks, Libraries, and Embedded Content" section.

  2. Download and add the new LuciqSDK.xcframework to your project.

Step 2: Migrate On-Premise Configuration File (Enterprise Only)

⚠️ Important: This step is only for enterprise customers using a custom Instabug.plist file for on-premise setups. If you do not use this file, you can safely skip this step.

The SDK now looks for a LuciqConfig.plist file. You must rename your existing file and update the keys within it.

  1. Rename the File In your Xcode project, find Instabug.plist and rename it to LuciqConfig.plist.

  2. Update the Keys Open LuciqConfig.plist and update the keys according to the table below. The URL values should remain unchanged.

Old Key
New Key

InstabugURL

SDKBaseURL

InstabugAPMURL

APMBaseURL

InstabugMonitoringURL

SDKMonitoringBaseURL

Example Before (Instabug.plist):

Example After (LuciqConfig.plist):

Step 3: Migrate Your Source Code (Swift & Objective-C)

Quick Option

This step can be automated using our migration script. Continue reading for manual instructions.

Perform the following find-and-replace operations across your entire Xcode workspace.

  1. Update Import Statements

  1. Update code symbols Perform these case-sensitive "Find and Replace in Workspace" operations:

  • Main Class Name: Find Instabug and replace with Luciq.

  • Symbol Prefix: Find IBG and replace with LCQ.

  • Note: In Swift, most type names that were prefixed with IBG now have the prefix removed (e.g., IBGReport becomes Report). The script handles this, but for manual migration, refer to the full mapping table.

Code Snippet Example (Swift):

Before:

After:


Automated Migration Script

Introduction

To simplify the migration, our migrate-luciq.sh script automates the entire process. The script performs a comprehensive find-and-replace operation, handling:

  • Source Code: Replaces Instabug and IBG symbols in all .swift, .m, and .h files.

  • Configuration File: Renames Instabug.plist to LuciqConfig.plist and updates all keys within it.

  • Xcode Project File: Updates the .pbxproj file to reflect the renamed .plist, ensuring Xcode finds the new file reference.

Where to find it?

You can find the migration script in Luciq's public GitHub repository here.

Step-by-Step Usage Guide

  1. Make the Script Executable Open Terminal, navigate to where you saved the script, and run: chmod +x migrate-luciq.sh

  2. Run the Migration ⚠️ Warning: This script modifies your files directly and the changes are irreversible. Please ensure you have committed all your work to version control and created a backup branch before proceeding, as recommended in the Pre-Migration Checklist. Once you are ready, execute the script on your project's root directory: ./migrate-luciq.sh /path/to/your/project You will be prompted for a final confirmation before the script begins modifying your files. Type y to proceed.

  3. Verify the Migration After the script finishes, it is crucial to verify the results:

    • Open your project in Xcode.

    • Clean the build folder (Product > Clean Build Folder).

    • Build the project (Product > Build or Cmd + B) to check for any compilation errors.

    • Use your version control tool (e.g., git diff) to meticulously review all changes before committing them to your repository.

Safety Features

🛡️ Version Control Prerequisite: The script should only be run on a project with a clean version control status. This is your primary safety net for reviewing and reverting changes.

🤔 User Confirmation: The script requires explicit user confirmation before modifying any files, giving you a final chance to cancel the operation.

System Requirements

  • macOS Environment: The script relies on the plutil command-line tool, which is standard on macOS.

  • Bash Shell: A standard Bash-compatible shell is required to execute the script.

SwiftUI Integrator Migration

If your project uses our command-line tool to automatically instrument SwiftUI views, you'll need to update your build process. The InstabugSwiftUIIntegrator has been renamed to LuciqSwiftUIIntegrator as part of the rebranding.

What is the SwiftUI Integrator?

The LuciqSwiftUIIntegrator is a powerful command-line tool that automatically adds instrumentation to your SwiftUI code during the build process. It observes UI element states and user interactions (like taps and navigation) to enhance user experience monitoring and debugging. Importantly, all changes are reverted after the build, so your source code remains untouched.

How to Migrate?

Before you begin, it is essential that your project's codebase has been fully migrated from Instabug to Luciq. This can be accomplished either by using the automated migration script or by following the manual migration steps outlined previously. The LuciqSwiftUIIntegrator is designed to work on an already-migrated project and depends on the updated symbols and imports to function correctly.

  1. Clean Up Old Instrumentation Files (Recommended) Before running the new integrator, delete the old instrumentation cache folder named InstabugInstrumentation from your project's root directory. The new LuciqSwiftUIIntegrator will automatically create a new folder named LuciqInstrumentation on its first run. This step prevents retaining outdated files.

  2. Download the New Integrator You can download the new LuciqSwiftUIIntegrator from our public GitHub repository: Here

  3. Update Your Build Phase Script In Xcode, go to your target's Build Phases and locate the pre-build script that runs the integrator. You only need to change the name of the executable.

Before:

After:

After updating the script, your SwiftUI instrumentation will work seamlessly with the new LuciqSDK.

Fastlane Plugin Migration

If your project uses the fastlane-plugin-instabug_official plugin to upload dSYM files, you'll need to update your configuration to use the new fastlane-plugin-luciq_dsym_upload plugin. This plugin is responsible for uploading symbolication files to Luciq.

How to Migrate?

Follow these steps to update your Fastlane configuration.

Step 1: Update Your Plugin

First, remove the old plugin and add the new one.

  1. Remove the old plugin by running this command in your terminal: fastlane remove_plugin instabug_official

  2. Add the new plugin by running this command: fastlane add_plugin luciq_dsym_upload Alternatively, if you manage plugins using a Pluginfile, update it: Before: gem 'fastlane-plugin-instabug_official' After: gem 'fastlane-plugin-luciq_dsym_upload' Then run bundle install.

Step 2: Update Your Fastfile

In your Fastfile, rename the action from instabug_official to luciq_dsym_upload. The available parameters (api_token, dsym_array_paths, eu, end_point) remain the same.

  • Environment Variable: If you were providing your API token via the environment variable FL_INSTABUG_API_TOKEN, you must rename it to FL_LUCIQ_API_TOKEN.

Example Fastfile Lane (Before):

Example Fastfile Lane (After):

FAQ

Automated Script & File System

  1. What specific files does themigrate-luciq.sh script modify? ⚙️ The script is designed to perform a comprehensive search and replace operation. It will modify:

    • Source Code Files: Any file with a .swift, .m, or .h extension within the provided project path.

    • Configuration File: It will rename Instabug.plist to LuciqConfig.plist.

    • Plist Contents: It will use the plutil command to replace the old keys (e.g., InstabugURL) with the new keys (e.g., SDKBaseURL) inside the newly renamed LuciqConfig.plist.

    • Xcode Project File: It will modify the .pbxproj file to update the file reference from Instabug.plist to LuciqConfig.plist, ensuring Xcode can find the file after it's renamed.

  2. I ran the script, but it failed or my project has errors. What are the technical debugging steps? 🔧 If you encounter issues after running the script:

    • Do Not Commit: First, do not commit the changes.

    • Review the Diff: Use git diff to see every single change the script made. This is the most effective way to spot incorrect replacements or unintended modifications, especially in your .pbxproj file.

    • Check Script Permissions: Ensure the script was made executable with chmod +x migrate-luciq.sh.

    • Revert and Go Manual: If the diff is too noisy or the errors are complex, the safest option is to revert all changes (git checkout . or git stash) and perform the migration manually. The script is a powerful tool, but manual migration gives you granular control.

Code & Symbol Migration

  1. What is the most common pitfall when migrating Swift code symbols? 🐛 The most common mistake is overlooking the prefix removal rule for Swift types. While the main class becomes Luciq and the symbol prefix changes from IBG to LCQ in Objective-C, in Swift, most class/struct/enum names that were prefixed with IBG now have the prefix removed entirely.

    • Incorrect: let myReport = LCQReport()

    • Correct: let myReport = Report() Similarly, IBGSurvey becomes Survey, and IBGInvocationEvent becomes InvocationEvent. Always refer to the "New Name (Swift)" column in the Complete Symbol Mapping table.

  2. Are there any symbols that don't follow the standard renaming rules? ⚠️ Yes. A few symbols are exceptions to the general find-and-replace rules. These are highlighted in the mapping table. For example:

    • Enum: IBGReportType is renamed to LCQReportCategory in Objective-C and ReportCategory in Swift. This is a semantic change, not just a prefix swap.

    • Enum: IBGActionType becomes LCQConsentAction / ConsentAction.

    • Properties: Some properties like instabugLogs were renamed to luciqLogs without following the IBGprefix convention. Carefully review the highlighted items in the Complete Symbol Mapping table for these specific cases.

  3. I'm getting "'file not found'" errors in Objective-C after updating my imports. What should I check?📄 This typically happens if you were importing specific sub-headers instead of the main SDK header. The script may not catch all permutations. You must ensure every #import statement is updated according to the Complete Mapping of Public Header Imports table.

    • Example: import <InstabugSDK/IBGReport.h> must be changed to import <LuciqSDK/LCQReport.h>.

    • Best Practice: After running pod install for the new Luciq pod, perform a global search in your workspace for #import <InstabugSDK> to find any headers that were missed.

Build Process & Configuration

  1. I renamed Instabug.plist, but my on-premise configuration isn't being loaded. What did I miss? 🔌 Renaming the file is only the first of two required steps. You must also update the keys within the file itself. The SDK no longer looks for InstabugURL or InstabugAPMURL. You need to open LuciqConfig.plist and change the keys to SDKBaseURL, APMBaseURL, etc., as specified in the guide. The URL values should remain the same.

  2. In what order should I migrate my main app code versus the SwiftUI Integrator? ➡️ You must migrate your application's source code first.

    1. Run the automated script or perform the manual migration on your codebase.

    2. Ensure the project builds successfully with the LuciqSDK.

    3. Only then should you go to your target's Build Phases and update the pre-build script to call LuciqSwiftUIIntegrator. The integrator depends on the updated LuciqSDK symbols to function correctly.

Post-Migration Troubleshooting

  1. After manual migration, Xcode throws "Use of unresolved identifier" errors everywhere. What's the fastest way to fix this? ⚡ This classic error has a few common causes after this migration:

    1. Check Imports: The most likely cause is a missed import statement. Ensure every relevant file has import LuciqSDK (for Swift) or #import <LuciqSDK/LuciqSDK.h> (for Objective-C).

    2. Clean Build Folder: Xcode's index might be stale. Use Product > Clean Build Folder (Cmd + Shift + K) to force Xcode to re-index the project with the new SDK.

    3. Verify Dependency: Ensure you've correctly removed the old SDK and added the new one in CocoaPods or SPM, and have run pod install or resolved Swift packages.

    4. Check Swift Prefix Removal: As mentioned in question #3, double-check that you've removed the IBGprefix from Swift types (e.g., use Report instead of IBGReport).\

    Reference: Complete Symbol Mapping

    The following tables provide a one-to-one mapping of every public symbol. The general rules are:

    • The Instabug class becomes Luciq.

    • Any symbol prefixed with IBG is now prefixed with LCQ in Objective-C.

    • In Swift, most types prefixed with IBG now have the prefix removed (e.g. IBGReportReport).

Symbol Type
Old Name
New Name (ObjC)
New Name (Swift)

Class

Instabug

Luciq

Luciq

Class

IBGReport

LCQReport

Report

Property (in IBGReport)

instabugLogs

luciqLogs

luciqLogs

Class

IBGTheme

LCQTheme

Theme (No Change)

Class

IBGUserStep

LCQUserStep

UserStep (No Change)

Class

IBGFeatureFlag

LCQFeatureFlag

FeatureFlag (No Change)

Class

IBGAPM

LCQAPM

APM (No Change)

Class

IBGExecutionTrace

LCQExecutionTrace

ExecutionTrace (No Change)

Class

IBGNetworkTrace

LCQNetworkTrace

NetworkTrace (No Change)

Class

IBGBugReporting

LCQBugReporting

BugReporting (No Change)

Class

IBGProactiveReportingConfigurations

LCQProactiveReportingConfigurations

ProactiveReportingConfigurations (No Change)

Class

IBGCrashReporting

LCQCrashReporting

CrashReporting (No Change)

Class

IBGCrashMetaData

LCQCrashMetaData

CrashMetaData (No Change)

Class

IBGCrashReporterState

LCQCrashReporterState

CrashReporterState (No Change)

Property (in IBGCrashReporterState)

instabugHandlers

luciqHandlers

luciqHandlers

Property (in IBGCrashReporterState)

isInstabugCrashReporterActive

isLuciqCrashReporterActive

isLuciqCrashReporterActive

Class

IBGCrashHandlersInfo

LCQCrashHandlersInfo

CrashHandlersInfo (No Change)

Class

IBGFunctionInfo

LCQFunctionInfo

FunctionInfo (No Change)

Class

IBGNonFatalError

LCQNonFatalError

NonFatalError (No Change)

Class

IBGNonFatalException

LCQNonFatalException

NonFatalException (No Change)

Protocol

IBGNonFatalBuilder

LCQNonFatalBuilder

NonFatalBuilder (No Change)

Class

IBGFeatureRequests

LCQFeatureRequests

FeatureRequests (No Change)

Class

IBGLog

LCQLog

LCQLog

Class

IBGNetworkLogger

LCQNetworkLogger

NetworkLogger (No Change)

Class

IBGReplies

LCQReplies

Replies (No Change)

Class

IBGSessionReplay

LCQSessionReplay

SessionReplay (No Change)

Property (in IBGSessionReplay)

IBGLogsEnabled

LCQLogsEnabled

lcqLogsEnabled

Class

IBGSessionMetadata

LCQSessionMetadata

SessionMetadata (No Change)

Class

IBGSessionMetadataNetworkLogs

LCQSessionMetadataNetworkLogs

SessionMetadataNetworkLogs (No Change)

Class

IBGSurveys

LCQSurveys

Surveys (No Change)

Class

IBGSurvey

LCQSurvey

Survey

Category Property

UIView.instabug_privateView

UIView.luciq_privateView

UIView.luciq_privateView

C Struct

ibgcrash_async_file_t

lcqcrash_async_file_t

lcqcrash_async_file_t

C Struct

IBGCrashReportWriterContext

LCQCrashReportWriterContext

CrashReportWriterContext

C Struct

IBGCrashReportWriter

LCQCrashReportWriter

CrashReportWriter

Global Function

InstabugLog(...)

LuciqLog(...)

LuciqLog(...)

Global Function

IBGLogVerbose(...)

LCQLogVerbose(...)

LCQLogVerbose(...)

Global Function

IBGLogDebug(...)

LCQLogDebug(...)

LCQLogDebug(...)

Global Function

IBGLogInfo(...)

LCQLogInfo(...)

LCQLogInfo(...)

Global Function

IBGLogWarn(...)

LCQLogWarn(...)

LCQLogWarn(...)

Global Function

IBGLogError(...)

LCQLogError(...)

LCQLogError(...)

Global Function

IBGNSLog(...)

LCQNSLog(...)

LCQNSLog(...)

Global Function

IBGNSLogWithLevel(...)

LCQNSLogWithLevel(...)

LCQNSLogWithLevel(...)

Enum

IBGInvocationEvent

LCQInvocationEvent

InvocationEvent

Enum

IBGAutoMaskScreenshotOption

LCQAutoMaskScreenshotOption

AutoMaskScreenshotOption

Enum

IBGColorTheme

LCQColorTheme

ColorTheme

Enum

IBGInvocationMode

LCQInvocationMode

InvocationMode

Enum

IBGBugReportingReportType

LCQBugReportingReportType

BugReportingReportType

Enum

IBGBugReportingType

LCQBugReportingType

BugReportingType (No Change)

Enum

IBGBugReportingOption

LCQBugReportingOption

BugReportingOption

Enum

IBGReportType

LCQReportCategory

ReportCategory

Enum

IBGActionType

LCQConsentAction

ConsentAction

Enum

IBGDismissType

LCQDismissType

SDKDismissType

Enum

IBGLocale

LCQLocale

SDKLocale

Enum

IBGPromptOption

LCQPromptOption

PromptOption

Enum

IBGPosition

LCQPosition

SDKPosition

Enum

IBGLogLevel

LCQLogLevel

SDKLogLevel

Enum

IBGSDKDebugLogsLevel

LCQSDKDebugLogsLevel

SDKDebugLogsLevel

Enum

IBGUserStepsMode

LCQUserStepsMode

UserStepsMode

Enum

IBGAttachmentType

LCQAttachmentType

AttachmentType

Enum

IBGExtendedBugReportMode

LCQExtendedBugReportMode

ExtendedBugReportMode

Enum

IBGAction

LCQAction

SDKAction

Enum

IBGWelcomeMessageMode

LCQWelcomeMessageMode

WelcomeMessageMode

Enum

IBGPlatform

LCQPlatform

SDKPlatform

Enum

IBGUIEventType

LCQUIEventType

UserInteractionEventType

Enum

IBGInteractionViewType

LCQInteractionViewType

InteractionViewType

Enum

IBGIssueType

LCQIssueType

ReportableIssueType

Enum

IBGCrashType

LCQCrashType

CrashType

Enum

IBGCrashReportConsent

LCQCrashReportConsent

CrashReportConsent

Enum

IBGOverAirType

LCQOverAirType

OverAirType

Enum

IBGSurveyFinishedState

LCQSurveyFinishedState

SurveyFinishedState

Enum

IBGNonFatalLevel

LCQNonFatalLevel

NonFatalLevel (No Change)

Enum

IBGNonFatalStackTraceMode

LCQNonFatalStackTraceMode

NonFatalStackTraceMode (No Change)

Type Alias

IBGCrashReportConsentReplyHandler

LCQCrashReportConsentReplyHandler

LCQCrashReportConsentReplyHandler

Complete Mapping of Public Header Imports

When migrating your Objective-C files, users may need to update any #import statements that reference specific headers from the old SDK.

Old Header Import
New Header Import

#import <InstabugSDK/InstabugSDK.h>

#import <LuciqSDK/LuciqSDK.h>

#import <InstabugSDK/Instabug.h>

#import <LuciqSDK/Luciq.h>

#import <InstabugSDK/IBGAPM.h>

#import <LuciqSDK/LCQAPM.h>

#import <InstabugSDK/IBGBugReporting.h>

#import <LuciqSDK/LCQBugReporting.h>

#import <InstabugSDK/IBGCrashAsyncFile.h>

#import <LuciqSDK/LCQCrashAsyncFile.h>

#import <InstabugSDK/IBGCrashHandlersInfo.h>

#import <LuciqSDK/LCQCrashHandlersInfo.h>

#import <InstabugSDK/IBGCrashMetaData.h>

#import <LuciqSDK/LCQCrashMetaData.h>

#import <InstabugSDK/IBGCrashReporterState.h>

#import <LuciqSDK/LCQCrashReporterState.h>

#import <InstabugSDK/IBGCrashReporting.h>

#import <LuciqSDK/LCQCrashReporting.h>

#import <InstabugSDK/IBGCrashReportWriter.h>

#import <LuciqSDK/LCQCrashReportWriter.h>

#import <InstabugSDK/IBGFeatureFlag.h>

#import <LuciqSDK/LCQFeatureFlag.h>

#import <InstabugSDK/IBGFeatureRequests.h>

#import <LuciqSDK/LCQFeatureRequests.h>

#import <InstabugSDK/IBGFunctionInfo.h>

#import <LuciqSDK/LCQFunctionInfo.h>

#import <InstabugSDK/IBGLog.h>

#import <LuciqSDK/LCQLog.h>

#import <InstabugSDK/IBGNetworkLogger.h>

#import <LuciqSDK/LCQNetworkLogger.h>

#import <InstabugSDK/IBGNetworkTrace.h>

#import <LuciqSDK/LCQNetworkTrace.h>

#import <InstabugSDK/IBGNonFatal.h>

#import <LuciqSDK/LCQNonFatal.h>

#import <InstabugSDK/IBGProactiveReportingConfigurations.h>

#import <LuciqSDK/LCQProactiveReportingConfigurations.h>

#import <InstabugSDK/IBGReplies.h>

#import <LuciqSDK/LCQReplies.h>

#import <InstabugSDK/IBGReport.h>

#import <LuciqSDK/LCQReport.h>

#import <InstabugSDK/IBGSessionMetadata.h>

#import <LuciqSDK/LCQSessionMetadata.h>

#import <InstabugSDK/IBGSessionReplay.h>

#import <LuciqSDK/LCQSessionReplay.h>

#import <InstabugSDK/IBGSurvey.h>

#import <LuciqSDK/LCQSurvey.h>

#import <InstabugSDK/IBGSurveyFinishedState.h>

#import <LuciqSDK/LCQSurveyFinishedState.h>

#import <InstabugSDK/IBGSurveys.h>

#import <LuciqSDK/LCQSurveys.h>

#import <InstabugSDK/IBGTheme.h>

#import <LuciqSDK/LCQTheme.h>

#import <InstabugSDK/IBGTypes.h>

#import <LuciqSDK/LCQTypes.h>

#import <InstabugSDK/IBGUserStep.h>

#import <LuciqSDK/LCQUserStep.h>

#import <InstabugSDK/UIView+Instabug.h>

#import <LuciqSDK/UIView+Luciq.h>

SwiftUI Interface Migration

The following table outlines the renaming for our public SwiftUI views and view modifiers. The instabug prefix has been replaced with luciq.

Symbol Type
Old Swift Name
New Swift Name

View Modifier

instabug_privateView()

luciq_privateView()

View

InstabugPrivateView

LuciqPrivateView

View Modifier

instabugTracedView(name:)

luciqTracedView(name:)

View

InstabugTracedView

LuciqTracedView

Complete Mapping of Localization String Constants (LCQTypes.h)

Predefined keys to be used to override any of the user-facing strings in the SDK. See + [Luciq setValue:forStringWithKey]

Old Constant Name (Instabug SDK)
New Constant Name (Luciq SDK)

kIBGStartAlertTextStringName

kLCQStartAlertTextStringName

kIBGShakeStartAlertTextStringName

kLCQShakeStartAlertTextStringName

kIBGTwoFingerSwipeStartAlertTextStringName

kLCQTwoFingerSwipeStartAlertTextStringName

kIBGEdgeSwipeStartAlertTextStringName

kLCQEdgeSwipeStartAlertTextStringName

kIBGScreenshotStartAlertTextStringName

kLCQScreenshotStartAlertTextStringName

kIBGFloatingButtonStartAlertTextStringName

kLCQFloatingButtonStartAlertTextStringName

kIBGBetaWelcomeMessageWelcomeStepTitle

kLCQBetaWelcomeMessageWelcomeStepTitle

kIBGBetaWelcomeMessageWelcomeStepContent

kLCQBetaWelcomeMessageWelcomeStepContent

kIBGBetaWelcomeMessageHowToReportStepTitle

kLCQBetaWelcomeMessageHowToReportStepTitle

kIBGBetaWelcomeMessageHowToReportStepContent

kLCQBetaWelcomeMessageHowToReportStepContent

kIBGBetaWelcomeMessageFinishStepTitle

kLCQBetaWelcomeMessageFinishStepTitle

kIBGBetaWelcomeMessageFinishStepContent

kLCQBetaWelcomeMessageFinishStepContent

kIBGBetaWelcomeDoneButtonTitle

kLCQBetaWelcomeDoneButtonTitle

kIBGLiveWelcomeMessageTitle

kLCQLiveWelcomeMessageTitle

kIBGLiveWelcomeMessageContent

kLCQLiveWelcomeMessageContent

kIBGInvalidEmailMessageStringName

kLCQInvalidEmailMessageStringName

kIBGInvalidEmailTitleStringName

kLCQInvalidEmailTitleStringName

kIBGInvalidNumberTitleStringName

kLCQInvalidNumberTitleStringName

kIBGReportCategoriesAccessibilityScrollStringName

kLCQReportCategoriesAccessibilityScrollStringName

kIBGAnnotationCloseButtonStringName

kLCQAnnotationCloseButtonStringName

kIBGAnnotationSaveButtonStringName

kLCQAnnotationSaveButtonStringName

kIBGAnnotationDrawnShapeStringName

kLCQAnnotationDrawnShapeStringName

kIBGAttachmentActionSheetStopScreenRecording

kLCQAttachmentActionSheetStopScreenRecording

kIBGAttachmentActionSheetUnmuteMic

kLCQAttachmentActionSheetUnmuteMic

kIBGAttachmentActionSheetMuteMic

kLCQAttachmentActionSheetMuteMic

kIBGScreenRecordingDuration

kLCQScreenRecordingDuration

kIBGInvalidNumberMessageStringName

kLCQInvalidNumberMessageStringName

kIBGCloseConversationsStringLabel

kLCQCloseConversationsStringLabel

kIBGBackToConversationsStringLabel

kLCQBackToConversationsStringLabel

kIBGSendMessageStringLabel

kLCQSendMessageStringLabel

kIBGDismissMessageStringLabel

kLCQDismissMessageStringLabel

kIBGReplyToMessageStringLabel

kLCQReplyToMessageStringLabel

kIBGInvocationTitleStringName

kLCQInvocationTitleStringName

kIBGInvocationTitleHintStringName

kLCQInvocationTitleHintStringName

kIBGChatsListHintStringName

kLCQChatsListHintStringName

kIBGOneChatsListHintStringName

kLCQOneChatsListHintStringName

kIBGCancelPromptHintStringName

kLCQCancelPromptHintStringName

kIBGReportCategoriesBackButtonStringName

kLCQReportCategoriesBackButtonStringName

kIBGReportCategoriesBackButtonHintStringName

kLCQReportCategoriesBackButtonHintStringName

kIBGAskAQuestionStringName

kLCQAskAQuestionStringName

kIBGFrustratingExperienceStringName

kLCQFrustratingExperienceStringName

kIBGReportBugStringName

kLCQReportBugStringName

kIBGReportFeedbackStringName

kLCQReportFeedbackStringName

kIBGReportBugDescriptionStringName

kLCQReportBugDescriptionStringName

kIBGReportFeedbackDescriptionStringName

kLCQReportFeedbackDescriptionStringName

kIBGReportQuestionDescriptionStringName

kLCQReportQuestionDescriptionStringName

kIBGRequestFeatureDescriptionStringName

kLCQRequestFeatureDescriptionStringName

kIBGProactiveReportingForceRestartAlertTitle

kLCQProactiveReportingForceRestartAlertTitle

kIBGProactiveReportingForceRestartAlertMessage

kLCQProactiveReportingForceRestartAlertMessage

kIBGProactiveReportingReportActionTitleName

kLCQProactiveReportingReportActionTitleName

kIBGProactiveReportingCancelActionTitleName

kLCQProactiveReportingCancelActionTitleName

kIBGAccessibilityReportFeedbackDescriptionStringName

kLCQAccessibilityReportFeedbackDescriptionStringName

kIBGAccessibilityReportBugDescriptionStringName

kLCQAccessibilityReportBugDescriptionStringName

kIBGAccessibilityRequestFeatureDescriptionStringName

kLCQAccessibilityRequestFeatureDescriptionStringName

kIBGPhotoPickerTitle

kLCQPhotoPickerTitle

kIBGProgressViewTitle

kLCQProgressViewTitle

kIBGGalleryPermissionDeniedAlertTitle

kLCQGalleryPermissionDeniedAlertTitle

kIBGGalleryPermissionDeniedAlertMessage

kLCQGalleryPermissionDeniedAlertMessage

kIBGMaximumSizeExceededAlertTitle

kLCQMaximumSizeExceededAlertTitle

kIBGMaximumSizeExceededAlertMessage

kLCQMaximumSizeExceededAlertMessage

kIBGiCloudImportErrorAlertTitle

kLCQiCloudImportErrorAlertTitle

kIBGiCloudImportErrorAlertMessage

kLCQiCloudImportErrorAlertMessage

kIBGEmailFieldPlaceholderStringName

kLCQEmailFieldPlaceholderStringName

kIBGEmailFieldAccessibilityStringLabel

kLCQEmailFieldAccessibilityStringLabel

kIBGEmailFieldAccessibilityStringHint

kLCQEmailFieldAccessibilityStringHint

kIBGNumberFieldPlaceholderStringName

kLCQNumberFieldPlaceholderStringName

kIBGNumberInfoAlertMessageStringName

kLCQNumberInfoAlertMessageStringName

kIBGCommentFieldPlaceholderForBugReportStringName

kLCQCommentFieldPlaceholderForBugReportStringName

kIBGCommentFieldPlaceholderForFeedbackStringName

kLCQCommentFieldPlaceholderForFeedbackStringName

kIBGCommentFieldPlaceholderForQuestionStringName

kLCQCommentFieldPlaceholderForQuestionStringName

kIBGCommentFieldPlaceholderForFrustratingExperienceStringName

kLCQCommentFieldPlaceholderForFrustratingExperienceStringName

kIBGCommentFieldAccessibilityStringLabel

kLCQCommentFieldAccessibilityStringLabel

kIBGCommentFieldBugAccessibilityStringHint

kLCQCommentFieldBugAccessibilityStringHint

kIBGCommentFieldImprovementAccessibilityStringHint

kLCQCommentFieldImprovementAccessibilityStringHint

kIBGCommentFieldAskQuestionAccessibilityStringHint

kLCQCommentFieldAskQuestionAccessibilityStringHint

kIBGCommentFieldFrustratingExperienceAccessibilityStringHint

kLCQCommentFieldFrustratingExperienceAccessibilityStringHint

kIBGChatReplyFieldPlaceholderStringName

kLCQChatReplyFieldPlaceholderStringName

kIBGAddScreenRecordingMessageStringName

kLCQAddScreenRecordingMessageStringName

kIBGAddVoiceMessageStringName

kLCQAddVoiceMessageStringName

kIBGAddImageFromGalleryStringName

kLCQAddImageFromGalleryStringName

kIBGExtraFieldsStringLabel

kLCQExtraFieldsStringLabel

kIBGAccessibilityExtraFieldsStepsLabel

kLCQAccessibilityExtraFieldsStepsLabel

kIBGAccessibilityExtraFieldsStepsRequiredLabel

kLCQAccessibilityExtraFieldsStepsRequiredLabel

kIBGRequiredExtraFieldsStringLabel

kLCQRequiredExtraFieldsStringLabel

kIBGAddExtraScreenshotStringName

kLCQAddExtraScreenshotStringName

kIBGAccessibilityReproStepsDisclaimerStringLabel

kLCQAccessibilityReproStepsDisclaimerStringLabel

kIBGAccessibilityImageAttachmentStringHint

kLCQAccessibilityImageAttachmentStringHint

kIBGAccessibilityVideoAttachmentStringHint

kLCQAccessibilityVideoAttachmentStringHint

kIBGTakeScreenshotAccessibilityStringLabel

kLCQTakeScreenshotAccessibilityStringLabel

kIBGTakeScreenRecordingAccessibilityStringLabel

kLCQTakeScreenRecordingAccessibilityStringLabel

kIBGSelectImageFromGalleryLabel

kLCQSelectImageFromGalleryLabel

kIBGAddAttachmentAccessibilityStringLabel

kLCQAddAttachmentAccessibilityStringLabel

kIBGAddAttachmentAccessibilityStringHint

kLCQAddAttachmentAccessibilityStringHint

kIBGExpandAttachmentAccessibilityStringLabel

kLCQExpandAttachmentAccessibilityStringLabel

kIBGCollapseAttachmentAccessibilityStringLabel

kLCQCollapseAttachmentAccessibilityStringLabel

kIBGAudioRecordingPermissionDeniedTitleStringName

kLCQAudioRecordingPermissionDeniedTitleStringName

kIBGAudioRecordingPermissionDeniedMessageStringName

kLCQAudioRecordingPermissionDeniedMessageStringName

kIBGScreenRecordingPermissionDeniedMessageStringName

kLCQScreenRecordingPermissionDeniedMessageStringName

kIBGMicrophonePermissionAlertSettingsButtonTitleStringName

kLCQMicrophonePermissionAlertSettingsButtonTitleStringName

kIBGMicrophonePermissionAlertLaterButtonTitleStringName

kLCQMicrophonePermissionAlertLaterButtonTitleStringName

kIBGChatsTitleStringName

kLCQChatsTitleStringName

kIBGTeamStringName

kLCQTeamStringName

kIBGRecordingMessageToHoldTextStringName

kLCQRecordingMessageToHoldTextStringName

kIBGRecordingMessageToReleaseTextStringName

kLCQRecordingMessageToReleaseTextStringName

kIBGMessagesNotificationTitleSingleMessageStringName

kLCQMessagesNotificationTitleSingleMessageStringName

kIBGMessagesNotificationTitleMultipleMessagesStringName

kLCQMessagesNotificationTitleMultipleMessagesStringName

kIBGScreenshotTitleStringName

kLCQScreenshotTitleStringName

kIBGOkButtonTitleStringName

kLCQOkButtonTitleStringName

kIBGSendButtonTitleStringName

kLCQSendButtonTitleStringName

kIBGCancelButtonTitleStringName

kLCQCancelButtonTitleStringName

kIBGThankYouAlertTitleStringName

kLCQThankYouAlertTitleStringName

kIBGThankYouAccessibilityConfirmationTitleStringName

kLCQThankYouAccessibilityConfirmationTitleStringName

kIBGThankYouAlertMessageStringName

kLCQThankYouAlertMessageStringName

kIBGAudioStringName

kLCQAudioStringName

kIBGScreenRecordingStringName

kLCQScreenRecordingStringName

kIBGImageStringName

kLCQImageStringName

kIBGReachedMaximimNumberOfAttachmentsTitleStringName

kLCQReachedMaximimNumberOfAttachmentsTitleStringName

kIBGReachedMaximimNumberOfAttachmentsMessageStringName

kLCQReachedMaximimNumberOfAttachmentsMessageStringName

kIBGVideoRecordingFailureMessageStringName

kLCQVideoRecordingFailureMessageStringName

kIBGSurveyEnterYourAnswerTextPlaceholder

kLCQSurveyEnterYourAnswerTextPlaceholder

kIBGSurveyNoAnswerTitle

kLCQSurveyNoAnswerTitle

kIBGSurveyNoAnswerMessage

kLCQSurveyNoAnswerMessage

kIBGVideoPressRecordTitle

kLCQVideoPressRecordTitle

kIBGCollectingDataText

kLCQCollectingDataText

kIBGLowDiskStorageTitle

kLCQLowDiskStorageTitle

kIBGLowDiskStorageMessage

kLCQLowDiskStorageMessage

kIBGInboundByLineMessage

kLCQInboundByLineMessage

kIBGExtraFieldIsRequiredText

kLCQExtraFieldIsRequiredText

kIBGExtraFieldMissingDataText

kLCQExtraFieldMissingDataText

kIBGFeatureRequestsTitle

kLCQFeatureRequestsTitle

kIBGFeatureDetailsTitle

kLCQFeatureDetailsTitle

kIBGStringFeatureRequestsRefreshText

kLCQStringFeatureRequestsRefreshText

kIBGFeatureRequestErrorStateTitleLabel

kLCQFeatureRequestErrorStateTitleLabel

kIBGFeatureRequestErrorStateDescriptionLabel

kLCQFeatureRequestErrorStateDescriptionLabel

kIBGFeatureRequestSortingByRecentlyUpdatedText

kLCQFeatureRequestSortingByRecentlyUpdatedText

kIBGFeatureRequestSortingByTopVotesText

kLCQFeatureRequestSortingByTopVotesText

kIBGStringFeatureRequestAllFeaturesText

kLCQStringFeatureRequestAllFeaturesText

kIBGAddNewFeatureRequestText

kLCQAddNewFeatureRequestText

kIBGAddNewFeatureRequestToastText

kLCQAddNewFeatureRequestToastText

kIBGAddNewFeatureRequestErrorToastText

kLCQAddNewFeatureRequestErrorToastText

kIBGAddNewFeatureRequestLoadingHUDTitle

kLCQAddNewFeatureRequestLoadingHUDTitle

kIBGAddNewFeatureRequestSuccessHUDTitle

kLCQAddNewFeatureRequestSuccessHUDTitle

kIBGAddNewFeatureRequestSuccessHUDMessage

kLCQAddNewFeatureRequestSuccessHUDMessage

kIBGAddNewFeatureRequestTryAgainText

kLCQAddNewFeatureRequestTryAgainText

kIBGAddNewFeatureRequestCancelPromptTitle

kLCQAddNewFeatureRequestCancelPromptTitle

kIBGAddNewFeatureRequestCancelPromptYesAction

kLCQAddNewFeatureRequestCancelPromptYesAction

kIBGFeatureRequestInvalidEmailText

kLCQFeatureRequestInvalidEmailText

kIBGFeatureRequestTimelineEmptyText

kLCQFeatureRequestTimelineEmptyText

kIBGFeatureRequestTimelineErrorDescriptionLabel

kLCQFeatureRequestTimelineErrorDescriptionLabel

kIBGFeatureRequestStatusChangeText

kLCQFeatureRequestStatusChangeText

kIBGFeatureRequestAddButtonText

kLCQFeatureRequestAddButtonText

kIBGFeatureRequestVoteWithCountText

kLCQFeatureRequestVoteWithCountText

kIBGFeatureRequestVoteText

kLCQFeatureRequestVoteText

kIBGFeatureRequestPostButtonText

kLCQFeatureRequestPostButtonText

kIBGFeatureRequestCommentsText

kLCQFeatureRequestCommentsText

kIBGFeatureRequestAuthorText

kLCQFeatureRequestAuthorText

kIBGFeatureRequestEmptyViewTitle

kLCQFeatureRequestEmptyViewTitle

kIBGFeatureRequestAddYourIdeaText

kLCQFeatureRequestAddYourIdeaText

kIBGFeatureRequestAnonymousText

kLCQFeatureRequestAnonymousText

kIBGFeatureRequestStatusPosted

kLCQFeatureRequestStatusPosted

kIBGFeatureRequestStatusPlanned

kLCQFeatureRequestStatusPlanned

kIBGFeatureRequestStatusStarted

kLCQFeatureRequestStatusStarted

kIBGFeatureRequestStatusCompleted

kLCQFeatureRequestStatusCompleted

kIBGFeatureRequestStatusMaybeLater

kLCQFeatureRequestStatusMaybeLater

kIBGFeatureRequestStatusMoreText

kLCQFeatureRequestStatusMoreText

kIBGFeatureRequestStatusLessText

kLCQFeatureRequestStatusLessText

kIBGFeatureRequestAddYourThoughtsText

kLCQFeatureRequestAddYourThoughtsText

kIBGEmailRequiredText

kLCQEmailRequiredText

kIBGNameText

kLCQNameText

kIBGEmailText

kLCQEmailText

kIBGTitleText

kLCQTitleText

kIBGDescriptionText

kLCQDescriptionText

kIBGUserConsentRequired

kLCQUserConsentRequired

kIBGUserConsentDefaultDescription

kLCQUserConsentDefaultDescription

kIBGStringFeatureRequestMyFeaturesText

kLCQStringFeatureRequestMyFeaturesText

kIBGSurveyIntroTitleText

kLCQSurveyIntroTitleText

kIBGSurveyIntroDescriptionText

kLCQSurveyIntroDescriptionText

kIBGSurveyIntroTakeSurveyButtonText

kLCQSurveyIntroTakeSurveyButtonText

kIBGDismissButtonTitleStringName

kLCQDismissButtonTitleStringName

kIBGStoreRatingThankYouTitleText

kLCQStoreRatingThankYouTitleText

kIBGStoreRatingThankYouDescriptionText

kLCQStoreRatingThankYouDescriptionText

kIBGSurveysNPSLeastLikelyStringName

kLCQSurveysNPSLeastLikelyStringName

kIBGSurveysNPSMostLikelyStringName

kLCQSurveysNPSMostLikelyStringName

kIBGSurveyNextButtonTitle

kLCQSurveyNextButtonTitle

kIBGSurveySubmitButtonTitle

kLCQSurveySubmitButtonTitle

kIBGSurveyAppStoreThankYouTitle

kLCQSurveyAppStoreThankYouTitle

kIBGSurveyAppStoreButtonTitle

kLCQSurveyAppStoreButtonTitle

kIBGExpectedResultsStringName

kLCQExpectedResultsStringName

kIBGActualResultsStringName

kLCQActualResultsStringName

kIBGStepsToReproduceStringName

kLCQStepsToReproduceStringName

kIBGReplyButtonTitleStringName

kLCQReplyButtonTitleStringName

kIBGAddAttachmentButtonTitleStringName

kLCQAddAttachmentButtonTitleStringName

kIBGDiscardAlertTitle

kLCQDiscardAlertTitle

kIBGDiscardAlertMessage

kLCQDiscardAlertMessage

kIBGDiscardAlertAction

kLCQDiscardAlertAction

kIBGDiscardAlertCancel

kLCQDiscardAlertCancel

kIBGVideoGalleryErrorMessageStringName

kLCQVideoGalleryErrorMessageStringName

kIBGVideoDurationErrorTitle

kLCQVideoDurationErrorTitle

kIBGVideoDurationErrorMessage

kLCQVideoDurationErrorMessage

kIBGAutoScreenRecordingAlertAllowText

kLCQAutoScreenRecordingAlertAllowText

kIBGAutoScreenRecordingAlertAlwaysAllowText

kLCQAutoScreenRecordingAlertAlwaysAllowText

kIBGAutoScreenRecordingAlertDenyText

kLCQAutoScreenRecordingAlertDenyText

kIBGAutoScreenRecordingAlertTitleText

kLCQAutoScreenRecordingAlertTitleText

kIBGAutoScreenRecordingAlertBodyText

kLCQAutoScreenRecordingAlertBodyText

kIBGReproStepsDisclaimerBody

kLCQReproStepsDisclaimerBody

kIBGReproStepsDisclaimerLink

kLCQReproStepsDisclaimerLink

kIBGReproStepsListHeader

kLCQReproStepsListHeader

kIBGReproStepsListEmptyStateLabel

kLCQReproStepsListEmptyStateLabel

kIBGReproStepsListTitle

kLCQReproStepsListTitle

kIBGReproStepsListItemName

kLCQReproStepsListItemName

kIBGInsufficientContentTitleStringName

kLCQInsufficientContentTitleStringName

kIBGInsufficientContentMessageStringName

kLCQInsufficientContentMessageStringName

Last updated