title | tags | metaDescription | redirects | freshnessValidatedDate | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
CocoaPods manual installation |
|
How to add New Relic to your iOS applications using Cocoapods. |
|
2023-08-01 |
We recommend that you use our guided install to set up iOS monitoring. However, if you need to install the agent manually, follow the steps below to install the New Relic iOS agent with Cocoapods.
As part of the installation process, New Relic automatically generates an application token. This is a 40-character hexadecimal string for authenticating each mobile app you monitor in New Relic.
To install and configure your iOS or tvOS application:
- Go to one.newrelic.com.
- (If applicable) From the Mobile Apps list, select Add a new app.
- From the Get Started page, select iOS as the platform for mobile monitoring.
- Type a name for your mobile app, then select Continue.
Continue with the steps to configure New Relic for mobile monitoring.
These procedures to configure your iOS/tvOS app with CocoaPods and Objective-C also appear on the Get Started page in New Relic.
-
In the
Podfile
for your project, add this line:pod 'NewRelicAgent'
-
Close your project in Xcode, then open your terminal and run this command in your project's directory:
pod install
-
Open your project in Xcode by running this command in the terminal:
open App.xcworkspace
-
In your
AppDelegate.m
file, add this New Relic header:#import <NewRelic/NewRelic.h>
-
In your
AppDelegate.m
file, add this call as the first line ofapplication:didFinishLaunchingWithOptions
, replacingAPP_TOKEN
with your application token:The agent must be on the first line of `didFinishLaunchingWithOptions` and run on the main thread to ensure proper instrumentation. Starting the call later, on a background thread, or asynchronously can cause unexpected or unstable behavior.[NewRelic startWithApplicationToken:@"APP_TOKEN"];
-
Download this repo: https://github.com/newrelic/newrelic-ios-agent-spm/archive/refs/heads/main.zip.
-
From the downloaded repo, copy
dsym-upload-tools
into the folder that contains yourxcodeproject
file. You should now have a folder containing these files:YOUR_PROJECT.xcodeproj
dsym-upload-tools/
-
Based on your iOS agent version, add the build script below to your target's Build Phases. Make sure the script is the very last build script, and replace
APP_TOKEN
with your application token.- For iOS agent 7.4.0 or higher:
ARTIFACT_DIR="${BUILD_DIR%Build/*}" SCRIPT=`/usr/bin/find "${SRCROOT}" "${ARTIFACT_DIR}" -type f -name run-symbol-tool | head -n 1` /bin/sh "${SCRIPT}" "APP_TOKEN"
- For iOS agent 7.3.8 or lower:
SCRIPT=`/usr/bin/find "${SRCROOT}" -name newrelic_postbuild.sh | head -n 1` /bin/sh "${SCRIPT}" "APP_TOKEN"
-
(Optional) Add the following lines to your build script above to skip symbol upload during debugging:
if [ ${CONFIGURATION} = "Debug" ]; then echo "Skipping DSYM upload CONFIGURATION: ${CONFIGURATION}" exit 0 fi
-
Clean and build your app, then run it in the simulator or on another device.
These procedures to configure your iOS/tvOS app with CocoaPods and Swift also appear on the Get Started page in New Relic.
-
In the Podfile for your project, add the following line:
pod 'NewRelicAgent'
-
Close your project in Xcode, and update it by running this command from the terminal in your project directory:
pod install
-
Open your project in Xcode by running this command from the terminal in your project directory:
open App.xcworkspace
-
In your
AppDelegate.swift
, add the New Relic header: (If your app is written in SwiftUI, follow these instructions to add an AppDelegate to your project.)import NewRelic
-
In your
AppDelegate.swift
file, add this call as the first line ofapplication:didFinishLaunchingWithOptions
, replacingAPP_TOKEN
with your application token:To ensure proper instrumentation, you must call the agent on the first line of `didFinishLaunchingWithOptions()`, and run the agent on the main thread. Starting the call later (on a background thread or asynchronously) can cause unexpected or unstable behavior.NewRelic.start(withApplicationToken:"APP_TOKEN")
-
Download this repo: https://github.com/newrelic/newrelic-ios-agent-spm/archive/refs/heads/main.zip.
-
From the downloaded repo, copy
dsym-upload-tools
into the folder that contains yourxcodeproject
file. You should now have a folder containing these files:YOUR_PROJECT.xcodeproj
dsym-upload-tools/
-
Based on your iOS agent version, add the build script below to your target's Build Phases. Make sure the script is the very last build script, and replace
APP_TOKEN
with your application token.- For iOS agent 7.4.0 or higher:
ARTIFACT_DIR="${BUILD_DIR%Build/*}" SCRIPT=`/usr/bin/find "${SRCROOT}" "${ARTIFACT_DIR}" -type f -name run-symbol-tool | head -n 1` /bin/sh "${SCRIPT}" "APP_TOKEN"
- For iOS agent 7.3.8 or lower:
SCRIPT=`/usr/bin/find "${SRCROOT}" -name newrelic_postbuild.sh | head -n 1` /bin/sh "${SCRIPT}" "APP_TOKEN"
-
(Optional) Add the following lines to your build script above to skip symbol upload during debugging:
if [ ${CONFIGURATION} = "Debug" ]; then echo "Skipping DSYM upload CONFIGURATION: ${CONFIGURATION}" exit 0 fi
-
Clean and build your app, then run it in the simulator or on another device.
By default, the iOS agent logs at the info
level. you can change the log level to collect more or less data. There are six supported log levels:
none
error
warning
info
verbose
ALL
To change the logging level in your app, add this method call before calling NewRelic.start(withApplicationToken)
:
-
Objective-c:
[NRLogger setLogLevels:NRLogLevelALL];
-
Swift:
NRLogger.setLogLevels(NRLogLevelALL.rawValue)