Udostępnij za pośrednictwem


Rozwiązywanie problemów z interfejsem MAUI i zestawem Xamarin 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.

Zbieranie pełnych dzienników

Aby uzyskać instrukcje dotyczące dostosowywania poziomu dziennika do VERBOSEelementu , zapoznaj się z sekcją Inne interfejsy API .
Pełne dzienniki można znaleźć w oknie Debugowanie>danych wyjściowych systemuWindows>.

Problemy podczas instalacji

  1. W przypadku aplikacji Xamarin.Forms upewnij się, że pakiety są zainstalowane we wszystkich projektach odwołujących się do dowolnych bibliotek. W przeciwnym razie zobaczysz błędy.
  2. Jeśli ten błąd występuje podczas kompilowania dla platformy Xamarin.iOS: MTOUCH: Error MT3001: Could not AOT the assembly 'obj/**/Build/Microsoft.AppCenter.**.iOS.Bindings.dll' (MT3001) musisz zaktualizować składnik Xamarin.iOS do wersji 10.4.0.128 lub nowszej .
  3. Jeśli ten błąd jest wyświetlany podczas kompilowania dla platformy Xamarin.iOS: MTOUCH: Error MT5210: Native linking failed, undefined symbol: _OBJC_METACLASS_$_MS{SomeSdkClassName}. Please verify that all the necessary frameworks have been referenced and native libraries are properly linked in. (MT5210) lub podobny błąd (MT5211 kod z podobnym komunikatem z wzmianką o usłudze App Center), upewnij się, że wywołasz wywołanie AppCenter.Start przed użyciem interfejsów API określonej usługi. Jeśli wywołujesz wywołanie Start , ale masz ten problem, musisz zaktualizować składnik Xamarin.iOS do wersji 10.4.0.128 lub nowszej.
  4. W konsoli wyszukaj dziennik potwierdzenia z komunikatem "Zestaw SDK centrum aplikacji został pomyślnie skonfigurowany". Spowoduje to sprawdzenie, czy zestaw SDK został pomyślnie skonfigurowany.

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.LogLevel = LogLevel.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. Awarie usługi App Center będą przekazywać dziennik awarii dopiero po ponownym uruchomieniu. Ponadto w systemach Xamarin.iOS i Xamarin.Mac zestaw SDK nie zapisze żadnego dziennika awarii, jeśli dołączono debuger. Upewnij się, że debuger nie jest dołączony podczas awarii aplikacji systemu iOS. Na platformie Xamarin.Android można ulegać awarii podczas dołączania debugera, ale należy kontynuować wykonywanie po włamaniu się do nieobsługiwanego wyjątku.

  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.LogLevel = LogLevel.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. Nie używaj żadnej innej biblioteki, która udostępnia funkcje raportowania awarii, takie jak Xamarin Insights lub HockeyApp. Można zintegrować tylko jeden zestaw SDK raportowania awarii.

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

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

  8. 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.

  9. 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 spowodują zablokowanie zautomatyzowanych testów interfejsu użytkownika podczas próby uwierzytelnienia w zapleczu Centrum aplikacji. Zalecamy, aby nie włączyć usługi App Center Distribute dla testów interfejsu użytkownika.

Sklep Google Play odrzuca aplikację po dodaniu funkcji DistributePlay

Sklep Google Play odrzuca aplikacje korzystające z modułu Distribute , ponieważ zawiera implementację aktualizacji w aplikacji. Aby uniknąć takiej sytuacji, zestaw SDK centrum aplikacji zawiera DistributePlay moduł zawierający wycinki modułu głównego. Zastępuje on główny zestaw zestawem stubbed, który imituje Distribute interfejs API. W aplikacji klienckiej nie są wymagane żadne dodatkowe zmiany. Element DistributePlay nie ma żadnego kodu powiązanego z aktualizacją w aplikacji. Jeśli po zastąpieniu Distribute modułu aplikacją DistributePlay nadal zostanie odrzucona, wykonaj poniższe kroki, aby sprawdzić, Distribute czy moduł został poprawnie zastąpiony:

  • Upewnij się, że zastąpiono element Distribute we DistributePlay wszystkich wersjach dla wszystkich grup publikowania w konsoli Google Play.
  • Jeśli używasz polecenia Xamarin.Forms , upewnij się, że moduł został dodany DistributePlay zarówno do projektów udostępnionych, jak i Xamarin.Android projektów.
  • Sprawdź, czy plik wyjściowy nie zawiera Microsoft.AppCenter.Distribute.Android.Bindings.dll zestawu. Aby go sprawdzić, możesz użyć analizatora APK .

Komunikaty w konsoli, które wskazują, że nie można otworzyć bazy danych w systemie iOS

Usługa App Center używa narzędzia SQLite do utrwalania dzienników przed wysłaniem ich do zaplecza. Jeśli zamiast korzystać z biblioteki SQLite, zamiast korzystać z biblioteki udostępnionej przez system operacyjny, w konsoli mogą pojawić się błędy podobne do tych w konsoli [AppCenter] ERROR: -[MSACDBStorage executeSelectionQuery:]/147 Failed to open database programu i nie będą widoczne żadne informacje analityczne ani informacje o awarii w zapleczu. Zaktualizuj zestaw SDK do wersji 0.16.0 lub nowszej.

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.