Andere Unity-APIs
Wichtig
Visual Studio App Center wird am 31. März 2025 eingestellt. Sie können Visual Studio App Center zwar weiterhin verwenden, bis es vollständig eingestellt ist, es gibt jedoch mehrere empfohlene Alternativen, zu denen Sie möglicherweise eine Migration in Erwägung ziehen.
Anpassen der Protokollebene
Sie können die Anzahl der Protokollmeldungen steuern, die aus App Center in der Konsole angezeigt werden. Verwenden Sie die LogLevel
-API, um beim Debuggen zusätzliche Protokollierung zu aktivieren. Standardmäßig ist er für ASSERT
die App Store-Umgebungen und WARN
andernfalls auf festgelegt.
Um so viele Protokollnachrichten wie möglich zu erhalten, aktivieren Sie LogLevel.Verbose
in den App Center-Einstellungen oder in Ihrem Code.
AppCenter.LogLevel = LogLevel.Verbose;
Identifizieren von Installationen
Das App Center SDK erstellt nach der Installation der App eine UUID für jedes Gerät. Dieser Bezeichner bleibt für ein Gerät identisch, wenn die App aktualisiert wird. Ein neuer Bezeichner wird nur generiert, wenn die App neu installiert wird. Die folgende API ist für Debuggingzwecke nützlich.
System.Guid? installId = await AppCenter.GetInstallIdAsync();
Identifizieren von Benutzern
Das App Center SDK unterstützt das Festlegen einer Benutzer-ID , die zum Erweitern von Absturzberichten verwendet wird. So verwenden Sie diese Funktion:
- Konfigurieren Sie das App Center SDK wie im Leitfaden Erste Schritte für das App Center SDK beschrieben.
- Legen Sie einen
userID
im SDK mit dem folgenden Code fest:
AppCenter.SetUserId("your-user-id");
Nachdem Sie eine Benutzer-ID festgelegt haben, können Sie die Suchfunktion von App Center verwenden, um nach bestimmten Absturzberichten für die ID zu suchen. Weitere Informationen finden Sie in der App Center-Suchdokumentation.
Hinweis
Der Wert für die Benutzer-ID ist auf 256 Zeichen beschränkt. Es wird mit Ihren Absturzberichten angezeigt, aber nicht für die Aggregation oder Anzahl der betroffenen Benutzer verwendet. Wenn Sie die Benutzer-ID mehrmals festlegen, wird nur die letzte Benutzer-ID verwendet. Sie müssen die Benutzer-ID vor jedem Anwendungsstart selbst festlegen, da dieser Wert zwischen den Starts nicht vom SDK gespeichert wird.
Deaktivieren aller Dienste zur Laufzeit
Wenn Sie alle App Center-Dienste gleichzeitig deaktivieren möchten, verwenden Sie die Enabled
-Eigenschaft. Wenn sie deaktiviert ist, leitet das SDK keine Informationen an App Center weiter.
AppCenter.SetEnabledAsync(false);
Um alle Dienste gleichzeitig zu aktivieren, verwenden Sie dieselbe API, übergeben true
sie aber als Parameter.
AppCenter.SetEnabledAsync(true);
Sie müssen diesen Aufruf nicht abwarten, um andere API-Aufrufe (z IsEnabledAsync
. B. ) konsistent auszuführen.
Der Zustand wird im Speicher des Geräts bei allen Anwendungsstarts beibehalten.
Ändern des Dienststatus in der Laufzeit
Sie können den Dienst zur Laufzeit mit folgendem Code aktivieren oder deaktivieren:
Analytics.SetEnabledAsync(true);
Netzwerkanforderungen nicht zulassen
Im App Center SDK sind Netzwerkanforderungen standardmäßig zulässig. Wenn Sie Daten senden möchten, die das App Center SDK vom Benutzer erfasst, können Sie das automatische Senden von Daten nicht zulassen.
AppCenter.IsNetworkRequestsAllowed = false;
In diesem Fall sammelt das App Center SDK weiterhin Daten, sie werden jedoch nur gesendet, wenn die Netzwerkanforderungen zulässig sind.
AppCenter.IsNetworkRequestsAllowed = true;
Hinweis
Dieser Wert wird zwischen den Starts beibehalten.
Sie können jederzeit überprüfen, ob das Senden von Daten im App Center SDK zulässig ist.
AppCenter.IsNetworkRequestsAllowed;
Hinweis
Der zuvor SharedPreferences
in gespeicherte Wert wird ignoriert, bis AppCenter
er auf der Android-Plattform gestartet wird.
Er gibt den letzten Wert zurück, der mit AppCenter.IsNetworkRequestsAllowed = allowed
oder festgelegt wurde, true
wenn der Wert vor dem Start von AppCenter nicht geändert wurde.
Überprüfen, ob App Center aktiviert ist
Sie können auch überprüfen, ob App Center aktiviert ist oder nicht.
bool enabled = await AppCenter.IsEnabledAsync();
Überprüfen der App Center SDK-Version zur Laufzeit
Sie können die Version des App Center SDK abrufen, die Sie derzeit verwenden.
AppCenter.SdkVersion;
Verzögern des Startes von App Center
Es kann Fälle geben, in denen Sie den Start von App Center verzögern möchten, bis appCenterBehavior gestartet wurde. Wenn Sie beispielsweise die Zustimmung des Benutzers anfordern möchten, bevor Sie App Center-Dienste starten.
Fügen Sie hierzu dem Spielobjekt AppCenterBehaviorAdvanced hinzu, und aktivieren Sie die Kontrollkästchen Natives SDK von iOS/Android-App starten . Dadurch wird das SDK mit der Start
AppCenterBehavior-Methode gestartet und Sie können ein benutzerdefiniertes Dialogfeld oder eine andere Logik hinzufügen.
Tipp
Wenn Sie die Einstellungen zur Buildzeit generieren, können Sie zu Playereinstellungen>Andere Einstellungen>Skripterstellung Symbole definieren und einfügen APPCENTER_DONT_USE_NATIVE_STARTER
.
Asynchrone APIs im Unity SDK
Asynchrone APIs geben ein AppCenterTask
Objekt zurück, anstatt das Ergebnis direkt zurückzugeben, und geben sofort zurück, anstatt auf den Abschluss der Aktion zu warten.
Es gibt drei Möglichkeiten, mit diesen Methoden zu interagieren.
Methode 1: ContinueWith
Um nach Abschluss der AppCenterTask
Aktivität eine Aktion auszuführen, fügen Sie mithilfe der ContinueWith
-Methode einen Rückruf hinzu.
Beispiel:
AppCenter.IsEnabledAsync().ContinueWith(task =>
{
// Do something with task.Result
});
In Situationen, in denen die Methode über einen tatsächlichen Rückgabewert verfügt, wird sie zurückgegeben AppCenterTask<{Return Type}>
(wie im obigen Beispiel). In diesen Situationen verfügt der Taskparameter im Rückruf über eine Result
Eigenschaft, auf die Sie zugreifen können.
Methode 2: Integrierte Sprachfeatures
Wenn Sie Code schreiben, der Zugriff auf .NET 4.6 oder höher hat, kann await
dies AppCenterTask
in einem asynchronen Kontext erfolgen.
Beispiel:
bool isEnabled = await AppCenter.IsEnabledAsync();
Methode 3: Coroutines
AppCenterTask
s sind auch für den Einsatz in Koroutinen geeignet.
Beispiel:
void SomeMethod()
{
StartCoroutine(IsEnabledCoroutine());
}
IEnumerator IsEnabledCoroutine()
{
var isEnabled = AppCenter.IsEnabledAsync();
yield return isEnabled;
// do something with the isEnabled
}