Другие API Unity
Важно!
Прекращение поддержки Центра приложений Visual Studio запланировано на 31 марта 2025 г. Хотя вы можете продолжать использовать Центр приложений Visual Studio, пока он не будет полностью выведен из эксплуатации, существует несколько рекомендуемых вариантов, на которые вы можете рассмотреть возможность миграции.
Узнайте больше о сроках поддержки и альтернативных вариантах.
Настройка уровня журнала
Вы можете управлять количеством сообщений журнала, отображаемых в Центре приложений в консоли. LogLevel
Используйте -API, чтобы включить дополнительное ведение журнала во время отладки. По умолчанию для App Store сред задано значение ASSERT
и WARN
в противном случае.
Чтобы получить как можно больше сообщений журнала, включите LogLevel.Verbose
его в параметрах Центра приложений или в коде.
AppCenter.LogLevel = LogLevel.Verbose;
Определение установок
Пакет SDK центра приложений создает UUID для каждого устройства после установки приложения. Этот идентификатор остается неизменным для устройства при обновлении приложения. Новый идентификатор создается только при переустановке приложения. Следующий API полезен для отладки.
System.Guid? installId = await AppCenter.GetInstallIdAsync();
Идентификация пользователей
Пакет SDK центра приложений поддерживает настройку идентификатора пользователя , который используется для дополнения отчетов о сбоях. Чтобы использовать эту возможность, выполните следующие действия.
- Настройте пакет SDK центра приложений, как описано в руководстве по началу работы с пакетом SDK центра приложений.
userID
Задайте в пакете SDK с помощью следующего кода:
AppCenter.SetUserId("your-user-id");
Задав идентификатор пользователя, вы можете использовать функцию поиска в Центре приложений для поиска конкретных отчетов о сбоях для идентификатора. Дополнительные сведения см. в документации по поиску в Центре приложений.
Примечание
Значение идентификатора пользователя ограничено 256 символами. Он будет отображаться вместе с отчетами о сбоях, но не будет использоваться для агрегирования или количества затронутых пользователей. Если вы задали идентификатор пользователя несколько раз, будет использоваться только последний идентификатор пользователя. Необходимо самостоятельно задавать идентификатор пользователя перед каждым запуском приложения, так как это значение не хранится в пакете SDK между запусками.
Отключение всех служб во время выполнения
Если вы хотите отключить все службы Центра приложений Enabled
одновременно, используйте свойство . Если он отключен, пакет SDK не будет пересылать какие-либо сведения в Центр приложений.
AppCenter.SetEnabledAsync(false);
Чтобы снова включить все службы, используйте тот же API, но передайте true
в качестве параметра.
AppCenter.SetEnabledAsync(true);
Вам не нужно ожидать этого вызова, чтобы обеспечить согласованность других вызовов API (например, IsEnabledAsync
).
Состояние сохраняется в хранилище устройства при запуске приложений.
Изменение состояния службы в среде выполнения
Вы можете включить или отключить службу в среде выполнения с помощью следующего кода:
Analytics.SetEnabledAsync(true);
Запретить сетевые запросы
В пакете SDK центра приложений сетевые запросы разрешены по умолчанию. Если вы хотите отправлять данные, собираемые пакетом SDK центра приложений пользователем, вы можете запретить автоматическую отправку данных.
AppCenter.IsNetworkRequestsAllowed = false;
В этом случае пакет SDK центра приложений продолжает собирать данные, но они будут отправляться только в том случае, если будут разрешены сетевые запросы.
AppCenter.IsNetworkRequestsAllowed = true;
Примечание
Это значение сохраняется между запусками.
В любое время можно проверка, разрешена ли отправка данных в пакете SDK центра приложений.
AppCenter.IsNetworkRequestsAllowed;
Примечание
Значение, сохраненное ранее в , SharedPreferences
игнорируется, пока не AppCenter
будет запущено на платформе Android.
Он вернет последнее заданное значение с помощью AppCenter.IsNetworkRequestsAllowed = allowed
или true
, если значение не было изменено до запуска AppCenter.
Проверьте, включен ли Центр приложений
Вы также можете проверка, включен ли Центр приложений.
bool enabled = await AppCenter.IsEnabledAsync();
Проверка версии пакета SDK центра приложений во время выполнения
Вы можете получить версию пакета SDK центра приложений, который вы используете в настоящее время.
AppCenter.SdkVersion;
Задержка запуска Центра приложений
В таких случаях может потребоваться отложить запуск Центра приложений до запуска AppCenterBehavior . Например, если вы хотите запросить согласие пользователя перед запуском каких-либо служб Центра приложений.
Для этого добавьте AppCenterBehaviorAdvanced в игровой объект и проверка флажки Запустить собственный пакет SDK из приложения iOS/Android. Пакет SDK запускается в методе Start
AppCenterBehavior и позволяет добавить пользовательское диалоговое окно или другую логику.
Совет
Если вы создаете параметры во время сборки, еще один способ — перейти в раздел Параметры> проигрывателяДругие параметры Скрипты>Определить символы и вставить APPCENTER_DONT_USE_NATIVE_STARTER
.
Асинхронные API в пакете SDK для Unity
Асинхронные API возвращают AppCenterTask
объект , а не возвращают результат напрямую, и возвращаются немедленно, а не дожидаются завершения действия.
Существует три способа взаимодействия с этими методами.
Метод 1. ContinueWith
Чтобы выполнить действие после AppCenterTask
завершения действия, добавьте обратный вызов с помощью ContinueWith
метода .
Пример
AppCenter.IsEnabledAsync().ContinueWith(task =>
{
// Do something with task.Result
});
В ситуациях, когда метод имеет фактическое возвращаемое значение, он будет возвращать AppCenterTask<{Return Type}>
(как показано в примере выше). В таких ситуациях параметр задачи в обратном вызове будет иметь Result
свойство, к которому можно получить доступ.
Метод 2. Встроенные функции языка
Если вы пишете код с доступом к .NET 4.6 или более поздней версии, его AppCenterTask
можно await
использовать в асинхронном контексте.
Пример
bool isEnabled = await AppCenter.IsEnabledAsync();
Метод 3. Сопрограммы
AppCenterTask
s также подходят для использования в сопрограммах.
Пример
void SomeMethod()
{
StartCoroutine(IsEnabledCoroutine());
}
IEnumerator IsEnabledCoroutine()
{
var isEnabled = AppCenter.IsEnabledAsync();
yield return isEnabled;
// do something with the isEnabled
}