MAUI と Xamarin の概要

重要

Visual Studio App Center は、2025 年 3 月 31 日に廃止される予定です。 完全に廃止されるまで Visual Studio App Center を引き続き使用できますが、移行を検討できる推奨される代替手段がいくつかあります。

詳細については、サポートタイムラインと代替手段に関するページを参照してください。

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

App Center Analytics と App Center のクラッシュを使用するようにアプリで App Center .NET SDK を設定し始めましょう。 App Center Distribute をアプリに追加するには、 App Center の配布に関するドキュメントを参照してください

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 MAUI

注意

現在、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のクラッシュ] を選択します。
  • [ パッケージの追加] をクリックします

Windows 用 Visual Studio

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

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

  • Visual Studio でコンソールを開きます。 これを行うには、[ツール]>[NuGet パッケージ マネージャー パッケージ マネージャー> コンソール] の順に選択します
  • Visual Studio for Macで作業している場合は、NuGet パッケージ管理拡張機能がインストールされていることを確認します。 このためには、[ Visual Studio>拡張機能] を選択し、 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 for Windows」セクションで説明されている対応する手順に従う必要があります。

4. SDK を起動する

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

4.1 using ステートメントを追加する

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

  • MAUIXamarin.Forms - App.xaml.cs
  • Xamarin.iOSXamarin.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));

注意

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

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 参照例外をもう一度試すかキャッチしても安全です。 このタイミングの問題の原因の詳細については、 シグナルとサードパーティのクラッシュ レポーター に関する記事を参照してください。

警告

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

重要

中かっこは、実際のアプリ シークレットを配置する場所を示し、呼び出しに中かっこを Start 入れないでください。

注意

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

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

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

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

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

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

start メソッドで各モジュールをパラメーターとして明示的に指定しない限り、その App Center サービスを使用することはできません。 さらに、API は Start() アプリのライフサイクルで 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 AnalyticsApp Center のクラッシュ に関するドキュメントを参照してください。

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

注意

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

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>