2014-09-12 13 views
8

Przesłałem i opublikowałem aplikację w sklepie Google Play. Nie otrzymałem żadnych błędów po przesłaniu pliku binarnego. Teraz jestem otrzymaniu raportów z niektóre (nie wszystkie) klienci stwierdzające, że są one coraz następujący błąd podczas instalowania naszej aplikacji:Niektórzy (ale nie wszyscy) użytkownicy otrzymują "Plik pakietu nie był poprawnie podpisany" podczas pobierania mojej aplikacji z Google Play.

„Plik pakietu nie został prawidłowo podpisany”

kiedy spróbuj samodzielnie zreplikować ten błąd (używając resetowania Nexusa 7 do ustawień fabrycznych), ale wszystko idzie gładko.

To wydaje się być podobny do problemu opisanego w this pytanie, ale accepted answer nie wydaje się w tym przypadku zastosowania.

mam widziane propozycje wykorzystania JDK 6 zamiast JDK 7, ale odpowiedzi jak this one prowadzić mi uwierzyć, że jest to rozwiązanie w sytuacjach, w których kluczy został utworzony w starszej wersji Java. Ponadto obawiam się, że rezygnacja z nowej wersji ze starszą wersją języka Java wpłynie na naszych klientów, którzy nie mieli problemów z początkową instalacją.

  1. Czy ma sens, że wersja JDK używany do podpisywania aplikacji negatywnie wpływa tylko kilka klientów? Jeśli tak, jakie czynniki mogą decydować, na których urządzeniach występuje problem?
  2. Byłoby zmieniając jak podpiszę binarny (ale nie certyfikat) ma żadnego negatywnego wpływu na naszą zdolność do zaktualizowania aplikacji dla użytkowników, którzy nie są obecnie mających ten problem
  3. Jeżeli wersja Java użyłem do podpisania APK nie jest problemem, co jeszcze może spowodować taki błąd?

Edit: Każdy użytkownik jest z tym problemem (lub bez niej), są z systemem Android 4.0 lub nowszy. Aplikacja nie obsługuje wcześniejszych wersji Androida.

Odpowiedz

6

Po trochę czytanie wokół Idę wziąć ukłucie, trzeba określić algorytm wyraźnie za jarsigner JDK7 ..

Dodaj do tego pliku build.xml Twojego projektu:

<presetdef name="signjar"> 
    <signjar sigalg="MD5withRSA" digestalg="SHA1" /> 
</presetdef> 

Po nieco dłuższym odczytaniu wygląda na to, że dotyczy on domyślnego algorytmu używanego w urządzeniu do syntezy, wygląda na to, że różni się w zależności od urządzenia wspólnym algorytmem dostępnym na wszystkich urządzeniach wymienionych w powyższym xml. To dlatego, że nie działa na niektórych urządzeniach, inni użytkownicy doświadczyli samo np “Package not signed correctly” appearing for some users

Ten wpis blog zawiera również kilka ciekawych informacji na temat apk podpisania: Android code signing

teraz jestem całkiem pewny, że jawnie ustawienie androida określony algorytm do podpisywania nie wpłynie na klientów, którzy już zainstalowali i oczekuję, że rozwiąże on problem dla innych klientów.

+0

Dzięki, doceniam to.Pracuję z wieloma urządzeniami w mojej codziennej pracy. Mogę sam przeprowadzić trochę testów wokół tego obszaru. Jeśli znajdę coś przydatnego, dam ci znać. –

+0

Czy masz jakieś informacje dotyczące tego problemu? Mam dokładnie taki sam problem, jak Izam opisuje powyżej i byłoby interesujące, gdyby to rozwiązanie pomogło. –

+0

To jedna z najgorszych wad fragmentacji Androida, jaką kiedykolwiek widziałem. –

Powiązane problemy