MAUI と Xamarin の概要

重要

Visual Studio App Center は、2026 年 6 月 30 日まで引き続きサポートされる分析機能と診断機能を除き、2025 年 3 月 31 日に廃止されました。 詳細を参照してください。

App Center SDK ではモジュールアーキテクチャが使用されるため、サービスの一部またはすべてを使用できます。

さあ、App Center Analytics と App Center Crashes を利用するために、アプリで App Center .NET SDK の設定を始めましょう。 App Center Distribute をアプリに追加するには、 App Center Distribute のドキュメントを参照してください。

1.前提条件

開始する前に、次の前提条件が満たされていることを確認します。

  • プロジェクトは、Visual Studio または Visual Studio for Mac で設定されます。
  • iOS 11.0 以降または Android 5.0 (API レベル 21) 以降を実行しているデバイスを対象としています。
  • クラッシュ レポート機能を提供する他の SDK を使用していません。

サポートされているプラットフォーム:

  • MAUI iOS
  • MAUI Android
  • MAUI Windows
  • .NET 6.0 macOS
  • Xamarin.Android
  • Xamarin.iOS
  • Xamarin.Mac
  • Xamarin.Forms (iOS、macOS Android、UWP、Windows デスクトップ アプリケーション)

1.1 マウイ島

注

現在、App Center ポータルには MAUI プラットフォームはありません。 iOS 用の Xamarin と Windows 用の Android および UWP を使用してください。

1.2 Xamarin.Android について

Android を OS として、Xamarin をプラットフォームとして使用して、App Center ポータルでアプリを作成します。

1.3 Xamarin.iOS について

iOS を OS として、Xamarin をプラットフォームとして使用して、App Center ポータルでアプリを作成します。

1.4 Xamarin.Mac について

MACOS を OS として、Xamarin をプラットフォームとして使用して、App Center ポータルでアプリを作成します。

警告

アプリが App Store にアップロードされないという既知の問題があります。 github の進行状況に従います。

1.5 Xamarin.Forms について (iOS、macOS、Android、UWP、Windows Desktop)

App Center で 5 つのアプリを作成します(OS ごとに 1 つ)。

Android、iOS、macOS アプリケーションのプラットフォームとして Xamarin を選択する必要があります (UWP およびデスクトップ アプリケーションには Xamarin オプションがありません)。

Windows デスクトップおよび macOS アプリケーションの場合は、Xamarin.Forms プラットフォームとの互換性のためにプロジェクトを構成する必要があります。

2. App Center ポータルでアプリを作成してアプリ シークレットを取得する

App Center ポータルでアプリを既に作成している場合は、この手順をスキップできます。

  1. appcenter.ms に向かいます。
  2. サインアップまたはログインし、ポータルの右上隅にある [ 新規 追加] という青いボタンをクリックし、ドロップダウン メニューから [ 新しいアプリの追加 ] を選択します。
  3. アプリの名前と説明 (省略可能) を入力します。
  4. 上記の説明に従って、プロジェクトに応じて適切な OS とプラットフォームを選択します。
  5. 右下にある [ 新しいアプリの追加] ボタンをクリックします。

アプリを作成したら、App Center ポータルの [設定] ページでそのアプリ シークレットを取得できます。 [設定] ページの右上隅にある 3 つの垂直ドットをクリックし、Copy app secretを選択してアプリ シークレットを取得します。

3. App Center SDK をソリューションに追加する

App Center SDK は、Visual Studio またはパッケージ マネージャー コンソールを使用して統合できます。

注

App Center SDK では、 厳密な名前付き 記号を使用するアプリケーションとの互換性のために、厳密な名前付きアセンブリが使用されます。

Visual Studio for Mac

  • Visual Studio を開きます。
  • [ ファイル]>[開く] をクリックし、ソリューションを選択します。
  • ソリューション ナビゲーターで、[ パッケージ ] セクションを右クリックし、[ NuGet パッケージの追加]を選択します。...
  • App Center を検索し、[App Center Analytics と App Center のクラッシュ] を選択します。
  • [ パッケージの追加] をクリックします。

Visual Studio for Windows

  • Visual Studio を開きます。
  • [ ファイル]>[開く] をクリックし、ソリューションを選択します。
  • ソリューション ナビゲーターで、[ 参照 ] を右クリックし、[ NuGet パッケージの管理] を選択します。
  • App Center を検索し、Microsoft.AppCenter.Analytics パッケージと Microsoft.AppCenter.Crashes パッケージをインストールします。

パッケージ マネージャー コンソール

  • Visual Studio でコンソールを開きます。 これを行うには、 ツール>NuGet パッケージ マネージャー>パッケージ マネージャー コンソールを選択します。
  • Visual Studio for Mac で作業している場合は、NuGet パッケージ管理拡張機能がインストールされていることを確認します。 このためには、 Visual Studio>Extensions を選択し、必要に応じて NuGet を検索してインストールします。
  • コンソールで次のコマンドを入力します。
