Xamarin アプリケーションのインストルメンテーション
Xamarin エージェントは NuGet ギャラリーから取得します。nuget.org から Splunk AppDynamics Xamarin エージェントのパッケージを追加するには、「Adding a Package」に記載されている手順に従ってください。
AppDynamics.Agent.Forms の Xamarin.Forms パッケージを追加します。
Xamarin.Androidプロジェクトで、MainActivity.csのOnCreateの下に次を追加します。
AppDynamics.Droid.Agent.Init(this, bundle);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 アプリケーションキーを取得するには、 を完了します。このキーは、ソースコードを変更するときに必要になります。場合によっては、複数のモバイルアプリケーションが同じキーを共有できます。
Xamarin プラットフォームオプションがないため、Android または iOS のいずれかを選択する必要があります。Android の場合、 を選択する必要があります。
[Getting Started Wizard] を完了したが、EUM アプリケーションキーを持っていない場合は、「アプリケーションキーの取得」を参照してください。
必要な権限の追加(Android 展開のみ)
ファイル Properties/AndroidManifest.xml を開き、次の権限があることを確認します。
<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 アプリケーションキー(文字列として入力)を使用します。
var config = AppDynamics.Agent.AgentConfiguration.Create(<EUM_APP_KEY>);
AppDynamics.Agent.Instrumentation.InitWithConfiguration(config);Forms ソリューションでは、Android と iOS の両方のアプリケーションをインストルメント化するために、Xamarin エージェントの App.xaml.cs ファイルのコンストラクタに初期化コードを配置する必要があります。
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 アプリケーションの場合、次に示すように、AppDelegate.cs ファイルの初期化コードをクラス AppDelegate のメソッド FinishedLaunching に配置します。
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 に配置することもできます。
MainActivity.cs ファイルで、初期化コードをメソッド OnCreate に配置します。
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 からアプリケーションを実行して構築します。開始ウィザードから、アプリケーションが接続され、インストルメンテーションが検証されていることがわかります。
Xamarin エージェントが 21.6.0 以降の iOS プロジェクトの場合は、デバッグビルドやリリースビルドなどの各 simulator ビルド構成用に MtouchExtraArgs--registrar:static を追加する必要があります。静的レジストラがすでにデフォルトであるため、これは物理デバイス構成には適用されません。
iOS プロジェクトファイルを直接編集する場合は、ビルド構成に MtouchExtraArgs 要素が含まれている必要があります。
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|iPhoneSimulator' "> ... <MtouchExtraArgs>--registrar:static</MtouchExtraArgs> </PropertyGroup> "