New Relic iOS SDK設定ガイド - Swift・Objective-C対応の詳細導入手順

iOSアプリのパフォーマンス監視とユーザー体験の改善には、New Relic iOS SDKの導入が有効です。ここでは、Xcodeプロジェクトへの基本的な統合手順を、SwiftとObjective-Cの両方に対応して解説します。

New Relic iOS SDKの基本機能

New Relic iOS SDKは、iOS 9.0以上で動作し、iOSアプリのパフォーマンスを自動で監視します。アプリの動作に大きな影響を与えることなく、必要な情報を収集できます。

監視できる項目

以下の項目を監視できます。

アプリの起動時間や画面遷移時間を測定し、ユーザーが快適にアプリを使えるかを確認できます。

API通信の状況を自動で追跡し、通信の遅延やエラーの発生状況を把握できます。iOS標準のNSURLSessionや人気のライブラリに対応しています。

画面の表示時間やユーザーインターフェースの応答性を測定し、操作性の改善に役立ちます。

メモリ使用量やCPUの負荷状況を監視し、アプリのパフォーマンス問題を早期に発見できます。

アプリがクラッシュした際の詳細な情報を自動で収集し、問題の原因特定に役立ちます。

導入前の準備

動作環境

  • iOS 9.0以上
  • Xcode 12.0以上
  • Swift 5.0以上またはObjective-C
  • New Relicアカウント

New Relicアカウントの設定

New Relicの管理画面で「Add Data」→「Mobile」→「iOS」を選択し、新しいアプリを作成します。作成時に表示されるアプリケーショントークンをメモしておいてください。

Swift Package Managerでの導入

Swift Package Managerを使ってSDKをプロジェクトに追加します。

Xcodeでプロジェクトを開き、「File」→「Add Package Dependencies」を選択してください。

パッケージURLに以下を入力し、ターゲットアプリに追加してください。

https://github.com/newrelic/newrelic-ios-agent-spm

CocoaPodsでの導入

CocoaPodsを使っている場合は、Podfileに以下を追加してください。

ruby
target 'YourAppTarget' do
  pod 'NewRelicAgent'
end

ターミナルでpod installを実行し、.xcworkspaceファイルでプロジェクトを開いてください。

アプリ内での初期化

アプリ起動時にNew Relicを初期化します。

Swift での実装

AppDelegate.swiftに以下のコードを追加してください。

swift
import NewRelic

@main
class AppDelegate: UIResponder, UIApplicationDelegate {
    func application(_ application: UIApplication, 
                     didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
        NewRelic.start(withApplicationToken: "YOUR_APPLICATION_TOKEN")
        return true
    }
}

SwiftUIアプリの場合:

swift
import SwiftUI
import NewRelic

@main
struct YourApp: App {
    init() {
        NewRelic.start(withApplicationToken: "YOUR_APPLICATION_TOKEN")
    }
    
    var body: some Scene {
        WindowGroup {
            ContentView()
        }
    }
}

Objective-C での実装

objective-c
#import "AppDelegate.h"
#import <NewRelic/NewRelic.h>

@implementation AppDelegate
- (BOOL)application:(UIApplication *)application 
           didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    [NewRelic startWithApplicationToken:@"YOUR_APPLICATION_TOKEN"];
    return YES;
}
@end

基本的なカスタマイズ

基本的な監視に加えて、アプリケーション固有の要件に応じた詳細設定が可能です。

ユーザー情報の追加

アプリのユーザー情報を追跡できます。

swift
NewRelic.setUserId("user123")
NewRelic.setAttribute("userTier", value: "premium")

カスタムイベントの記録

アプリ独自の重要な操作を記録できます。

swift
NewRelic.recordCustomEvent("PurchaseCompleted", attributes: [
    "itemId": "product123",
    "price": 29.99
])

運用時の注意点

初期化のタイミング

SDK初期化はアプリ起動時に可能な限り早く実行し、正確な起動時間測定を確保してください。

パフォーマンスへの影響

SDKは軽量設計ですが、大量のカスタムイベントを送信する場合はメモリ使用量を定期的に確認してください。

データ通信量

カスタムイベントの送信頻度を調整し、ユーザーのデータ通信量への影響を最小限に抑えてください。

よくある問題と解決方法

データが表示されない

アプリケーショントークンが正しく設定されているか、ネットワーク接続に問題がないかを確認してください。Xcodeコンソールでエラーメッセージも確認できます。

ビルドエラー

パッケージマネージャーやフレームワーク設定の問題が発生した場合は、クリーンビルドを実行して再度ビルドしてください。

シミュレータでの動作

New Relicは実機でのみ正常に動作します。最終的な動作確認は必ず実機で行ってください。

まとめ

New Relic iOS SDKを導入することで、iOSアプリのパフォーマンス状況を詳しく把握できるようになります。アプリの要件に応じて柔軟に設定を調整できます。

継続的に監視データを分析し、ユーザー体験とアプリパフォーマンスの改善に活用してください。次はAndroid SDKやクロスプラットフォーム対応も学んでいくと良いでしょう。


関連記事: New Relic Android SDK設定ガイド関連記事: New Relic React Native統合設定