Rozwiązywanie problemów z zestawem Android SDK

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.

Jakie uprawnienia systemu Android są wymagane?

W zależności od używanych usług wymagane są następujące uprawnienia:

  • Wszystkie usługi: INTERNET, ACCESS_NETWORK_STATE
  • Dystrybuuj: REQUEST_INSTALL_PACKAGES, DOWNLOAD_WITHOUT_NOTIFICATION

Wymagane uprawnienia są automatycznie scalane z manifestem aplikacji przez zestaw SDK.

Żadne z tych uprawnień nie wymaga zatwierdzenia przez użytkownika w czasie wykonywania. Wszystkie są uprawnieniami czasu instalacji.

Dane analityczne nie są wyświetlane w portalu

  1. Upewnij się, że moduły zestawu SDK zostały poprawnie zintegrowane.

  2. Upewnij się, że dołączono prawidłowy wpis tajny aplikacji wraz z wywołaniem start() metody. Możesz skopiować dokładny start() kod, otwierając aplikację w portalu i przechodząc do strony Wprowadzenie.

  3. Jeśli chcesz wyświetlić dzienniki wysyłane do zaplecza, zmień poziom dziennika na Pełne w aplikacji, a zestaw SDK wyświetli dzienniki w konsoli. Przed uruchomieniem zestawu SDK wywołaj poniższy interfejs API.

    AppCenter.setLogLevel(Log.VERBOSE);
    
    AppCenter.setLogLevel(Log.VERBOSE)
    

    Sprawdź w dziennikach komunikat "Zestaw SDK centrum aplikacji został pomyślnie skonfigurowany" (na poziomie dziennika informacji), a następnie sprawdź, czy są wyświetlane dzienniki żądań HTTPS.

  4. Upewnij się, że urządzenie jest w trybie online.

  5. Czasami rejestrowanie dzienników może potrwać kilka minut w portalu. Poczekaj chwilę, jeśli tak jest.

  6. Aby sprawdzić, czy zaplecze usługi App Center odebrało dane, przejdź do sekcji Przepływ dzienników w usłudze Analytics. Zdarzenia powinny pojawić się po wysłaniu.

Awarie nie są wyświetlane w portalu

  1. Upewnij się, że moduły zestawu SDK zostały poprawnie zintegrowane.

  2. Upewnij się, że dołączono prawidłowy wpis tajny aplikacji wraz z wywołaniem start() metody. Możesz skopiować dokładny start() kod, otwierając aplikację w portalu i przechodząc do strony Wprowadzenie.

  3. Uruchom ponownie aplikację po awarii. Nasz zestaw SDK przekaże dziennik awarii dopiero po ponownym uruchomieniu.

  4. Jeśli chcesz wyświetlić dzienniki wysyłane do zaplecza, zmień poziom dziennika na Pełne w aplikacji, a zestaw SDK wyświetli dzienniki w konsoli. Przed uruchomieniem zestawu SDK wywołaj poniższy interfejs API.

    AppCenter.setLogLevel(Log.VERBOSE);
    
    AppCenter.setLogLevel(Log.VERBOSE)
    

    Sprawdź w dziennikach komunikat "Zestaw SDK centrum aplikacji został pomyślnie skonfigurowany" (na poziomie dziennika informacji), a następnie sprawdź, czy są wyświetlane dzienniki żądań HTTPS.

  5. Upewnij się, że urządzenie jest w trybie online.

  6. Czasami rejestrowanie dzienników może potrwać kilka minut w portalu. Poczekaj chwilę, jeśli tak jest.

  7. Jeśli chcesz sprawdzić, czy zestaw SDK wykrył awarię podczas następnego uruchomienia aplikacji, możesz wywołać interfejs API, aby sprawdzić, czy aplikacja uległa awarii w ostatniej sesji i wyświetlić alert. Możesz też rozszerzyć wywołanie zwrotne awaryjne, aby sprawdzić, czy został pomyślnie wysłany do serwera.

  8. Aby sprawdzić, czy zaplecze usługi App Center odebrało awarię, przejdź do sekcji Przepływ dzienników w usłudze Analytics. Awarie powinny się tam pojawić po wysłaniu.

Aktualizacje rozproszone i w aplikacji blokują moje zautomatyzowane testy interfejsu użytkownika

Jeśli uruchamiasz zautomatyzowane testy interfejsu użytkownika, włączone aktualizacje w aplikacji będą blokować zautomatyzowane testy interfejsu użytkownika, ponieważ będą próbować uwierzytelniać się w zapleczu centrum aplikacji. Zalecamy, aby nie włączyć usługi App Center Distribute dla testów interfejsu użytkownika.

Jaki jest wpływ zestawu SDK centrum aplikacji na rozmiar mojej aplikacji dla systemu Android?

Zestaw SDK centrum aplikacji został zaprojektowany z myślą o minimalnym wpływie na rozmiar instalacji aplikacji.

Aby to zilustrować, utworzyliśmy pustą aplikację Java przy użyciu szablonu "pusta aplikacja" programu Android Studio. Skompilujemy aplikację w konfiguracji wydania i zainstalujemy ją na urządzeniu z systemem Android 7.0.

Testy zostały uruchomione bez włączonej funkcji Proguard.

Poniższe liczby mogą się różnić i zależeć od ustawień kompilacji, dlatego należy wziąć pod uwagę ich przybliżony przewodnik. Wpływ zestawu SDK na aplikację będzie jeszcze mniejszy, jeśli używasz narzędzia Proguard.

Używane moduły usługi App Center Wyeksportowany rozmiar pliku APK Rozmiar instalacji (zgłoszony przez urządzenie)
Brak (pusta aplikacja) 1,3 MB 3,43 MB
Analiza w usłudze App Center 1,4 MB 3,63 MB
Awaria usługi App Center 1,4 MB 3,70 MB
Dystrybucja w usłudze App Center 1,4 MB 3,71 MB
Wszystkie moduły usługi App Center 1,4 MB 3,82 MB

Ochrona wartości wpisu tajnego centrum aplikacji

Jest app_secret to identyfikator aplikacji, który musi wiedzieć, której aplikacji dotyczy ruch, i nie można jej użyć do pobrania ani edytowania istniejących danych. Jeśli dane app_secret są narażone, największym ryzykiem jest wysłanie nieprawidłowych danych do aplikacji, ale nie będzie miało to wpływu na bezpieczeństwo danych.

Aby pobrać wszelkie poufne dane, należy podać token aplikacji/użytkownika, który jest generowany po stronie klienta. Nie ma możliwości całkowitego zabezpieczenia danych po stronie klienta.

Bezpieczeństwo aplikacji można poprawić przy użyciu zmiennej środowiskowej w celu wstrzyknięcia wpisu tajnego aplikacji do kodu. Dzięki temu wpis tajny nie jest widoczny w kodzie.

Migracja z programu jCenter do usługi Maven Central

Ze względu na zakończenie obsługi programu jCenter wszystkie nasze zestawy zostały przeniesione do repozytorium Maven Central. Aby użyć usługi App Center, musisz dodać mavenCentral() element do repozytorium w pliku narzędzia Gradle w następujący sposób:

repositories {
   google()
   mavenCentral()
}