• /
  • EnglishEspañolFrançais日本語한국어Português
  • ログイン今すぐ開始

この機械翻訳は、参考として提供されています。

英語版と翻訳版に矛盾がある場合は、英語版が優先されます。詳細については、このページを参照してください。

問題を作成する

CocoaPodsからiOSエージェントを移行する

|View as Markdown (English)

CocoaPodsは、その中央レジストリ(trunk)が2026年12月2日に恒久的に読み取り専用になると発表しました。その日以降、CocoaPodsは新しいポッドのバージョンの受け入れを停止します。このページでは、それがNew Relic iOSエージェントおよびその上に構築されたハイブリッドエージェントにとって何を意味するのか、またアプリを別のインストレーション方法に移行する方法について説明します。

移行する前に

移行する前に、これらの回答を確認してください:

  • What's changing? バージョン7.7.10は、CocoaPods(NewRelicAgentポッド)に公開する最後のiOSエージェントです。以降のバージョンは、SwiftパッケージマネージャおよびXCFrameworkのダウンロードを通じてのみ利用可能です。
  • Will my app break? いいえ。すでに公開されているすべてのNewRelicAgentバージョンはCocoaPodsに残るため、pod installとCIパイプラインは引き続き機能します。CocoaPods経由で新しいエージェントバージョンを取得できなくなるだけです。
  • Why migrate? 新しい機能、修正、および新しいiOSとXcodeバージョンのサポートを引き続き受け取るには、SwiftパッケージマネージャまたはXCFrameworkに移行してください。

この変更は、CocoaPodsを通じてiOSエージェントを取得するハイブリッドエージェントにも影響します。React Native、Flutter、Ionic Capacitor、Cordova、またはUnityを使用している場合は、ハイブリッドエージェントを使用するアプリの移行をご覧ください。

iOSアプリの移行

以下のインストレーション方法から1つを選択してください:

  • Swift パッケージマネージャ:Xcodeに組み込まれているAppleのパッケージマネージャです。Xcodeからエージェントを更新します。
  • XCFramework:ご自身でダウンロードしてプロジェクトに追加するフレームワークバンドルです。新しいバージョンをダウンロードすることで更新します。

iOSエージェントは他のパッケージに依存しないため、他の依存関係の一部が当面CocoaPodsに残る場合でも、Swiftパッケージマネージャに移行できます。すべての依存関係をCocoaPodsから移行する予定の場合は、まずそれぞれがSwiftパッケージマネージャをサポートしていることを確認してください。サポートしていない依存関係については、XCFrameworkメソッドを使用すると、パッケージマネージャとは独立してエージェントを追加および更新できます。

重要

エージェントのインストールには、1つの方法のみを使用してください。別の方法でエージェントを追加したときにNewRelicAgentポッドがまだインストールされている場合、アプリにエージェントのコピーが2つ存在することになり、ビルドエラーや予期しない動作の原因となります。

Swift パッケージ マネージャー

現在使用しているエージェントのバージョンを確認してください。これは、Podfile.lockのNewRelicAgentの横に記載されています。

Xcodeを閉じてから、NewRelicAgentポッドを削除します:

  • NewRelicAgent が唯一のポッドである場合は、プロジェクトのディレクトリでこのコマンドを実行してから、Podfile、Podfile.lock、および CocoaPods が生成した .xcworkspace ファイルを削除します:

    bash
    $
    pod deintegrate
  • 他のポッドを引き続き使用する場合は、Podfile から pod 'NewRelicAgent' の行を削除し、次を実行します:

    bash
    $
    pod install

    Podfile.lockにNewRelicAgentが表示されなくなったことを確認してください。

Xcodeでプロジェクトを開いてください。引き続き他のポッドを使用する場合は、.xcworkspaceファイルを開いてください。それ以外の場合は、.xcodeprojファイルを開いてください。

File > Add Package Dependencies...を選択し、このURLを入力します:

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

依存関係のルールについては、最初のステップでメモしたバージョン、またはそれ以降のバージョンからUp to Next Major Versionを選択してください。

アプリのターゲット、およびアプリ拡張機能など、ポッドを使用したその他のターゲットに、NewRelicパッケージ製品を追加してください。

