iOS
Last updated
Was this helpful?
Last updated
Was this helpful?
BugSplat.xcframework enables posting crash reports from iOS, macOS, and Mac Catalyst applications to BugSplat. Visit for more information and to sign up for an account.
BugSplat for iOS supports iOS 13 and later.
BugSplat for macOS supports macOS 10.13 and later.
BugSplat supports multiple methods for installing the xcfamework in a project.
Add the following URL to your project's Additional Package Dependencies
:
To manually install BugSplat.xcframework in your project:
Download the latest release from the page. The release will contain a zip file with the xcframework.
Unzip the archive.
In Xcode, select your app target, then go to the General tab, scroll down to Framework, Libraries, and Embedded Content, then click the "+" and navigate to locate the unzipped BugSplat.xcframework. Once added, select Embed & Sign.
BugSplat requires a few Xcode configuration steps to integrate the xcframework with your BugSplat account.
Add the following case-sensitive key to your app's Info.plist
replacing DATABASE_NAME
with your customer-specific BugSplat database name.
To symbolicate crash reports, you must upload your app's dSYM
files to the BugSplat server. There are scripts to help with this.
Alternatively, you can download the Intel version via the following command.
Make symbol-upload-macos
executable
Several options exist to integrate symbol-upload-macos
into the app build process.
You can instantiate BugSplat by following the language-specific examples below.
Swift (UIKit)
Swift (SwiftUI)
Obj-C
BugSplat supports custom attributes that can be added to a crash report. These attributes are searchable in the BugSplat dashboard.
There are several ways to customize your BugSplat crash reporter.
Custom Banner Image
BugSplat for macOS provides the ability to configure a custom image to be displayed in the crash reporter UI for branding purposes. The image view dimensions are 440x110 and will scale down proportionately. There are 2 ways developers can provide an image:
Set the image property directly on BugSplat
Provide an image named bugsplat-logo
in the main app bundle or asset catalog
User Details
Set askUserDetails
to NO
to prevent the name and email fields from displaying in the crash reporter UI. Defaults to YES
.
Auto Submit
By default, BugSplat will auto-submit crash reports for iOS and prompt the end user to submit a crash report for macOS. This default can be changed using a BugSplat property autoSubmitCrashReport. Set autoSubmitCrashReport
to YES
in order to send crash reports to the server automatically without presenting the crash reporter dialogue.
Persist User Details
Set persistUserDetails
to YES
to save and restore the user's name and email when presenting the crash reporter dialogue. Defaults to NO
.
Expiration Time
Set expirationTimeInterval
to a desired value (in seconds) whereby if the difference in time between when the crash occurred and the next launch is greater than the set expiration time, auto-send the report without presenting the crash reporter dialogue. Defaults to -1
, which represents no expiration.
Attachments
Bugsplat supports uploading attachments with crash reports. There's a delegate method provided by BugSplatDelegate
that can be implemented to provide attachments to be uploaded.
Bitcode
Bitcode was introduced by Apple to allow apps sent to the App Store to be recompiled by Apple itself and apply the latest optimization. Bitcode has now been officially deprecated by Apple and should be removed or disabled. If Bitcode is enabled, the symbols generated for your app in the store will be different than the ones from your own build system. We recommend that you disable bitcode in order for BugSplat to reliably symbolicate crash reports. Disabling bitcode significantly simplifies symbols management and currently doesn't have any known downsides for iOS apps.
Localization
For macOS, the BugSplat crash dialogue can be localized and supports 8 languages out of the box.
English
Finnish
French
German
Italian
Japanese
Norwegian
Swedish
Additional languages may be supported by adding the language bundle and strings file to BugSplat.xcframework/macos-arm64_x86_64/BugSplatMac.framework/Versions/A/Frameworks/HockeySDK.framework/Resources/
Example_Apps
includes several iOS and macOS BugSplat Test apps. Integrating BugSpat only requires the xcframework, and a few lines of code.
Open an example Xcode project from Example_Apps
. For iOS, set the destination to be your iOS device. After running from Xcode, stop the process and relaunch from the iOS device directly.
Once the app launches, click the "crash" button when prompted.
Relaunch the app on the iOS device. At this point a crash report should be submitted to bugsplat.com
Click the "Crash ID" link to view more details about your crash.
Download BugSplat's cross-platform tool, for Apple Silicon by entering the following command in your terminal.
Create an Xcode build-phase script to upload dSYM files after every build. See example script
Create an Xcode Archive post-action script in the target's Build Scheme in order to upload dSYM files after the app is archived and ready for submission to TestFlight or the App Store. See example script
Manually upload an xcarchive
or dSYM
file generated by Xcode via BugSplat's page.
Please refer to our to learn more about how to use symbol-upload-macos
.
Several iOS and macOS test app examples are included within the folder to show how simple and quickly BugSplat can be integrated into an app, and ready to submit crash reports.
Please see the framework-specific for more examples demonstrating how to use attributes.
Clone the .
Visit BugSplat's page. When prompted for credentials, enter user fred@bugsplat.com
and password Flintstone
. The crash you posted from BugSplatTester should be at the top of the list of crashes.