Get Started with macOS
Important
Visual Studio App Center is scheduled for retirement on March 31, 2025. While you can continue to use Visual Studio App Center until it is fully retired, there are several recommended alternatives that you may consider migrating to.
The App Center SDK uses a modular architecture so you can use any or all of the services.
Let's get started with setting up App Center macOS SDK in your app to use App Center Analytics and App Center Crashes.
1. Prerequisites
The following requirements must be met to use App Center SDK:
- Your macOS project is set up in Xcode 13 or later on macOS version 10.14.4 or later.
- You're targeting devices running on macOS 10.13 or later.
- You're not using any other library that provides Crash Reporting functionality.
Note
App Center SDK will drop support for Xcode 10 with the June SDK release.
App Center SDK Analytics and Crashes are compatible with Mac Catalyst via XCFramework or SwiftPM.
App Center SDK is compatible with Apple Silicon.
2. Create your app in the App Center Portal to obtain the App Secret
If you've already created your app in the App Center portal, you can skip this step.
- Head over to appcenter.ms.
- Sign up or log in and hit the blue button on the top-right corner of the portal that says Add new and select Add new app from the dropdown menu.
- Enter a name and an optional description for your app.
- Select macOS as the OS and Objective-C/Swift as a platform.
- Hit the button at the bottom right that says Add new app.
Once you've created an app, you can obtain its App Secret on the Settings page on the App Center Portal. At the top right-hand corner of the Settings page, click on the triple vertical dots and select Copy app secret
to get your App Secret.
3. Add the App Center SDK modules
The App Center SDK for macOS can be added to your app via Cocoapods, Carthage, Swift Package Manager or by manually adding the binaries to your project.
Note
In the 4.0.0
version of App Center breaking changes were introduced. Follow the Migrate to App Center SDK 4.0.0 and higher section to migrate App Center from previous versions.
3.1 Integration via Cocoapods
Add the following dependencies to your
podfile
to include App Center Analytics and App Center Crashes into your app. This pulls in the following frameworks: AppCenter, AppCenterAnalytics, and AppCenterCrashes. Instead, you can specify which services you want to use in your app. Each service has its own subspec and they all rely onAppCenter
. It will get pulled in automatically.# Use the following line to use App Center Analytics and Crashes. pod 'AppCenter' # Use the following lines if you want to specify which service you want to use. pod 'AppCenter/Analytics' pod 'AppCenter/Crashes'
Run
pod install
to install your newly defined pod and open the project's.xcworkspace
.
Now that you've integrated the frameworks in your application, it's time to start the SDK and make use of the App Center services.
3.2 Integration via Carthage
Below are the steps on how to integrate the App Center SDK in your Xcode project using Carthage version 0.30 or higher, a decentralized dependency manager that builds your dependencies and provides you with binary frameworks.
Add the following dependencies to your
Cartfile
to include App Center into your app. This pulls in all the frameworks. Then you can link only those frameworks that you want to use in your app.# Use the following line to get the latest version of App Center github "microsoft/appcenter-sdk-apple"
# Use the following line to get the specific version of App Center github "microsoft/appcenter-sdk-apple" ~> X.X.X
Run
carthage update --platform macOS
. This fetches dependencies into a Carthage/Checkouts folder, and then builds each framework.Open your application target's General settings tab. Drag and drop AppCenter.framework, AppCenterAnalytics.framework, and AppCenterCrashes.framework files from the Carthage/Build/macOS folder into Xcode's Project Navigator. The AppCenter.framework is required to start the SDK. If it isn't added to the project, the other modules won't work and your app won't compile.
A dialog will appear, make sure your app target is checked. Then click Finish.
Note
If you use
carthage copy-frameworks
in your Build Phase you shouldn't add the App Center SDKs there as they're shipped as static frameworks.
Now that you've integrated the frameworks in your application, it's time to start the SDK and make use of the App Center services.
3.3 Integration via Swift Package Manager
- From the Xcode menu click File > Swift Packages > Add Package Dependency.
- In the dialog that appears, enter the repository URL: https://github.com/microsoft/appcenter-sdk-apple.git.
- In Version, select Up to Next Major and take the default option.
- Choose the modules you need in the Package Product column.
Now that you've integrated the frameworks in your application, it's time to start the SDK and make use of the App Center services.
Note
If you're integrating App Center via SwiftPM and want to use it in your app's extension target as well, make sure that you provide DISABLE_DIAMOND_PROBLEM_DIAGNOSTIC=YES
in your configuration. This is necessary to avoid SwiftPM limitations in linking a module to multiple targets.
3.4 Integration by copying the binaries into your project
Below are the steps on how to integrate the compiled binaries in your Xcode project to set up App Center Analytics and App Center Crashes for your macOS app.
Note
App Center SDK supports the use of XCframework
. If you want to integrate XCframeworks into your project, download the AppCenter-SDK-Apple-XCFramework.zip from the releases page and unzip it. Resulting folder contents aren't platform-specific, instead it contains XCframeworks for each module. They can be integrated the same way as usual frameworks, as described below.
Download the App Center SDK frameworks provided as a zip file.
Unzip the file and you'll see a folder called AppCenter-SDK-Apple that contains different frameworks for each App Center service on each platform folder. The framework called
AppCenter
is required in the project as it contains code that's shared between the different modules.[Optional] Create a subdirectory for 3rd-party libraries.
- 3rd-party libraries are usually in a subdirectory (it's often called Vendor), so if your project doesn't use a subdirectory for libraries, create a Vendor subdirectory now.
- Create a group called Vendor inside your Xcode project to mimic your file structure on disk.
Open the unzipped AppCenter-SDK-Apple folder in Finder and copy the folder into your project's folder at the location where you want it. The folder contains frameworks in subfolders for other platforms that App Center SDK supports, so you might need to delete unneeded subfolders.
Add the SDK frameworks to the project in Xcode:
- Make sure the Project Navigator is visible (⌘+1).
- Now drag and drop AppCenter.framework, AppCenterAnalytics.framework, and AppCenterCrashes.framework from the Finder (the ones inside the Vendor folder) into Xcode's Project Navigator. AppCenter.framework is required to start the SDK. If it's missing the other modules won't work, and your app won't compile.
- A dialog will appear, make sure your app target is checked. Then click Finish.
Note
The SDK binary isn't packaged following the macOS framework convention. The reason is that the App Center SDK for Mac isn't a conventional framework but a static one. You've to link it as a static framework: make sure that you aren't embedding the binaries, and don't include them in the "copy bundle resources" build phase.
Now that you've integrated the frameworks in your application, it's time to start the SDK and make use of the App Center services.
4. Start the SDK
To use App Center, you must opt in to the module(s) that you want to use. By default no modules are started and you must call each one when starting the SDK. If you're developing for an extension, refer to the Extension getting started page.
4.1 Add the import statements
Open the project's AppDelegate file and add the following import statements:
@import AppCenter;
@import AppCenterAnalytics;
@import AppCenterCrashes;
import AppCenter
import AppCenterAnalytics
import AppCenterCrashes
4.2 Add the start:withServices:
method
Insert the following line in the app's didFinishLaunchingWithOptions
delegate method:
[MSACAppCenter start:@"{Your App Secret}" withServices:@[[MSACAnalytics class], [MSACCrashes class]]];
AppCenter.start(withAppSecret: "{Your App Secret}", services: [Analytics.self, Crashes.self])
If you have a Catalyst application, you can pass app secrets for both iOS and macOS at the same time:
[MSACAppCenter start:@"ios={Your iOS App Secret};macos={Your macOS App Secret}" withServices:@[[MSACAnalytics class], [MSACCrashes class]]];
AppCenter.start(withAppSecret:"ios={Your iOS App Secret};macos={Your macOS App Secret}", services: [Analytics.self, Crashes.self])
Warning
It's not recommended to embed your App Secret in source code.
If you need to start App Center services separately, you should:
- Configure or start it with the App Secret.
- If the code can be called multiple times, check if the App Center is already configured.
- Start the required service(s) without the App Secret.
[MSACAppCenter configureWithAppSecret:@"{Your App Secret}"];
if ([MSACAppCenter isConfigured]) {
[MSACAppCenter startService:[MSACAnalytics class]];
[MSACAppCenter startService:[MSACCrashes class]];
}
AppCenter.configure(withAppSecret: "{Your App Secret}")
if AppCenter.isConfigured {
AppCenter.startService(Analytics.self)
AppCenter.startService(Crashes.self)
}
4.3 Replace the placeholder with your App Secret
Make sure to replace {Your App Secret}
text with the actual value for your application. The App Secret can be found on the Getting Started page or Settings page on the App Center portal.
The Getting Started page contains the above code sample with your App Secret in it, you can copy-paste the whole sample.
The example above shows how to use the start:withServices
(start(withAppSecret:services:)
for Swift) method and include both App Center Analytics and App Center Crashes.
If you don't want to use one of the two services, remove the corresponding parameter from the method call above.
Unless you explicitly specify each module as parameters in the start method, you can't use that App Center service. Also, the start:withServices
(start(withAppSecret:services:)
for Swift) API can be used only once in the lifecycle of your app – all other calls will log a warning to the console and only the modules included in the first call will be available.
For example - If you want to onboard to App Center Analytics, you should modify the start:withServices
(start(withAppSecret:services:)
for Swift) API call as follows:
[MSACAppCenter start:@"{Your App Secret}" withServices:@[[MSACAnalytics class]]];
AppCenter.start(withAppSecret: "{Your App Secret}", services: [Analytics.self])
4.4 Add internet capabilities for sandboxed apps
If your app is using the App Sandbox, you've to set the capability to allow outgoing (Client) connections to allow the app to have access to the internet. Xcode 9 enables the App Sandbox by default but the capabilities for outgoing connections need to be set explicitly.
Select your project in the project navigator, select the Capabilities tab and if your app is using the sandbox, enable outgoing connections.
Great, you're all set to visualize Analytics and Crashes data on the portal that the SDK collects automatically.
Look at the App Center Analytics docs and App Center Crashes docs to learn how to customize and use advanced features of each service.