Udostępnij za pośrednictwem


Wprowadzenie do jednostki MAUI i platformy Xamarin

Ważne

Program Visual Studio App Center ma zostać wycofany 31 marca 2025 r. Chociaż możesz nadal używać programu Visual Studio App Center do momentu jego pełnego wycofania, istnieje kilka zalecanych alternatyw, do których można rozważyć migrację.

Dowiedz się więcej o osiach czasu pomocy technicznej i alternatywach.

Zestaw SDK centrum aplikacji korzysta z architektury modułowej, dzięki czemu można używać dowolnych lub wszystkich usług.

Zacznijmy od skonfigurowania zestawu SDK platformy .NET w usłudze App Center w aplikacji w celu używania usługi App Center Analytics i Awarii centrum aplikacji. Aby dodać usługę App Center Distribute do aplikacji, zapoznaj się z dokumentacją dotyczącą dystrybucji centrum aplikacji.

1. Wymagania wstępne

Przed rozpoczęciem upewnij się, że zostały spełnione następujące wymagania wstępne:

  • Projekt jest konfigurowany w programie Visual Studio lub Visual Studio dla komputerów Mac.
  • Dotyczy to urządzeń z systemem iOS 11.0 lub nowszym lub Android 5.0 (poziom interfejsu API 21) lub nowszym.
  • Nie używasz żadnego innego zestawu SDK, który zapewnia funkcję raportowania awarii.

Obsługiwane platformy:

  • MAUI dla systemu iOS
  • MAUI Android
  • MAUI Windows
  • .NET 6.0 macOS
  • Xamarin.Android
  • Xamarin.iOS
  • Xamarin.Mac
  • Xamarin.Forms (aplikacje dla systemów iOS, macOS Android, UWP i Windows Desktop)

1.1 MAUI

Uwaga

Obecnie w portalu Centrum aplikacji nie ma platformy MAUI . Użyj platformy Xamarin dla systemów iOS i Android i UWP dla systemu Windows.

1.2 Informacje o środowisku Xamarin.Android

Utwórz aplikację w portalu Centrum aplikacji z systemem Android jako systemem operacyjnym i platformą Xamarin .

1.3 Informacje o środowisku Xamarin.iOS

Utwórz aplikację w portalu Centrum aplikacji z systemem iOS jako systemem operacyjnym i platformą Xamarin .

1.4 — informacje o środowisku Xamarin.Mac

Utwórz aplikację w portalu Centrum aplikacji z systemem macOS jako systemem operacyjnym i platformą Xamarin .

Ostrzeżenie

Istnieje znany problem uniemożliwiający przekazanie aplikacji do App Store. Postępuj zgodnie z postępem w witrynie github.

1.5 Informacje o zestawach narzędzi Xamarin.Forms (iOS, macOS, Android, UWP i Windows Desktop)

Tworzenie 5 aplikacji w Centrum aplikacji — po jednym dla każdego systemu operacyjnego.

Musisz wybrać platformę Xamarin jako platformę dla aplikacji dla systemów Android, iOS i macOS (aplikacje platformy UWP i aplikacji klasycznych nie mają opcji Xamarin).

W przypadku aplikacji klasycznych i macOS dla systemu Windows należy skonfigurować projekt pod kątem zgodności z platformą Xamarin.Forms.

2. Tworzenie aplikacji w portalu Centrum aplikacji w celu uzyskania wpisu tajnego aplikacji

Jeśli aplikacja została już utworzona w portalu Centrum aplikacji, możesz pominąć ten krok.

  1. Przejdź do appcenter.ms.
  2. Zarejestruj się lub zaloguj się i naciśnij niebieski przycisk w prawym górnym rogu portalu z komunikatem Dodaj nową i wybierz pozycję Dodaj nową aplikację z menu rozwijanego.
  3. Wprowadź nazwę i opcjonalny opis aplikacji.
  4. Wybierz odpowiedni system operacyjny i platformę w zależności od projektu zgodnie z powyższym opisem.
  5. Naciśnij przycisk w prawym dolnym rogu z komunikatem Dodaj nową aplikację.

Po utworzeniu aplikacji możesz uzyskać jej wpis tajny aplikacji na stronie Ustawienia w portalu Centrum aplikacji. W prawym górnym rogu strony Ustawienia kliknij potrójne pionowe kropki i wybierz pozycję Copy app secret , aby uzyskać wpis tajny aplikacji.

3. Dodawanie zestawu SDK centrum aplikacji do rozwiązania

Zestaw SDK centrum aplikacji można zintegrować za pomocą programu Visual Studio lub konsoli menedżera pakietów.

Uwaga

Zestaw SDK usługi App Center używa zestawów o silnych nazwach w celu zapewnienia zgodności z aplikacjami, które używają znaku o silnych nazwach.

