Udostępnij za pośrednictwem


Wprowadzenie do programu MAUI i platformy Xamarin

Ważne

Program Visual Studio App Center został wycofany 31 marca 2025 r. z wyjątkiem funkcji analizy i diagnostyki, które będą nadal obsługiwane do 30 czerwca 2026 r. Dowiedz się więcej.

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

Zacznijmy od zainstalowania zestawu SDK App Center .NET w Twojej aplikacji, aby korzystać z App Center Analytics i App Center Crashes. Aby dodać App Center Distribute do aplikacji, zapoznaj się z dokumentacją App Center Distribute.

1. Wymagania wstępne

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

  • Projekt został skonfigurowany 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 / Notatka

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 przy użyciu systemu Android jako systemu operacyjnego i platformy Xamarin .

1.3 Informacje o środowisku Xamarin.iOS

Utwórz aplikację w portalu Centrum aplikacji przy użyciu systemu iOS jako systemu operacyjnego i platformy 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 przekazywanie aplikacji do sklepu App Store. Śledź postępy na github.

1.5 Informacje o zestawach 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 platformy Xamarin).

Dla aplikacji na Windows Desktop i macOS należy skonfigurować projekt pod kątem zgodności z platformą Xamarin.Forms.

2. Utwórz swoją aplikację w Centrum aplikacji Portalu, aby uzyskać tajny klucz 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 napisem 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 kropki pionowe i wybierz Copy app secret, aby uzyskać Sekret aplikacji.

3. Dodaj zestaw SDK App Center do rozwiązania

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

Uwaga / Notatka

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

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 App Center, i wybierz App Center Analytics oraz App Center Crashes.
  • Kliknij pozycję Dodaj pakiety.

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 App Center i zainstaluj pakiety Microsoft.AppCenter.Analytics oraz Microsoft.AppCenter.Crashes.

Konsola menedżera pakietów

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

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

Uwaga / Notatka

Jeśli używasz zestawu SDK usługi App Center w przenośnym projekcie (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 Programu Visual Studio dla komputerów Mac lub Visual Studio dla systemu Windows .

4. Uruchamianie zestawu SDK

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

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 tajny klucz aplikacji. Otwórz plik App.xaml.cs projektu i dodaj następujący wiersz w konstruktorze (lub w metodzie OnStart() dla zestawu narzędzi 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, wykonaj następujące kroki:

  1. Skonfiguruj lub uruchom go przy użyciu klucza tajnego aplikacji.
  2. Jeśli kod może być wywoływany wiele razy, sprawdź, czy centrum aplikacji jest już skonfigurowane.
  3. Uruchom wymagane usługi bez sekretu 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 / Notatka

Jeśli używasz HockeyApp SDK dla systemu Android, pamiętaj o zainicjowaniu HockeyApp SDK PO App Center SDK.

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

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

Uwaga / Notatka

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ę zamiast tego uruchomić AppCenter w wywołaniu zwrotnym Application.OnCreate.

4.2.3 Xamarin.iOS i Xamarin.Mac

Uwaga / Notatka

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

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

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

Uwaga / Notatka

W przypadku korzystania z modułu Crashes, należy wywołać tę metodę w wątku interfejsu użytkownika/głównym i unikać uruchamiania zadań w tle, dopóki metoda się nie zakończy. Przyczyną jest to, że każde odwołanie do null przechwycone z innego wątku podczas inicjowania Crashes może spowodować awarię natywną i zignorować klauzulę przechwytywania. Po powrocie metody AppCenter.Start można ponownie obsługiwać wyjątki związane z odwołaniem do null. Więcej informacji o przyczynie tego problemu z chronometrażem można przeczytać w artykule Signals and third-party crash reporters (Sygnały i reporterzy awarii innych firm ).

Ostrzeżenie

Nie zaleca się umieszczać tajnego klucza aplikacji w kodzie źródłowym.

Ważne

Nawiasy klamrowe pokazują, gdzie umieścić faktyczne sekrety aplikacji, nie umieszczaj ich w kodzie Start.

Uwaga / Notatka

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 przechwycić awarie.

4.3 Zastąp zastępczy tekst sekretem swojej 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, zawierający twój tajny klucz aplikacji. Możesz skopiować i wkleić cały ten przykład.

W powyższym przykładzie pokazano, jak używać Start() metody i uwzględnić zarówno analizę centrum aplikacji, 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 uruchamiania, nie możesz skorzystać z 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() 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 Xamarin Native

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

Świetnie, jesteś gotowy, aby wyświetlić dane analizy i awarii na portalu, które SDK zbiera automatycznie.

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

Aby dowiedzieć się, jak rozpocząć korzystanie z aktualizacji wewnątrz aplikacji, zapoznaj się z dokumentacją App Center Distribute.

Uwaga / Notatka

Korzystając z przenośnych API z Xamarin Forms, zobaczysz API ze wszystkich modułów, jednak nie wszystkie te API są obsługiwane na platformach UWP i Windows Desktop i nie działają podczas uruchamiania w aplikacjach UWP i Windows Desktop. W szczególności platforma UWP i komputer z systemem Windows nie obsługują następującego modułu: Dystrybucja. Każda metoda posiadająca typ zwrotny będzie zwracać albo wartość null (dla obiektów), 0 (dla liczb) albo false (dla wartości logicznych) zarówno w aplikacjach UWP, jak i klasycznych aplikacjach Windows.

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

Uwaga / Notatka

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

Uwaga / Notatka

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 interfejsu API 30) lub niższego.

  1. Utwórz plik appcenter_backup_rule.xml w folderze Resources/xml .
  1. Otwórz plik AndroidManifest.xml projektu. android:fullBackupContent Dodaj atrybut do <application> elementu . Powinien on wskazywać plik zasobówappcenter_backup_rule.xml .
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 interfejsu API 31) lub nowszego.

  1. Utwórz plik appcenter_backup_rule.xml w folderze Resources/xml .
  1. Otwórz plik AndroidManifest.xml projektu. android:dataExtractionRules Dodaj atrybut do <application> elementu . Powinien on wskazywać plik zasobówappcenter_backup_rule.xml .
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>