ターゲットのBuild PhasesでdSYMアップロードビルドスクリプトを確認してください:

  • iOSエージェント7.4.0以降のスクリプトの場合(run-symbol-toolを検索します)、そのままにします。Swiftパッケージ内のツールを検出します。
  • newrelic_postbuild.shを呼び出している場合、またはPods/内のパスを使用している場合は、Swiftパッケージマネージャのインストレーションの7.4.0以降のスクリプトに置き換えてください。

スクリプトを最後のビルドフェーズとして維持し、Based on dependency analysisのチェックが外れていることを確認してください。

アプリをクリーンにして構築してから、実行します。エージェントを開始するコードとアプリケーションのトークンは変更されません。

後でエージェントを更新するには、Swiftパッケージマネージャを使用した更新をご覧ください。

XCFramework

Xcodeを閉じて、Swiftパッケージマネージャの手順に記載されているとおりに、NewRelicAgentポッドを削除してください。

XCFramework手動インストレーションに従ってエージェントをダウンロードし、アプリのターゲットに追加してください。NewRelic.xcframeworkがEmbed & Signに設定されていることを確認してください。

Swiftパッケージマネージャの手順で説明されているように、dSYMアップロードビルドスクリプトを確認してください。7.4.0以上のスクリプトは、NewRelic.xcframework内のrun-symbol-toolを見つけます。

アプリをクリーンにして構築してから、実行します。エージェントを開始するコードとアプリケーションのトークンは変更されません。

後でエージェントを更新するには、「iOSエージェントを手動で置き換える」を参照してください。

CI/CDパイプラインを更新してください

CocoaPodsを完全に削除した場合は、pod installを実行する、または.xcworkspaceファイルをビルドするパイプライン・ステップを更新してください。Swiftパッケージマネージャを使用する場合は、ビルド前の別のステップでパッケージを解決することを検討してください:

bash
$
xcodebuild -resolvePackageDependencies -project YourApp.xcodeproj -scheme YourApp

ハイブリッドエージェントを使用するアプリを移行する

ハイブリッドエージェントには、iOSエージェントが含まれています。ほとんどの場合、CocoaPodsまたはSwiftパッケージマネージャを通じて取得できます。どちらを使用するかは、アプリのプロジェクト設定によって決まります:

エージェント

すべきこと

リアクトネイティブ

PodfileでSwiftパッケージマネージャを有効にします。

フラッター

Flutter 3.44からデフォルトでオンになっている、FlutterのSwiftパッケージマネージャサポートを使用します。

Ionic Capacitor

iOSプロジェクトがまだCocoaPodsを使用している場合は、Swiftパッケージマネージャに移行してください。

コルドバ

cordova-ios 8以降にアップデートしてください。

Unity

対応は不要です。より新しいiOSエージェントのバージョンを取得するには、ご自身でXCFrameworkをXcodeプロジェクトに追加してください。

.NET MAUIとUnreal Engine

対応は不要です。これらのエージェントは独自のパッケージにiOSエージェントを含んでおり、CocoaPodsを使用しません。

アプリが引き続きCocoaPods経由でiOSエージェントを取得する場合でも、ハイブリッドエージェントを更新できます。新しいハイブリッドエージェントのバージョンは、CocoaPods用にiOSエージェント7.7.10を維持し、Swiftパッケージマネージャ経由でのみ新しいiOSエージェントのバージョンを使用します。

リアクトネイティブ

デフォルトでは、React NativeエージェントはCocoaPodsからiOSエージェントを取得します。React Nativeエージェント1.9.3以降では、Swiftパッケージマネージャに切り替えることができます。

標準のReact Nativeアプリ

切り替える前に、アプリがこれらの要件を満たしていることを確認します:

  • React Native 0.75以上
  • use_frameworks! :linkage => :dynamic ご使用の Podfile
  • 標準のReact Nativeテンプレートと同様に、react_native_post_installを呼び出すPodfile内のpost_installブロック

切り替えるには、以下の手順に従います:

  1. React Nativeエージェントをバージョン1.9.3以降に更新してください。

  2. ios/Podfileの先頭に、次を追加します:

    ENV['NEWRELIC_USE_SPM'] = '1'
    use_frameworks! :linkage => :dynamic
  3. iosディレクトリでpod installを実行し、Podfile.lockにNewRelicAgentが表示されなくなったことを確認してください。

  4. アプリを構築して実行します。