Visual Studio dla komputerów Mac

  • Otwórz program Visual Studio.
  • Kliknij pozycję Plik>Otwórz i wybierz rozwiązanie.
  • W nawigatorze rozwiązań kliknij prawym przyciskiem myszy sekcję Pakiety , a następnie wybierz polecenie Dodaj pakiety NuGet....
  • Wyszukaj pozycję App Center i wybierz pozycję Analiza centrum aplikacji i Awarie centrum aplikacji.
  • Kliknij pozycję Dodaj pakiety.

Program Visual Studio dla systemu Windows

  • Otwórz program Visual Studio.
  • Kliknij pozycję Plik>Otwórz i wybierz rozwiązanie.
  • W nawigatorze rozwiązań kliknij prawym przyciskiem myszy pozycję Odwołania i wybierz polecenie Zarządzaj pakietami NuGet.
  • Wyszukaj pozycję App Center i zainstaluj pakiety Microsoft.AppCenter.Analytics i Microsoft.AppCenter.Crash .

Konsola menedżera pakietów

  • Otwórz konsolę programu Visual Studio. W tym celu wybierz pozycję Narzędzia>Konsola menedżera pakietówNuGet Package Manager>.
  • Jeśli pracujesz w Visual Studio dla komputerów Mac, upewnij się, że zainstalowano rozszerzenia zarządzania pakietami NuGet. W tym celu wybierz pozycjęRozszerzeniaprogramu Visual Studio>, wyszukaj pozycję NuGet i zainstaluj, jeśli to konieczne.
  • Wpisz następujące polecenie w konsoli:
Install-Package Microsoft.AppCenter.Analytics
Install-Package Microsoft.AppCenter.Crashes

Teraz, po zintegrowaniu zestawu SDK w aplikacji, nadszedł czas, aby uruchomić zestaw SDK i korzystać z usług Centrum aplikacji.

Uwaga

Jeśli używasz zestawu SDK usługi App Center w projekcie przenośnym (takim jak Xamarin.Forms), musisz zainstalować pakiety w każdym z projektów: przenośnych, Android i iOS. W tym celu należy otworzyć każdy podprojekt i wykonać odpowiednie kroki opisane w sekcjach Visual Studio dla komputerów Mac lub Visual Studio dla systemu Windows.

4. Uruchamianie zestawu SDK

Aby korzystać z usługi App Center, musisz wyrazić zgodę na moduły, których chcesz użyć. Domyślnie nie są uruchamiane żadne moduły i należy jawnie wywołać każdą z nich podczas uruchamiania zestawu SDK.

4.1 Dodawanie instrukcji using

Dodaj odpowiednie przestrzenie nazw w następujących plikach:

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

4.2 Dodawanie Start() metody

4.2.1 MAUI i Xamarin.Forms

Musisz utworzyć różne aplikacje dla każdej platformy w portalu Centrum aplikacji. Dla każdej aplikacji będziesz mieć inny wpis tajny aplikacji. Otwórz plik App.xaml.cs projektu i dodaj następujący wiersz w konstruktorze (lub w OnStart() metodzie 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), typeof(Crashes));

Jeśli musisz uruchomić usługi App Center oddzielnie, należy wykonać następujące kroki:

  1. Skonfiguruj lub uruchom go za pomocą wpisu tajnego aplikacji.
  2. Jeśli kod można wywołać wiele razy, sprawdź, czy centrum aplikacji jest już skonfigurowane.
  3. Uruchom wymagane usługi bez wpisu tajnego aplikacji.
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

Uwaga

Jeśli używasz zestawu Sdk usługi HockeyApp dla systemu Android, pamiętaj o zainicjowaniu zestawu SDK usługi HockeyApp PO zestawie SDK centrum aplikacji.

Otwórz plik MainActivity.cs projektu i dodaj Start() wywołanie wewnątrz OnCreate() metody

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

Uwaga

Jeśli aplikacja ma usługi w tle lub wiele punktów wejścia, takich jak odbiornik emisji, wyeksportowane działania lub dostawcy zawartości, zaleca się rozpoczęcie AppCenter wywołania zwrotnego Application.OnCreate .

4.2.3 Xamarin.iOS i Xamarin.Mac

Uwaga

Nie można mieć więcej niż jednego aktywnego zestawu SDK raportowania awarii w aplikacji. Wyłącz funkcje raportowania awarii innych zestawów SDK, aby upewnić się, że centrum aplikacji może przechwytywać awarie.

Otwórz plik projektu AppDelegate.cs i dodaj Start() wywołanie wewnątrz FinishedLaunching() metody

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

Uwaga

W przypadku korzystania z awarii należy wywołać tę metodę w wątku interfejsu użytkownika/głównym i uniknąć uruchamiania zadań w tle do momentu powrotu Start metody . Przyczyną jest to, że każdy wyjątek odwołania o wartości null przechwycony z innego wątku podczas inicjowania awarii może spowodować awarię natywną i zignorować klauzulę catch. Po powrocie AppCenter.Start metody można ponownie spróbować/złapać wyjątki odwołania o wartości null. Więcej informacji na temat przyczyny tego problemu o chronometrażu można przeczytać w artykule Signals and third-party crash reporters (Sygnały i reporterzy awarii innych firm ).

