Xamarin アプリケーションのインストルメンテーション

次の手順に従って、Xamarin iOS、Android、および Forms アプリケーションを手動でインストゥルメント化します。
Xamarin エージェントパッケージの追加
  1. Xamarin エージェントは NuGet ギャラリーから取得します。nuget.org から Splunk AppDynamics Xamarin エージェントのパッケージを追加するには、「Adding a Package」に記載されている手順に従ってください。

  2. AppDynamics.Agent.Forms の Xamarin.Forms パッケージを追加します。

  3. Xamarin.Android プロジェクトで、以下を OnCreate の下の MainActivity.cs に追加します。

CODE
AppDynamics.Droid.Agent.Init(this, bundle);
JAVA
public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsAppCompatActivity {
protected override void OnCreate(Bundle bundle) {
base.OnCreate(bundle);  //existing code
global::Xamarin.Forms.Forms.Init(this, bundle);
AppDynamics.Droid.Agent.Init(this, bundle); //initialize the agent on the Android Platform
LoadApplication(new App());
}
}

アプリケーションキーの取得

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

Xamarin プラットフォームオプションがないため、Android または iOS のいずれかを選択する必要があります。Android の場合、[Manual] を選択する必要があります。

[Getting Started Wizard] を完了したものの、EUM アプリケーションキーを持っていない場合は、「アプリケーションキーの取得」を参照してください。

必要な権限の追加(Android 展開のみ)

ファイル Properties/AndroidManifest.xml を開き、次の権限があることを確認します。

CODE
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>

これらの権限が存在しない場合は、Properties/AndroidManifest.xml ファイルに追加します。

エージェントの初期化

Xamarin エージェントを初期化するには、次のコードを iOS および Android に使用します。ステップ 2 を完了した後に受信した EUM アプリケーションキー(文字列として入力)を使用します。

CODE
var config = AppDynamics.Agent.AgentConfiguration.Create(<EUM_APP_KEY>);
AppDynamics.Agent.Instrumentation.InitWithConfiguration(config);
注: オンプレミス EUM サーバを実行している場合は、EUM サーバへの URL を指定する必要があります。ビジネスインサイトの

オンプレミス EUM サーバをポイントする(オプション)

方法を学ぶ。
Forms ソリューション

Forms ソリューションでは、Android と iOS の両方のアプリケーションをインストゥルメント化するために、Xamarin エージェントの App.xaml.cs ファイルのコンストラクタに初期化コードを配置する必要があります。

CODE
public App()
{
InitializeComponent();
// This initialization code is used by both iOS and Android apps.
var config = AppDynamics.Agent.AgentConfiguration.Create(<EUM_APP_KEY>);
AppDynamics.Agent.Instrumentation.InitWithConfiguration(config);
MainPage = new FormsExamplePage();
}

ただし、Android 用の MainActivity.cs ファイルまたは iOS 用の AppDelegate.cs ファイルにインストゥルメント化するアプリケーションコードがある場合は、iOS ソリューションおよび Android ソリューションの場合と同様に、これらのファイルで Xamarin エージェントを初期化する必要があります。

iOSソリューション

iOS アプリケーションの場合、次に示すように、AppDelegate.cs ファイルの初期化コードをクラス AppDelegate のメソッド FinishedLaunching に配置します。

JAVA
public class AppDelegate : UIApplicationDelegate
{
// class-level declarations
public override UIWindow Window
{
get;
set;
}
public override bool FinishedLaunching(UIApplication application, NSDictionary launchOptions)
{
// The two lines below initialize the AppDynamics instrumentation.
var config = AppDynamics.Agent.AgentConfiguration.Create(<EUM_APP_KEY>);
AppDynamics.Agent.Instrumentation.InitWithConfiguration(config);
...
return true;
}
...
}

これを Main.cs Main に配置することもできます。

Androidソリューション

MainActivity.cs ファイルで、初期化コードをメソッド OnCreate: に配置します。

CODE
class MainActivity {
protected override void OnCreate(Bundle savedInstanceState) {
// The two lines below initialize the AppDynamics instrumentation.
var config = AppDynamics.Agent.AgentConfiguration.Create(<EUM_APP_KEY>);
AppDynamics.Agent.Instrumentation.InitWithConfiguration(config);
...
}
}

アプリケーションの構築

Visual Studio からアプリケーションを実行して構築します。[Getting Started Wizard] から、アプリケーションが接続され、インストルメンテーションが検証されていることがわかります。

注:

Xamarin エージェントが 21.6.0 以降の iOS プロジェクトの場合は、デバッグビルドやリリースビルドなどの各 simulator ビルド構成用に MtouchExtraArgs --registrar:static を追加する必要があります。静的レジストラがすでにデフォルトであるため、これは物理デバイス構成には適用されません。

iOS プロジェクトファイルを直接編集する場合は、ビルド構成に MtouchExtraArgs 要素が含まれている必要があります。

CODE
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|iPhoneSimulator' "> ... <MtouchExtraArgs>--registrar:static</MtouchExtraArgs> </PropertyGroup> "