Firebase Crashlytics provides crash reporting and debugging tools for mobile applications, including symbol file management for native code crash symbolication.
Upload debug symbols for native code to enable crash symbolication.
/**
* Upload symbol files for native code crash symbolication
* @param symbolFiles - Array of symbol file paths to upload
* @param options - Configuration options
* @returns Promise resolving when upload completes
*/
function crashlyticsSymbolsUpload(
symbolFiles: string[],
options?: Options & {
/** Firebase app ID for the target application */
app?: string;
/** Symbol generator type - breakpad (default) or csym */
generator?: "breakpad" | "csym";
/** Generate symbols without uploading them */
dryRun?: boolean;
}
): Promise<void>;Generate and upload ProGuard/R8 mapping files for Android applications.
/**
* Generate a unique identifier for mapping file uploads
* @param options - Configuration options
* @returns Promise resolving to generated mapping file ID
*/
function crashlyticsMappingfileGenerateid(options?: Options & {
/** Firebase app ID for the target application */
app?: string;
}): Promise<string>;
/**
* Upload ProGuard/R8 mapping file for Android crash deobfuscation
* @param mappingFile - Path to the mapping file
* @param options - Configuration options
* @returns Promise resolving when upload completes
*/
function crashlyticsMappingfileUpload(
mappingFile: string,
options?: Options & {
/** Firebase app ID for the target application */
app?: string;
/** Resource name for the mapping file */
resourceName?: string;
}
): Promise<void>;import * as client from "firebase-tools";
// Upload debug symbols for crash symbolication
await client.crashlytics.symbols.upload(
["path/to/symbols.sym", "path/to/other.sym"],
{
project: "my-project",
app: "1:123456789:android:abc123def456",
generator: "breakpad"
}
);
// Dry run to generate symbols without uploading
await client.crashlytics.symbols.upload(
["path/to/symbols.sym"],
{
project: "my-project",
app: "1:123456789:android:abc123def456",
dryRun: true
}
);// Generate mapping file ID
const mappingFileId = await client.crashlytics.mappingfile.generateid({
project: "my-project",
app: "1:123456789:android:abc123def456"
});
// Upload ProGuard mapping file
await client.crashlytics.mappingfile.upload("proguard-mapping.txt", {
project: "my-project",
app: "1:123456789:android:abc123def456",
resourceName: mappingFileId
});# Upload symbols with breakpad generator
firebase crashlytics:symbols:upload path/to/symbols.sym --app=1:123456789:android:abc123def456
# Upload with csym generator
firebase crashlytics:symbols:upload path/to/symbols.sym --app=1:123456789:android:abc123def456 --generator=csym
# Dry run to test symbol generation
firebase crashlytics:symbols:upload path/to/symbols.sym --app=1:123456789:android:abc123def456 --dry-run# Generate mapping file ID
firebase crashlytics:mappingfile:generateid --app=1:123456789:android:abc123def456
# Upload mapping file
firebase crashlytics:mappingfile:upload proguard-mapping.txt --app=1:123456789:android:abc123def456 --resource-name=<mapping-file-id>app parameter should be the Firebase app ID, not the package name--dry-run to test symbol generation without uploading