Ostrzeżenie

Nie zaleca się osadzania wpisu tajnego aplikacji w kodzie źródłowym.

Ważne

Nawiasy klamrowe pokazują, gdzie umieścić rzeczywiste wpisy tajne aplikacji, nie umieszczaj nawiasów klamrowych w wywołaniu Start .

Uwaga

W przypadku aplikacji systemu iOS nie można mieć więcej niż jednego aktywnego zestawu SDK raportowania awarii w aplikacji. Wyłącz funkcje raportowania awarii innych zestawów SDK, aby upewnić się, że centrum aplikacji może przechwytywać awarie.

4.3 Zastąp symbol zastępczy kluczem tajnym aplikacji

Pamiętaj, aby zastąpić {Your App Secret} tekst rzeczywistą wartością aplikacji. Wpis tajny aplikacji można znaleźć na stronie Wprowadzenie lub stronie Ustawienia w portalu Centrum aplikacji.

Strona Wprowadzenie zawiera powyższy przykładowy kod z wpisem tajnym aplikacji, możesz skopiować cały przykład.

W powyższym przykładzie Start() pokazano, jak używać metody i uwzględnić zarówno usługę App Center Analytics, jak i awarie centrum aplikacji.

Jeśli nie chcesz używać jednej z dwóch usług, usuń odpowiedni parametr z powyższego wywołania metody.

Jeśli nie określisz jawnie każdego modułu jako parametrów w metodzie startowej, nie możesz użyć tej usługi App Center. Ponadto Start() interfejs API może być używany tylko raz w cyklu życia aplikacji — wszystkie inne wywołania będą rejestrować ostrzeżenie do konsoli, a tylko moduły zawarte w pierwszym wywołaniu będą dostępne.

Na przykład — jeśli chcesz dołączyć do usługi App Center Analytics, należy zmodyfikować wywołanie Start() w następujący sposób:

4.3.1 MAUI i 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 Natywna platforma Xamarin

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

Wszystko jest gotowe do wizualizacji danych analizy i awarii w portalu, który zestaw SDK zbiera automatycznie.

Zapoznaj się z dokumentacją dotyczącą awarii usługi App Center Analytics i App Center , aby dowiedzieć się, jak dostosowywać i korzystać z bardziej zaawansowanych funkcji obu usług.

Aby dowiedzieć się, jak rozpocząć pracę z aktualizacjami w aplikacji, zapoznaj się z dokumentacją usługi App Center Distribute.

Uwaga

Korzystając z przenośnych interfejsów API z platformy Xamarin Forms, zobaczysz interfejsy API ze wszystkich modułów, jednak nie wszystkie te interfejsy API są obsługiwane na platformach UWP i Windows Desktop i nie robią nic podczas uruchamiania w aplikacjach platformy UWP i aplikacji klasycznych systemu Windows . W szczególności platforma UWP i komputer z systemem Windows nie obsługują następującego modułu: Dystrybucja. Każda metoda z typem zwracanym będzie zwracana null (dla obiektów), 0 (dla liczb) lub false (dla wartości logicznych) w aplikacji platformy UWP i aplikacji klasycznej systemu Windows.

5. Reguły tworzenia kopii zapasowych (tylko system Android)

Uwaga

Aplikacje przeznaczone dla systemu Android 6.0 (poziom 23 interfejsu API) lub nowsze mają automatycznie włączoną automatyczną kopię zapasową. 

Uwaga

Jeśli masz już plik niestandardowy z regułami tworzenia kopii zapasowych, przejdź do trzeciego kroku.

Jeśli używasz automatycznej kopii zapasowej, aby uniknąć uzyskiwania nieprawidłowych informacji o urządzeniach, wykonaj następujące kroki:

5.1. W przypadku systemu Android 11 (poziom 30 interfejsu API) lub niższego.

  1. Utwórz plikappcenter_backup_rule.xml w folderze Resources/xml .
  1. Otwórz plik AndroidManifest.xml projektu. android:fullBackupContent Dodaj atrybut do <application> elementu. Powinien wskazywać appcenter_backup_rule.xml plik zasobu.
android:fullBackupContent="@xml/appcenter_backup_rule"
  1. Dodaj następujące reguły kopii zapasowej do pliku 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. W przypadku systemu Android 12 (poziom 31 interfejsu API) lub nowszego.

  1. Utwórz plikappcenter_backup_rule.xml w folderze Resources/xml .
  1. Otwórz plik AndroidManifest.xml projektu. android:dataExtractionRules Dodaj atrybut do <application> elementu. Powinien wskazywać appcenter_backup_rule.xml plik zasobu.
android:dataExtractionRules="@xml/appcenter_backup_rule"
  1. Dodaj następujące reguły kopii zapasowej do pliku 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>