Install-Package Microsoft.AppCenter.Analytics
Install-Package Microsoft.AppCenter.Crashes

アプリケーションに SDK を統合したので、次は SDK を起動し、App Center サービスを利用します。

注

ポータブル プロジェクト ( Xamarin.Forms など) で App Center SDK を使用する場合は、ポータブル、Android、iOS の各プロジェクトにパッケージをインストールする必要があります。 そのためには、各サブプロジェクトを開き、 Visual Studio for Mac または Visual Studio forWindows セクションで説明されている対応する手順に従う必要があります。

4. SDK を起動する

App Center を使用するには、使用するモジュールにオプトインする必要があります。 既定では、モジュールは起動されません。SDK を起動するときに、各モジュールを明示的に呼び出す必要があります。

4.1 using 文を追加する

次のファイルに適切な名前空間を追加します。

  • MAUI と Xamarin.Forms - App.xaml.cs
  • Xamarin.iOS と Xamarin.Mac - AppDelegate.cs
  • Xamarin.Android - MainActivity.cs
using Microsoft.AppCenter;
using Microsoft.AppCenter.Analytics;
using Microsoft.AppCenter.Crashes;

4.2 Start() メソッドを追加する

4.2.1 MAUI および Xamarin.Forms

App Center ポータルでプラットフォームごとに異なるアプリケーションを作成する必要があります。 アプリごとに異なるアプリ シークレットがあります。 プロジェクトの App.xaml.cs ファイルを開き、コンストラクター (または Xamarin.Forms の OnStart() メソッド) に次の行を追加します。

AppCenter.Start("ios={Your App Secret};macos={Your App Secret};android={Your App Secret};uwp={Your App Secret};windowsdesktop={Your App Secret}", typeof(Analytics), typeof(Crashes));

App Center サービスを個別に開始する必要がある場合は、次の手順を実行する必要があります。

  1. アプリシークレットを使用してサービスを構成または開始します。
  2. コードを複数回呼び出すことができる場合は、App Center が既に構成されているかどうかを確認します。
  3. アプリ シークレットなしで必要なサービスを開始します。
AppCenter.Configure("ios={Your App Secret};macos={Your App Secret};android={Your App Secret};uwp={Your App Secret};windowsdesktop={Your App Secret}");
if (AppCenter.Configured)
{
    AppCenter.Start(typeof(Analytics));
    AppCenter.Start(typeof(Crashes));
}

4.2.2 Xamarin.Android

注

Android 用 HockeyApp SDK を使用している場合は、必ず App Center SDK の 後 に HockeyApp SDK を初期化してください。

プロジェクトのMainActivity.cs ファイルを開き、Start() メソッド内にOnCreate()呼び出しを追加します

AppCenter.Start("{Your App Secret}", typeof(Analytics), typeof(Crashes));

注

アプリケーションにバックグラウンド サービスまたはブロードキャスト レシーバー、エクスポートされたアクティビティ、コンテンツ プロバイダーなどの複数のエントリ ポイントがある場合は、代わりに AppCenter コールバックでApplication.OnCreateを開始することをお勧めします。

4.2.3 Xamarin.iOS と Xamarin.Mac

注

アプリに複数のアクティブなクラッシュ レポート SDK を含めることはできません。 他の SDK のクラッシュ レポート機能を無効にして、App Center がクラッシュをキャッチできることを確認します。

プロジェクトのAppDelegate.cs ファイルを開き、Start() メソッド内にFinishedLaunching()呼び出しを追加します

AppCenter.Start("{Your App Secret}", typeof(Analytics), typeof(Crashes));

注

クラッシュを使用する場合は、UI/メイン スレッドでこのメソッドを呼び出し、 Start メソッドが戻るまでバックグラウンド タスクを開始しないようにする必要があります。 その理由は、クラッシュの初期化中に別のスレッドからキャッチされた null 参照例外がネイティブ クラッシュをトリガーし、catch 句を無視する可能性があるためです。 AppCenter.Start メソッドが戻ったら、null 参照例外を再び try/catch しても安全です。 このタイミングの問題の原因の詳細については、 シグナルとサードパーティのクラッシュ レポーターに関する 記事を参照してください。

警告

ソース コードにアプリ シークレットを埋め込むことは推奨されません。

重要

中かっこは、アプリシークレットを実際に配置する場所として示されていますが、Start呼び出しには中かっこを含めないようにしてください。

注

iOS アプリケーションの場合、アプリに複数のアクティブなクラッシュ レポート SDK を含めることはできません。 他の SDK のクラッシュ レポート機能を無効にして、App Center がクラッシュをキャッチできることを確認します。

4.3 プレースホルダーをアプリ シークレットに置き換える

{Your App Secret}テキストは、アプリケーションの実際の値に置き換えてください。 アプリ シークレットは、App Center ポータルの [はじめ に] ページまたは [設定] ページにあります。

[作業の開始] ページには、上記のコード サンプルとアプリ シークレットが含まれており、サンプル全体をコピーして貼り付けることができます。

