Versions Compared

    Key

    • This line was added.
    • This line was removed.
    • Formatting was changed.
    Comment: Published by Scroll Versions from this space and version 20.5
    Sv translation
    languageen

    Follow the steps below to get your EUM App Key and instrument your iOS apps.

    Table of Contents
    maxLevel2
    minLevel2
    outlinetrue
    stylenone

    Anchor
    ios-cocoapods-step1
    ios-cocoapods-step1
    Get Your Application Key

    After you completed the Getting Started Wizard, you were given an EUM App Key. You will need this key when you modify the source code. In some cases, multiple mobile applications can share the same key.

    If you have completed the Getting Started Wizard, but don't have your EUM App Key, see Get Your Application Key.

    Anchor
    step3
    step3
    Initialize the Agent 

    Tabs Container
    Width1100px
    directionhorizontal
    Tabs Page
    tabNameObjective-C
    titleObjective-C

    Edit your app's AppDelegate file to initialize the Mobile Agent as soon as the app launches. This registers your application and only needs to be done once in your code.

    1. In your application's AppDelegate.m file, add this import statement:

      Code Block
      languagecpp
      #import <ADEUMInstrumentation/ADEumInstrumentation.h>
    2. In the method didFinishLaunchingWithOptions, create an ADeumAgentConfiguration object with the EUM App Key that you received when completing the Getting Started Wizard to initialize the iOS Agent:

      Code Block
      languagecpp
      // Example EUM App Key: "AAA-AAB-AUM"
      ADEumAgentConfiguration *config = [[ADEumAgentConfiguration alloc] initWithAppKey:<#EUM_APP_KEY#>];

      Your code should look something like the following:

      Code Block
      languagecpp
      #import <ADEUMInstrumentation/ADEumInstrumentation.h>
      #import "AppDelegate.h"
       
          // ...
          -(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
          {
              // Example EUM App Key: "AAA-AAB-AUM"
              ADEumAgentConfiguration *config = [[ADEumAgentConfiguration alloc] initWithAppKey:<#EUM_APP_KEY#>]; 
              // other tasks
              return YES;
          }
      
    3. Configure the iOS Agent to report metrics and screenshots to the SaaS EUM Server in your region and initialize the agent by passing the ADeumAgentConfiguration object to the method initWithConfiguration. (If you are using an on-premises EUM Server, see Configure the iOS Agent for On-Prem Deployments (Optional) for implementation details.)

      Tabs Container
      Width1000px
      directionhorizontal
      Tabs Page
      tabNameAmericas
      titleAmericas
      Code Block
      languagecpp
      #import <ADEUMInstrumentation/ADEumInstrumentation.h>
      #import "AppDelegate.h"
       
          // ...
          -(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
          {
              ADEumAgentConfiguration *config = [[ADEumAgentConfiguration alloc] initWithAppKey:<#EUM_APP_KEY#>];
              // The default SaaS EUM Server and Screenshot Service are in the Americas,  
              // so you can omit the following settings if you are in the Americas.
              config.collectorURL = @"https://col.eum-appdynamics.com";
              config.screenshotURL = @"https://image.eum-appdynamics.com/";
              [ADEumInstrumentation initWithConfiguration: config];
              // other tasks
              return YES;
           }
      
      Tabs Page
      tabNameEMEA
      titleEMEA
      Code Block
      languagecpp
      #import <ADEUMInstrumentation/ADEumInstrumentation.h>
      #import "AppDelegate.h"
       
          // ...
          -(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
          {
              ADEumAgentConfiguration *config = [[ADEumAgentConfiguration alloc] initWithAppKey:<#EUM_APP_KEY#>]; 
              // Configure the iOS Agent to report the metrics and screenshots to the SaaS EUM Server in EMEA
              config.collectorURL = @"https://fra-col.eum-appdynamics.com";
              config.screenshotURL = @"https://fra-image.eum-appdynamics.com/";
              [ADEumInstrumentation initWithConfiguration: config];
              // other tasks
              return YES;
          }
      
      Tabs Page
      tabNameAPAC
      titleAPAC
      Code Block
      languagecpp
      #import <ADEUMInstrumentation/ADEumInstrumentation.h>
      #import "AppDelegate.h"
       
          // ...
          -(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
          {
              ADEumAgentConfiguration *config = [[ADEumAgentConfiguration alloc] initWithAppKey:<#EUM_APP_KEY#>]; 
              // Configure the iOS Agent to report the metrics and screenshots to the SaaS EUM Server in EMEA
              config.collectorURL = @"https://syd-col.eum-appdynamics.com";
              config.screenshotURL = @"https://syd-image.eum-appdynamics.com/";
              [ADEumInstrumentation initWithConfiguration: config];
              // other tasks
              return YES;
          }
      
    4. (Optional) If your application is using another tool to report crashes, the iOS Agent may warn you with the following message:

      Code Block
      languagetext
      Agent has detected a third party crash reporting tool. You may wish to disable AppDynamics Crash Reporting by setting the crashReportingEnabled configuration flag to NO

      You are recommended to use only one crash reporting tool for better results. See Disable Crash Reporting for instructions on how to disable the iOS Agent's crash reporting.

    5. Save the file.

    Tabs Page
    tabNameSwift 4.2
    titleSwift 4.2

    The iOS Agent is compatible with applications created using the Swift programming language.  

    1. In your application's AppDelegate.swift file, add this import statement:

      Code Block
      languagecpp
      import ADEUMInstrumentation
    2. In your AppDelegate's didFinishLaunchingWithOptions, create an ADeumAgentConfiguration object with the EUM App Key that you received when completing the Getting Started Wizard to initialize the iOS Agent:

      Code Block
      languagecpp
      // Example EUM App Key: "AAA-AAB-AUM"
      let config = ADEumAgentConfiguration(appKey: <#EUM_APP_KEY#>) 
    3. Configure the iOS Agent to report metrics and screenshots to the SaaS EUM Server in your region and initialize the agent by passing the ADeumAgentConfiguration object to the method initWithConfiguration. (If you are using an on-premises EUM Server, see Configure the iOS Agent for On-Prem Deployments (Optional) for implementation details.)

      Tabs Container
      Width1000px
      directionhorizontal
      Tabs Page
      tabNameAmericas
      titleAmericas
      Code Block
      languagecpp
      #import <ADEUMInstrumentation/ADEumInstrumentation.h>
      #import "AppDelegate.h"
       
          // ...
          func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
              let config = ADEumAgentConfiguration(appKey: <#EUM_APP_KEY#>) 
              // The default SaaS EUM Server and Screenshot Service are in 
              // the Americas, so you can omit the following settings 
              // if you are in the Americas.
              config.collectorURL = "https://col.eum-appdynamics.com"
              config.screenshotUrl = "https://image.eum-appdynamics.com"
              ADEumInstrumentation.initWith(config)
              // other tasks
              return true
          }
      
      Tabs Page
      tabNameEMEA
      titleEMEA
      Code Block
      languagecpp
      #import <ADEUMInstrumentation/ADEumInstrumentation.h>
      #import "AppDelegate.h"
       
          // ...
          func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
              let config = ADEumAgentConfiguration(appKey: <#EUM_APP_KEY#>) 
              // Configure the iOS Agent to report the metrics and screenshots 
              // to the SaaS EUM Server in EMEA
              config.collectorURL = "https://fra-col.eum-appdynamics.com"
              config.screenshotUrl = "https://fra-image.eum-appdynamics.com"
              ADEumInstrumentation.initWith(config)
              // other tasks
              return true
          }
      
      Tabs Page
      tabNameAPAC
      titleAPAC
      Code Block
      languagecpp
      #import <ADEUMInstrumentation/ADEumInstrumentation.h>
      #import "AppDelegate.h"
       
          // ...
          func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
              let config = ADEumAgentConfiguration(appKey: <#EUM_APP_KEY#>) 
              // Configure the iOS Agent to report the metrics and screenshots 
              // to the SaaS EUM Server in APAC
              config.collectorURL = "https://syd-col.eum-appdynamics.com"
              config.screenshotUrl = "https://syd-image.eum-appdynamics.com"
              ADEumInstrumentation.initWith(config)
              // other tasks
              return true
          }
      
    4. (Optional) If your application is using another tool to report crashes, the iOS Agent will warn you with the following message:

      Code Block
      languagetext
      Agent has detected a third party crash reporting tool. You may wish to disable AppDynamics Crash Reporting by setting the crashReportingEnabled configuration flag to NO

      You are recommended to use only one crash reporting tool for better results. See Disable Crash Reporting for instructions on how to disable the iOS Agent's crash reporting.

    5. Save the file.

    Tabs Page
    tabNameApple Watch Extensions
    titleApple Watch Extensions

    Apps written for watchOS 1 contain a WatchKit extension that runs on the user's iPhone, but watchOS 2 also supports a new architecture, where the WatchKit extension runs on the Apple Watch itself. AppDynamics supports the watchOS 1 architecture, but not the new watchOS 2 architecture. Note that apps using the watchOS 1 architecture can run on both watchOS 1 and 2, so if your application is designed for watchOS 1, you can use AppDynamics on both versions of watchOS.

    Because watchOS 1 apps are functionally launched in response to an interaction with the Watch UI, the SDK initialization code should be called at the point of that interaction in the iPhone app, which is usually not at the extension's AppDelegate.m call. The syntax remains the same.

    Anchor
    step3
    step3
    Generate a dSYM File

    To enable the agent to provide human-readable information in the crash snapshots that are produced if the application crashes, compile with the DWARF with dSYM file option to generate a debug symbols (dSYM) file for the application. For more details about why you would want to do this, see Get Human-Readable Crash Snapshots.

    1. In Xcode, select your project in the Project Navigator.
    2. In the target list, select the target that builds your application.
    3. Select the Build Settings tab.
    4. In the Build Options section, make sure that the Debug Information Format is set to DWARF with dSYM File.
    5. Rebuild the Xcode project.

    Anchor
    upload-dsym
    upload-dsym
    Monitor Crashes with the dSYM File 

    This step is optional but highly recommended if you plan to monitor crashes. AppDynamics needs the dSYM file for the application to produce human-readable stack traces for crash snapshots. 

    For instructions, see Upload the dSYM File.

    Anchor
    step5
    step5
    Customize the Instrumentation (Optional)

     The ADEUMInstrumentation class has additional methods to allow you to extend the kinds of data you can collect and aggregate using AppDynamics. There are five basic kinds of extensions that you can create:

    • Custom timers: any arbitrary sequence of events within your code timed, even spanning multiple methods
    • Custom metrics: any integer-based data you wish to collect
    • User data: any string key/value pair you think might be useful
    • Information points: how often a single method is invoked, and how long it takes to run
    • Breadcrumbs: context for a crash

    For more information, see Customize the iOS Instrumentation.

    Anchor
    step6
    step6
    Configure the iOS Agent for On-Prem Deployments (Optional)

    By default, the agent is configured to send its beacons to the EUM Cloud, which is an instance of the EUM Server running on AWS. If you wish to instrument your app in an environment that is using an on-prem version of the EUM Server, you need to modify the URL to which the agent sends its beacons. You do this using the AdeumAgentConfiguration object to set the Collector URL and the Screenshot Service URL to your on-premises EUM Server URL. 

    Info

    The iOS Agent knows which path to use to make calls to different services (Collector/Screenshot Service). For example, if the EUM Server URL is https://myEUMServerURL.com:7001, the iOS Agent will know to use https://myEUMServerURL.com:7001/eumcollector to make requests to the EUM Collector. By specifying the Collector URL, you will not be able to use the SaaS deployment of the EUM Cloud for the Screenshot Service.

    To get the EUM Server URL: 

    1. Open the Administration Console.
    2. From the left navigation bar, click Controller Settings.
    3. In the search field, enter eum.beacon.host or eum.beacon.https.host if you're using HTTPS.
    4. Copy the value for the configuration. This is your EUM Server URL.

    The code examples below show how to set the Collector URL and Screenshot Service URL using Objective-C and Swift.

    Tabs Container
    Width800px
    directionhorizontal
    Tabs Page
    tabNameObjective-C
    titleObjective-C
    Code Block
    languagecpp
    ADEumAgentConfiguration *adeumAgentConfig = [[ADEumAgentConfiguration alloc] initWithAppKey:<#EUM_APP_KEY#>];
    // Set the Collector URL and Screenshot Service URL to the EUM Server URL.
    adeumAgentConfig.collectorURL = <#COLLECTOR_URL:PORT#>;
    adeumAgentConfig.screenshotURL = adeumAgentConfig.collectorURL;
    [ADEumInstrumentation initWithConfiguration:adeumAgentConfig];
    Tabs Page
    tabNameSwift 4.2
    titleSwift 4.2
    Code Block
    languagecpp
    let configuration = ADEumAgentConfiguration(appKey: <#EUM_APP_KEY#>)
    // Set the Collector URL and Screenshot Service URL to the EUM Server URL.
    configuration.collectorURL = <#COLLECTOR_URL:PORT#>
    configuration.screenshotUrl =  configuration.collectorURL
    ADEumInstrumentation.initWith(configuration)

    Enable HTTP to Send Beacons to On-Premises EUM Servers

    If you use an on-premises EUM Server and you wish to use HTTP to dispatch your beacons to the EUM Server, starting with iOS 9 you need to set a flag in your app's info.plist file to allow it to use the unsecured connection. By default, HTTPS is enforced in all iOS 9 applications by App Transport Security (ATS), and the iOS Agent complies with ATS when used with the EUM Cloud.

    Sv translation
    languageja

    EUM アプリケーションキーを取得し、iOS アプリケーションをインストゥルメント化するには、次の手順を実行します。

    Table of Contents
    maxLevel2
    minLevel2
    outlinetrue
    stylenone

    Anchor
    ios-cocoapods-step1
    ios-cocoapods-step1
    アプリケーションキーの取得

    Getting Started Wizard を完了すると、EUM アプリケーションキーが付与されます。このキーは、ソースコードを変更するときに必要となります。場合によっては、複数のモバイルアプリケーションで同じキーを共有できます。

    Getting Started Wizard を完了したのに EUM アプリケーションキーが付与されない場合は、「アプリケーションキーの取得」を参照してください。

    Anchor
    step3
    step3
    エージェントの初期化

    Appd tabs container
    Width1100px
    Appd tab item
    tabNameObjective-C

    アプリケーションの起動後すぐにモバイルエージェントを初期化するには、アプリケーションの AppDelegate ファイルを編集します。これによりアプリケーションが登録されます。編集はコードで一度だけ実行する必要があります。

    1. アプリケーションの AppDelegate.m ファイルで、次の import ステートメントを追加します。

      Code Block
      languagecpp
      #import <ADEUMInstrumentation/ADEumInstrumentation.h>
    2. didFinishLaunchingWithOptions メソッドで、Getting Started Wizard の完了時に受領した EUM アプリケーションキーを使用して ADeumAgentConfiguration オブジェクトを作成し、iOS エージェントを初期化します。

      Code Block
      languagecpp
      // Example EUM App Key: "AAA-AAB-AUM"
      ADEumAgentConfiguration *config = [[ADEumAgentConfiguration alloc] initWithAppKey:<#EUM_APP_KEY#>];

      コードは次のように指定する必要があります。

      Code Block
      languagecpp
      #import <ADEUMInstrumentation/ADEumInstrumentation.h>
      #import "AppDelegate.h"
       
          // ...
          -(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
          {
              // Example EUM App Key: "AAA-AAB-AUM"
              ADEumAgentConfiguration *config = [[ADEumAgentConfiguration alloc] initWithAppKey:<#EUM_APP_KEY#>]; 
              // other tasks
              return YES;
          }
      
    3. iOS エージェントを設定して地域内の SaaS EUM Server にメトリックとスクリーンショットを報告し、ADeumAgentConfiguration オブジェクトをメソッド initWithConfiguration に渡してエージェントを初期化します(オンプレミスの EUM Server を使用している場合は、実装の詳細について、「オンプレミス展開用の iOS エージェントの構成(オプション)」を参照してください)。

      Appd tabs container
      Width1000px
      Appd tab item
      tabNameアメリカ地域
      Code Block
      languagecpp
      #import <ADEUMInstrumentation/ADEumInstrumentation.h>
      #import "AppDelegate.h"
       
          // ...
          -(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
          {
              ADEumAgentConfiguration *config = [[ADEumAgentConfiguration alloc] initWithAppKey:<#EUM_APP_KEY#>];
              // The default SaaS EUM Server and Screenshot Service are in the Americas,  
              // so you can omit the following settings if you are in the Americas.
              config.collectorURL = @"https://col.eum-appdynamics.com";
              config.screenshotURL = @"https://image.eum-appdynamics.com/";
              [ADEumInstrumentation initWithConfiguration: config];
              // other tasks
              return YES;
           }
      
      Appd tab item
      tabNameEMEA
      Code Block
      languagecpp
      #import <ADEUMInstrumentation/ADEumInstrumentation.h>
      #import "AppDelegate.h"
       
          // ...
          -(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
          {
              ADEumAgentConfiguration *config = [[ADEumAgentConfiguration alloc] initWithAppKey:<#EUM_APP_KEY#>]; 
              // Configure the iOS Agent to report the metrics and screenshots to the SaaS EUM Server in EMEA
              config.collectorURL = @"https://fra-col.eum-appdynamics.com";
              config.screenshotURL = @"https://fra-image.eum-appdynamics.com/";
              [ADEumInstrumentation initWithConfiguration: config];
              // other tasks
              return YES;
          }
      
      Appd tab item
      tabNameAPAC
      Code Block
      languagecpp
      #import <ADEUMInstrumentation/ADEumInstrumentation.h>
      #import "AppDelegate.h"
       
          // ...
          -(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
          {
              ADEumAgentConfiguration *config = [[ADEumAgentConfiguration alloc] initWithAppKey:<#EUM_APP_KEY#>]; 
              // Configure the iOS Agent to report the metrics and screenshots to the SaaS EUM Server in EMEA
              config.collectorURL = @"https://syd-col.eum-appdynamics.com";
              config.screenshotURL = @"https://syd-image.eum-appdynamics.com/";
              [ADEumInstrumentation initWithConfiguration: config];
              // other tasks
              return YES;
          }
      
    4. (オプション)アプリケーションが別のツールを使用してクラッシュを報告している場合、iOS エージェントは次のメッセージによる警告を行うことがあります。

      Code Block
      languagetext
      Agent has detected a third party crash reporting tool. You may wish to disable AppDynamics Crash Reporting by setting the crashReportingEnabled configuration flag to NO

      より良い結果を得るために、クラッシュレポートツールは 1 つだけ使用することをお勧めします。iOS エージェントのクラッシュレポートを無効にする方法については、「クラッシュレポートの無効化」を参照してください。

    5. ファイルを保存します。

    Appd tab item
    tabNameSwift 4.2

    iOS エージェントは、Swift プログラミング言語を使用して作成されたアプリケーションと互換性があります。  

    1. アプリケーションの AppDelegate.swift ファイルで、次の import ステートメントを追加します。

      Code Block
      languagecpp
      import ADEUMInstrumentation
    2. AppDelegate の didFinishLaunchingWithOptions で、ADeumAgentConfiguration オブジェクトを作成します(Getting Started Wizard の完了時に受領した EUM アプリケーションキーを使用)。次に、iOS エージェントを初期化します。

      Code Block
      languagecpp
      // Example EUM App Key: "AAA-AAB-AUM"
      let config = ADEumAgentConfiguration(appKey: <#EUM_APP_KEY#>) 
    3. iOS エージェントを設定して地域内の SaaS EUM Server にメトリックとスクリーンショットを報告し、ADeumAgentConfiguration オブジェクトをメソッド initWithConfiguration に渡してエージェントを初期化します(オンプレミスの EUM Server を使用している場合は、実装の詳細について、「オンプレミス展開用の iOS エージェントの構成(オプション)」を参照してください)。

      Appd tabs container
      Width1000px
      Appd tab item
      tabNameアメリカ地域
      Code Block
      languagecpp
      #import <ADEUMInstrumentation/ADEumInstrumentation.h>
      #import "AppDelegate.h"
       
          // ...
          func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
              let config = ADEumAgentConfiguration(appKey: <#EUM_APP_KEY#>) 
              // The default SaaS EUM Server and Screenshot Service are in 
              // the Americas, so you can omit the following settings 
              // if you are in the Americas.
              config.collectorURL = "https://col.eum-appdynamics.com"
              config.screenshotUrl = "https://image.eum-appdynamics.com"
              ADEumInstrumentation.initWith(config)
              // other tasks
              return true
          }
      
      Appd tab item
      tabNameEMEA
      Code Block
      languagecpp
      #import <ADEUMInstrumentation/ADEumInstrumentation.h>
      #import "AppDelegate.h"
       
          // ...
          func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
              let config = ADEumAgentConfiguration(appKey: <#EUM_APP_KEY#>) 
              // Configure the iOS Agent to report the metrics and screenshots 
              // to the SaaS EUM Server in EMEA
              config.collectorURL = "https://fra-col.eum-appdynamics.com"
              config.screenshotUrl = "https://fra-image.eum-appdynamics.com"
              ADEumInstrumentation.initWith(config)
              // other tasks
              return true
          }
      
      Appd tab item
      tabNameAPAC
      Code Block
      languagecpp
      #import <ADEUMInstrumentation/ADEumInstrumentation.h>
      #import "AppDelegate.h"
       
          // ...
          func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
              let config = ADEumAgentConfiguration(appKey: <#EUM_APP_KEY#>) 
              // Configure the iOS Agent to report the metrics and screenshots 
              // to the SaaS EUM Server in APAC
              config.collectorURL = "https://syd-col.eum-appdynamics.com"
              config.screenshotUrl = "https://syd-image.eum-appdynamics.com"
              ADEumInstrumentation.initWith(config)
              // other tasks
              return true
          }
      
    4. (オプション)アプリケーションが別のツールを使用してクラッシュを報告している場合、iOS エージェントは次のメッセージによる警告を行います。

      Code Block
      languagetext
      Agent has detected a third party crash reporting tool. You may wish to disable AppDynamics Crash Reporting by setting the crashReportingEnabled configuration flag to NO

      より良い結果を得るために、クラッシュレポートツールは 1 つだけ使用することをお勧めします。iOS エージェントのクラッシュレポートを無効にする方法については、「クラッシュレポートの無効化」を参照してください。

    5. ファイルを保存します。

    Appd tab item
    tabNameApple Watch の拡張機能

    watchOS 1 用に作成されたアプリケーションには、ユーザの iPhone で実行する WatchKit 拡張機能が含まれていますが、watchOS 2 ではさらに新しいアーキテクチャもサポートされます。つまり、WatchKit 拡張機能が Apple Watch 自体で実行されます。AppDynamics では watchOS 1 アーキテクチャをサポートしていますが、新しい watchOS 2 アーキテクチャはサポートしていません。watchOS 1 アーキテクチャを使用するアプリケーションは watchOS 1 と 2 の両方で実行できるため、アプリケーションが watchOS 1 用に設計されている場合は、両方のバージョンの watchOS で AppDynamics を使用できます。

    watchOS 1 アプリは Watch UI の操作に応答して機能的に起動されるため、SDK 初期化コードは iPhone アプリでのその操作の時点で呼び出される必要があります。これは通常、拡張機能の AppDelegate.m コールとは異なります。構文に変更はありません。

    Anchor
    step3
    step3
    dSYM ファイルの生成

    アプリケーションがクラッシュした場合に生成されるクラッシュスナップショットに、人間が判読可能な情報をエージェントが提供できるようにするには、[DWARF with dSYM] ファイルオプションを使用してコンパイルし、アプリケーションのデバッグシンボル(dSYM)ファイルを生成します。これを実行する理由の詳細については、「Get Human-Readable Crash Snapshots」を参照してください。

    1. Xcode の [Project Navigator] で、プロジェクトを選択します。
    2. ターゲットリストで、アプリケーションを構築するターゲットを選択します。
    3. [Build Settings] タブを選択します。
    4. [Build Options] セクションで、[Debug Information Format] が [DWARF with dSYM File] に設定されていることを確認します。
    5. Xcode プロジェクトを再構築します。

    Anchor
    upload-dsym
    upload-dsym
    dSYM ファイルによるクラッシュのモニタ

    この手順はオプションですが、クラッシュをモニタする場合は強く推奨します。AppDynamics は、アプリケーションがクラッシュスナップショット用の人間が判読可能なスタックトレースを生成するために、dSYM ファイルを必要とします。 

    この説明については、「Upload the dSYM File」を参照してください。

    Anchor
    step5
    step5
    インストゥルメンテーションのカスタマイズ(オプション)

     ADEUMInstrumentation クラスには、AppDynamics を使用して収集および集約できるデータの種類を拡張できる追加のメソッドがあります。作成できる拡張には、次の 5 つの基本タイプがあります。

    • カスタムタイマー:コード内の任意のイベントシーケンスが、複数のメソッドにまたがる場合でも、時間を計測できます
    • カスタムメトリック:収集する任意の整数ベースのデータ
    • ユーザデータ:任意の文字列キーと値のペアが役立つ可能性があります
    • インフォメーションポイント:1 つのメソッドが呼び出される頻度と実行にかかる時間
    • トピックパス(パンくずリスト):クラッシュのコンテキスト

    詳細については、「Customize the iOS Instrumentation」を参照してください。

    Anchor
    step6
    step6
    オンプレミス展開用の iOS エージェントの構成(オプション)

    デフォルトでは、エージェントがビーコンを EUM クラウドに送信するように設定されています。EUM クラウドは、AWS 上で実行されている EUM Server のインスタンスです。EUM Server のオンプレミスバージョンを使用している環境にアプリケーションをインストゥルメントする場合は、エージェントがビーコンを送信する URL を変更する必要があります。これを行うには、AdeumAgentConfiguration オブジェクトを使用して、コレクタ URL とスクリーンショットサービス URL をオンプレミス EUM Server URL に設定します。 

    Info

    iOS エージェントは、さまざまなサービス(コレクタ/スクリーンショットサービス)へのコール発信に使用するパスを認識しています。たとえば、EUM Server の URL が https://myEUMServerURL.com:7001 の場合、iOS エージェントは EUM コレクタへリクエストを行うために https://myEUMServerURL.com:7001/eumcollector を使用することを認識します。コレクタ URL を指定することで、スクリーンショットサービスに EUM クラウドの SaaS 展開を使用することはできなくなります。

    EUM Server の URL を取得するには、次の手順を実行します。

    1. 管理コンソールを開きます。
    2. 左側のナビゲーションバーで、[Controller Settings] をクリックします。
    3. HTTPS を使用している場合は検索フィールドに「eum.beacon.host」または「eum.beacon.https.host」と入力します。
    4. 設定の値をコピーします。これは、EUM Server の URL です。

    次のコード例は、Objective-C および Swift を使用してコレクタ URL とスクリーンショットサービス URL を設定する方法を示しています。

    Appd tabs container
    Width800px
    Appd tab item
    tabNameObjective-C
    Code Block
    languagecpp
    ADEumAgentConfiguration *adeumAgentConfig = [[ADEumAgentConfiguration alloc] initWithAppKey:<#EUM_APP_KEY#>];
    // Set the Collector URL and Screenshot Service URL to the EUM Server URL.
    adeumAgentConfig.collectorURL = <#COLLECTOR_URL:PORT#>;
    adeumAgentConfig.screenshotURL = adeumAgentConfig.collectorURL;
    [ADEumInstrumentation initWithConfiguration:adeumAgentConfig];
    Appd tab item
    tabNameSwift 4.2
    Code Block
    languagecpp
    let configuration = ADEumAgentConfiguration(appKey: <#EUM_APP_KEY#>)
    // Set the Collector URL and Screenshot Service URL to the EUM Server URL.
    configuration.collectorURL = <#COLLECTOR_URL:PORT#>
    configuration.screenshotUrl =  configuration.collectorURL
    ADEumInstrumentation.initWith(configuration)

    オンプレミス EUM Server にビーコンを送信するための HTTP の有効化

    オンプレミス EUM Server を使用している状況で、HTTP を使用してビーコンを EUM Server にディスパッチする場合、iOS 9 以降では、アプリケーションの info.plist  ファイルにフラグを設定して、セキュアでない接続の使用を許可できるようにする必要があります。デフォルトでは、HTTPS が App Transport Security(ATS)によってすべての iOS 9 アプリケーションに適用されます。また、iOS エージェントは EUM クラウドで使用されている場合は ATS に準拠します。