Expoアプリ

npx expo prebuild iosフォルダを再生成するため、Podfile内ではなくプロジェクト設定でこれを設定してください。Expo SDK 52以降が必要です。

切り替えるには、以下の手順に従います:

  1. React Nativeエージェントをバージョン1.9.3以降に更新してください。

  2. expo-build-propertiesをインストールします:

    bash
    $
    npx expo install expo-build-properties
  3. app.jsonまたはapp.config.jsで、動的フレームワークを使用するようにiOSを設定してください:

    "plugins": [
    "newrelic-react-native-agent",
    ["expo-build-properties", { "ios": { "useFrameworks": "dynamic" } }]
    ]
  4. プロジェクトのルートディレクトリにある.envファイルにNEWRELIC_USE_SPM=1を追加してください。npx expo prebuildとnpx expo run:iosがそれをロードします。

  5. npx expo prebuild --cleanを実行し、ios/Podfile.lockにNewRelicAgentが表示されなくなったことを確認してください。

CocoaPodsの実行時にNEWRELIC_USE_SPMが設定されていない場合(たとえば、ご自身でpod installやnpx pod-installを実行した場合など)、アプリはCocoaPodsからiOSエージェントを取得する状態に戻ります。

フラッター

FlutterエージェントはCocoaPodsとSwiftパッケージマネージャの両方をサポートしており、どちらを使用するかはFlutterが決定します。Flutter 3.44から、Swiftパッケージマネージャはデフォルトでオンになっているため、ほとんどのアプリはすでにこれを通じてiOSエージェントを取得しています。

Swiftパッケージマネージャをオフにした場合は、次を実行して再度オンにしてください:

bash
$
flutter config --enable-swift-package-manager

また、enable-swift-package-manager: falseを追加した場合は、pubspec.yamlから削除してください。

Ionic Capacitor

CapacitorエージェントはCocoaPodsとSwiftパッケージマネージャの両方をサポートしており、どちらを使用するかはiOSプロジェクトによって決まります。Capacitor 8では、Swiftパッケージマネージャを使用して新しいiOSプロジェクトを作成しますが、CocoaPodsで作成されたプロジェクトは、移行するまで引き続きCocoaPodsを使用します。

  • ios/AppフォルダにCapApp-SPMパッケージがある場合、すでにSwiftパッケージマネージャを使用しています。npx cap syncはエージェントを最新状態で維持します。
  • Podfileがある場合は、CapacitorのSwiftパッケージマネージャガイドに従って、プロジェクトをSwiftパッケージマネージャに移行してください。これでは、npx cap spm-migration-assistantコマンドとiOSプラットフォームの再作成について説明しています。

コルドバ

cordova-ios 8以降では、CordovaエージェントはSwiftパッケージマネージャを介してiOSエージェントを取得します。以前のcordova-iosバージョンでは、CocoaPodsを使用します。

移行するには、以下の手順に従ってください:

  1. Cordovaエージェントを最新バージョンに更新してください。

  2. iOSプラットフォームを更新してください。cordova-ios 8のリリース発表をご覧ください:

    bash
    $
    cordova platform remove ios
    $
    cordova platform add ios@8

    プラットフォームを削除するとplatforms/iosフォルダが削除されるため、手動で行った変更はすべて失われます。事前にバックアップしてください。

  3. config.xmlがiOSのデプロイメントターゲットを15.0以降に設定していることを確認してください:

    <preference name="deployment-target" value="15.0" />
  4. アプリを構築して実行します。

Unity

Unityエージェントは、External Dependency Manager for Unity(EDM4U)を使用して、CocoaPods経由でiOSエージェントを取得します。Swiftパッケージマネージャはサポートしていません。アプリはCocoaPodsにすでに存在するバージョンでビルドされ続け、新しいUnityエージェントのバージョンはiOSエージェント7.7.10を維持します。

新しいiOSエージェントバージョンを使用するには、Unityエージェントの依存関係の手順で説明されているように、ご自身でXCFrameworkをXcodeプロジェクトに追加してください。アプリ内のエージェントのコピーが1つだけになるように、EDM4UがNewRelicAgentポッドもインストールしないことを確認してください。

トラブルシューティング

Copyright © 2026 New Relic株式会社。

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.