上記の例は、 Start() メソッドを使用し、App Center Analytics と App Center のクラッシュの両方を含める方法を示しています。

2 つのサービスのいずれかを使用しない場合は、上記のメソッド呼び出しから対応するパラメーターを削除します。

start メソッドで各モジュールをパラメーターとして明示的に指定しない限り、その App Center サービスを使用することはできません。 さらに、 Start() API は、アプリのライフサイクルで 1 回だけ使用できます。他のすべての呼び出しでは、コンソールに警告が記録され、最初の呼び出しに含まれるモジュールのみが使用できるようになります。

たとえば、App Center Analytics にオンボードする場合は、次のように Start() 呼び出しを変更する必要があります。

4.3.1 MAUI と Xamarin.Forms

AppCenter.Start("ios={Your App Secret};macos={Your App Secret};android={Your App Secret};uwp={Your App Secret};windowsdesktop={Your App Secret}", typeof(Analytics));

4.3.2 Xamarin Native

AppCenter.Start("{Your App Secret}", typeof(Analytics));

これで、SDK が自動的に収集する分析データとクラッシュ データをポータルで視覚化するように設定されています。

両方のサービスのより高度な機能をカスタマイズして使用する方法については、 App Center Analytics と App Center のクラッシュ に関するドキュメントを参照してください。

アプリ内更新プログラムの使用を開始する方法については、 App Center Distribute のドキュメントを参照してください。

注

Xamarin Forms のポータブル API を使用すると、すべてのモジュールの API が表示されますが、 UWP および Windows デスクトップ プラットフォームでこれらの API がすべてサポートされているわけではありません。 また、UWP および Windows Desktop アプリケーションで実行しても何も行われません。 特に、UWP と Windows Desktop では、配布モジュールはサポートされていません。 戻り値の型を持つメソッドは、UWP および Windows デスクトップ アプリケーションで null (オブジェクトの場合)、 0 (数値の場合)、または false (ブール値の場合) を返します。

5. バックアップ ルール (Android のみ)

注

Android 6.0 (API レベル 23) 以降を対象とするアプリでは、自動バックアップが自動的に有効になります。 

注

バックアップ規則を含むカスタム ファイルが既にある場合は、3 番目の手順に切り替えます。

自動バックアップを使用してデバイスに関する正しくない情報を取得しないようにする場合は、次の手順に従います。

5.1. Android 11 (API レベル 30) 以下の場合。

  1. Resources/xml フォルダー appcenter_backup_rule.xmlファイルを作成します。
  1. プロジェクトの AndroidManifest.xmlファイルを 開きます。 android:fullBackupContent属性を <application> 要素に追加します。 appcenter_backup_rule.xml リソース ファイルを指している必要があります。
android:fullBackupContent="@xml/appcenter_backup_rule"
  1. appcenter_backup_rule.xml ファイルに次のバックアップ規則を追加します。
<full-backup-content xmlns:tools="http://schemas.android.com/tools">
      <exclude domain="sharedpref" path="AppCenter.xml"/>
      <exclude domain="database" path="com.microsoft.appcenter.persistence"/>
      <exclude domain="database" path="com.microsoft.appcenter.persistence-journal"/>
      <exclude domain="file" path="error" tools:ignore="FullBackupContent"/>
      <exclude domain="file" path="appcenter" tools:ignore="FullBackupContent"/>
  </full-backup-content>

5.2. Android 12 (API レベル 31) 以降の場合。

  1. Resources/xml フォルダー appcenter_backup_rule.xmlファイルを作成します。
  1. プロジェクトの AndroidManifest.xmlファイルを 開きます。 android:dataExtractionRules属性を <application> 要素に追加します。 appcenter_backup_rule.xml リソース ファイルを指している必要があります。
android:dataExtractionRules="@xml/appcenter_backup_rule"
  1. appcenter_backup_rule.xml ファイルに次のバックアップ規則を追加します。
<data-extraction-rules xmlns:tools="http://schemas.android.com/tools">
    <cloud-backup>
        <exclude domain="sharedpref" path="AppCenter.xml"/>
        <exclude domain="database" path="com.microsoft.appcenter.persistence"/>
        <exclude domain="database" path="com.microsoft.appcenter.persistence-journal"/>
        <exclude domain="file" path="error" tools:ignore="FullBackupContent"/>
        <exclude domain="file" path="appcenter" tools:ignore="FullBackupContent"/>
    </cloud-backup>
    <device-transfer>
        <exclude domain="sharedpref" path="AppCenter.xml"/>
        <exclude domain="database" path="com.microsoft.appcenter.persistence"/>
        <exclude domain="database" path="com.microsoft.appcenter.persistence-journal"/>
        <exclude domain="file" path="error" tools:ignore="FullBackupContent"/>
        <exclude domain="file" path="appcenter" tools:ignore="FullBackupContent"/>
    </device-transfer>
</data-extraction-rules>