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.
🔍 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
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
In Xcode, navigate to your project's Package Dependencies tab.
Select the "InstabugSDK" package and click the minus (
-) button to remove it.Click the plus (
+) button, and in the search bar, enter the new repository URL:https://github.com/luciqai/luciq-ios-sdk.Follow the prompts to add the new
LuciqSDKpackage.
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
Locate and remove
InstabugSDK.xcframeworkfrom your project navigator and target's "Frameworks, Libraries, and Embedded Content" section.Download and add the new
LuciqSDK.xcframeworkto 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.
Rename the File In your Xcode project, find Instabug.plist and rename it to LuciqConfig.plist.
Update the Keys Open LuciqConfig.plist and update the keys according to the table below. The URL values should remain unchanged.
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.
Update Import Statements
Update code symbols Perform these case-sensitive "Find and Replace in Workspace" operations:
Main Class Name: Find
Instabugand replace withLuciq.Symbol Prefix: Find
IBGand replace withLCQ.Note: In Swift, most type names that were prefixed with
IBGnow have the prefix removed (e.g.,IBGReportbecomesReport). 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
InstabugandIBGsymbols in all.swift,.m, and.hfiles.Configuration File: Renames
Instabug.plisttoLuciqConfig.plistand updates all keys within it.Xcode Project File: Updates the
.pbxprojfile 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
Make the Script Executable Open Terminal, navigate to where you saved the script, and run:
chmod +x migrate-luciq.shRun 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/projectYou will be prompted for a final confirmation before the script begins modifying your files. Type y to proceed.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
plutilcommand-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.
Clean Up Old Instrumentation Files (Recommended) Before running the new integrator, delete the old instrumentation cache folder named
InstabugInstrumentationfrom your project's root directory. The newLuciqSwiftUIIntegratorwill automatically create a new folder namedLuciqInstrumentationon its first run. This step prevents retaining outdated files.Download the New Integrator You can download the new
LuciqSwiftUIIntegratorfrom our public GitHub repository: HereUpdate 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.
Remove the old plugin by running this command in your terminal:
fastlane remove_plugin instabug_officialAdd the new plugin by running this command:
fastlane add_plugin luciq_dsym_uploadAlternatively, if you manage plugins using aPluginfile, 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 toFL_LUCIQ_API_TOKEN.
Important: If you were using the end_point parameter to point to a custom Instabug URL, you must update it to point to your new Luciq endpoint.
Example Fastfile Lane (Before):
Example Fastfile Lane (After):
FAQ
Automated Script & File System
What specific files does the
migrate-luciq.shscript 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.hextension within the provided project path.Configuration File: It will rename
Instabug.plisttoLuciqConfig.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 renamedLuciqConfig.plist.Xcode Project File: It will modify the
.pbxprojfile to update the file reference fromInstabug.plisttoLuciqConfig.plist, ensuring Xcode can find the file after it's renamed.
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 diffto see every single change the script made. This is the most effective way to spot incorrect replacements or unintended modifications, especially in your.pbxprojfile.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 .orgit stash) and perform the migration manually. The script is a powerful tool, but manual migration gives you granular control.
Code & Symbol Migration
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
Luciqand the symbol prefix changes fromIBGtoLCQin Objective-C, in Swift, most class/struct/enum names that were prefixed withIBGnow have the prefix removed entirely.Incorrect: let
myReport=LCQReport()Correct: let
myReport=Report()Similarly,IBGSurveybecomesSurvey, andIBGInvocationEventbecomesInvocationEvent. Always refer to the "New Name (Swift)" column in the Complete Symbol Mapping table.
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:
IBGReportTypeis renamed toLCQReportCategoryin Objective-C andReportCategoryin Swift. This is a semantic change, not just a prefix swap.Enum:
IBGActionTypebecomesLCQConsentAction/ConsentAction.Properties: Some properties like
instabugLogswere renamed toluciqLogswithout following theIBGprefixconvention. Carefully review the highlighted items in the Complete Symbol Mapping table for these specific cases.
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 toimport <LuciqSDK/LCQReport.h>.Best Practice: After running
pod installfor the newLuciqpod, perform a global search in your workspace for#import <InstabugSDK>to find any headers that were missed.
Build Process & Configuration
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
InstabugURLorInstabugAPMURL. You need to openLuciqConfig.plistand change the keys toSDKBaseURL,APMBaseURL, etc., as specified in the guide. The URL values should remain the same.In what order should I migrate my main app code versus the SwiftUI Integrator? ➡️ You must migrate your application's source code first.
Run the automated script or perform the manual migration on your codebase.
Ensure the project builds successfully with the
LuciqSDK.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 updatedLuciqSDKsymbols to function correctly.
Post-Migration Troubleshooting
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:
Check Imports: The most likely cause is a missed
importstatement. Ensure every relevant file hasimport LuciqSDK(for Swift) or#import <LuciqSDK/LuciqSDK.h>(for Objective-C).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.
Verify Dependency: Ensure you've correctly removed the old SDK and added the new one in CocoaPods or SPM, and have run
pod installor resolved Swift packages.Check Swift Prefix Removal: As mentioned in question #3, double-check that you've removed the
IBGprefixfrom Swift types (e.g., useReportinstead ofIBGReport).\
Reference: Complete Symbol MappingThe following tables provide a one-to-one mapping of every public symbol. The general rules are:
The
Instabugclass becomesLuciq.Any symbol prefixed with
IBGis now prefixed withLCQin Objective-C.In Swift, most types prefixed with
IBGnow have the prefix removed (e.g.IBGReport→Report).
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.
#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.
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]
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