Aplikacja na iOS „Nie można zweryfikować aplikacji” tylko na jednym urządzeniu

235

Mam dwa urządzenia iPhone (4 i 5) podłączone do mojego komputera i próbuję zainstalować aplikację na obu urządzeniach. Instaluje się całkiem dobrze w iPhonie 5, ale daje błąd „” The application could not be verified. podczas próby instalacji w urządzeniu iPhone 4s.

Identyfikatory UDID obu urządzeń zostały dodane do profilu udostępniania wygenerowanego dla aplikacji.

Ponadto, aby dodać notatkę, właśnie zaktualizowałem moją wersję iPhone'a do 8.1.3 na moim urządzeniu 4s. Nie jestem jednak pewien, czy błąd ma coś z tym wspólnego.

Każda pomoc w tym zakresie byłaby bardzo mile widziana. Utknąłem na tym od jakiegoś czasu.

EDYTOWAĆ:

Właśnie podłączyłem to do innego urządzenia iPhone i wydaje się, że problem występuje ponownie. Zasadniczo oznacza to, że aplikacja z jakiegoś powodu instaluje się tylko w telefonie, z którego korzystam od jakiegoś czasu, a nie w żadnym innym telefonie. Po raz kolejny jestem całkiem pewien, że profil informacyjny zawiera UDID wszystkich tych 3 urządzeń.

Sunil
źródło

Odpowiedzi:

479

Niedawno zdarzyło mi się coś podobnego. Zaktualizowałem iPhone'a do wersji 8.1.3 i zacząłem otrzymywać komunikat o błędzie „aplikacja nie mogła zostać zweryfikowana” od Xcode w aplikacji, która kilka dni temu zainstalowała się dobrze na tym samym urządzeniu iOS z tego samego komputera Mac.

Usunąłem aplikację z urządzenia, ponownie uruchomiłem Xcode, a następnie aplikacja została zainstalowana na urządzeniu w porządku, bez żadnego komunikatu o błędzie. Nie jestem pewien, czy usunięcie aplikacji było naprawą, czy przyczyną problemu była „faza księżyca”.

hotpaw2
źródło
Nie mam aplikacji w telefonie do odinstalowania i wypróbowania :) To moja pierwsza próba instalacji na tym urządzeniu.
Sunil
Dziękuję Ci! Walę głową, próbując dowiedzieć się, dlaczego to nie działa na symulatorze. Chciałbym, aby Apple zezwolił na pełny rozwój przy użyciu symulatora dla wszystkich operacji.
Christopher Wade Cantley
Istnieje również raport, że usunięcie i ponowne zainstalowanie jednej aplikacji testowej dla programistów pozwoliło innym aplikacjom testowym (nie usuniętym) na ponowną instalację z Xcode bez komunikatu o błędzie.
hotpaw2
Jedno losowe przypuszczenie polega na tym, że każda stara instalacja aplikacji pozostawia coś (nieudokumentowane przez Apple), za czym nowsza suma kontrolna 8.1+ lub metoda podpisywania kodu nie podoba, dlatego uważa, że ​​nowa instalacja jest uszkodzona. Usunięcie starych aplikacji pozbywa się wszystkiego, co pozostało.
hotpaw2
2
Aplikacja nie została zainstalowana. Jak możesz to usunąć? Jak można to uznać za prawidłową odpowiedź?
BTRUE
116

Jak zauważam Aplikacja nie mogła zostać zweryfikowana. podnieść, ponieważ na twoim urządzeniu jest już zainstalowana aplikacja z tym samym identyfikatorem pakietu.

Mam ten problem, ponieważ na moim urządzeniu jest moja aplikacja do pobrania ze sklepu App Store. i testuję jego wersję aktualizacji od Xcode. Użyłem tego samego identyfikatora, który jest aplikacją na żywo i moją aplikacją do testowania aplikacji. Więc po prostu usuwam aplikację App-Store Live z mojego urządzenia i ten błąd zostanie naprawiony.

Nitin Gohel
źródło
2
Dziękuję Ci! W moim przypadku pobrałem aplikację ze sklepu Apple, ale później chciałem ją zbudować ze źródła i profilu na urządzeniu.
Valentin Simonov,
1
To działało dla mnie .. musiałem usunąć aplikację, która była już zainstalowana.
sach
9
Tak, to zadziałało również dla mnie. Poważnie, to mnie denerwuje. Każdego roku Apple z dumą ogłasza, jak wspaniały jest jego najnowszy pakiet Xcode, ale nadal generuje najbardziej niepotrzebne wiadomości z dowolnego środowiska programistycznego. „Nie można zweryfikować wniosku.” Jak do cholery jest to zdanie powiązane z „Masz już zainstalowaną wersję aplikacji z App Store na swoim urządzeniu”. Beznadziejny. Grrrr ...
Mike Gledhill,
tak, mój został naprawiony przez usunięcie poprzedniej wersji z telefonu. Wiadomości xcode to bzdury.
Randy L
2
Usunięcie go nie pomaga przetestować ścieżki aplikacji „upgrade”
bandejapaisa
55

po prostu usuń aplikację i spróbuj ponownie, zdarza mi się, gdy próbuję uruchomić na urządzeniu, które ma tę samą aplikację, ale wygenerowane przez plik IPA.

Jorge Balleza
źródło
tak, właśnie usunąłem aplikację i działa również dla mnie dobrze, dziękuję.
raduken
3
Ale co, jeśli użytkownik chce zaktualizować aplikację?
Ahmed
25

Prawdopodobnie używałeś opcji „Napraw problem” w Xcode podczas podłączania nowego urządzenia. Stare pytanie, ale wierzę, że to jest faktyczna odpowiedź DLACZEGO to się dzieje. Po zainstalowaniu aplikacji na urządzeniu jest ona podpisywana za pomocą specjalnego profilu udostępniania. Jeśli na przykład podłączysz inne urządzenie, które nie jest zarejestrowane na koncie programisty, Xcode poprosi o „naprawienie problemu”. Po naciśnięciu przycisku dodawane jest urządzenie i tworzony / modyfikowany jest inny profil obsługi. Jeśli spróbujesz zastąpić istniejącą aplikację, pojawi się ten błąd. Usunięcie aplikacji i jej ponowna instalacja działa, ponieważ profil został zmieniony. Często zdarza mi się, gdy zespół jest ustawiony, a członek podłącza nowe urządzenie, a następnie Xcode „naprawia” problem.

Mark McCorkle
źródło
1
nie zawsze jest związany z nowymi urządzeniami, może się również zdarzyć, jeśli zmienisz „Zespół” w sekcji Ogólne> Tożsamość Xcode. Mimo że pojawił się komunikat „Napraw problem”, wcześniej korzystałem z tego telefonu z moim kontem deweloperów, więc w moim przypadku musiało to wynikać ze zmiany konta dewelopera.
dlaczegooz
Może się to zdarzyć, jeśli włączono uprawnienie „Udostępnianie pęku kluczy”.
Kof,
Zdarzyło mi się to po włączeniu usługi iCloud in Capabilities. Powiązany „problem z naprawą” stworzył nowe uprawnienie, które może być dokładną przyczyną. Pomogło mi usunięcie i ponowna instalacja aplikacji.
Greg
9

Mogłem to rozgryźć ... Usunięcie aplikacji z urządzenia działało dla mnie, jak inni wspominali wcześniej (dzięki!).

Myślę, że powodem jest to, że aplikacja na urządzeniu została podpisana osobnym profilem obsługi administracyjnej, w szczególności profilem dystrybucji w moim przypadku.

Morieris
źródło
7

Dla innych, którzy nie używają RubyMotion i nie sądzą, że usunięcie aplikacji jest dopuszczalne (na przykład, chcesz wykonać testy aktualizacji). Sprawdź dół tych dokumentów od Apple:

https://developer.apple.com/library/ios/technotes/tn2319/_index.html

Wygląda na to, że zmienili coś w 8.1.3, aby sprawdzić tę nową regułę.

Poprawka

„[Dodaj] wartość identyfikatora aplikacji zainstalowanej aplikacji, zarejestrowaną w drugim nawiasie, do wartości tablicy uprawnień poprzedniego identyfikatora aplikacji dla instalowanej aplikacji (rezygnując z niej lub odbudowując ją) i żądając nowych specjalnych profili udostępniania jak pokazano niżej."

<key>previous-application-identifiers</key>
<array>
    <string>{Your Old App ID Prefix}.YourApp.Bundle.ID</string>
</array>

EDYTOWAĆ:

Aby to zrobić, potrzebujesz specjalnych profili udostępniania. Możesz zażądać od Apple: „Aby umożliwić podpisywanie przy użyciu identyfikatorów poprzedniej aplikacji, wymagane są nowe specjalne profile udostępniania, które można uzyskać, przechodząc na stronę Skontaktuj się z nami i prosząc o nie”. (z dokumentów powiązanych powyżej).

plivesey
źródło
Należy zaakceptować odpowiedź, ponieważ usunięcie aplikacji nie jest tak naprawdę rozwiązaniem, ale obejściem problemu.
Łukasz
czy możesz krótko wyjaśnić, gdzie potrzebujemy zmiany? Mam ten sam problem.
Maulik,
Nie jestem ekspertem w tej dziedzinie, ale myślę, że to tylko nowa funkcja bezpieczeństwa, którą Apple dodał do systemu operacyjnego. To ma sens, że nie powinieneś być w stanie przesłonić aplikacji z innym identyfikatorem pakietu, ale zdali sobie sprawę, że będzie to potrzebne do testowania, więc załączyłem to obejście. Niestety, ponieważ wiąże się to z kontaktem z jabłkiem, nie sądzę, aby obejście było wystarczająco dobre dla jabłka ...
plivesey
Z naszej perspektywy jest to po prostu kolejny wymóg testowania aktualizacji.
plivesey
@plivesey Bardzo ważne było dla mnie, aby móc to zrobić bez usuwania aplikacji (mnóstwo cennych danych testowych itp.) i znalazłem jeszcze prostsze rozwiązanie: stackoverflow.com/a/30617406/229229
Łukasz
6

Bardzo często napotykałem ten problem. Nie jestem pewien, czy to jest problem, ale myślę, że gdy xCode zobaczył, że istnieje aplikacja z tym samym identyfikatorem pakietu co aplikacja, próbuję zainstalować, to nie pozwoliło mi. Musiałem więc usunąć starszą wersję i próbowałem zainstalować, a ona zadziałała. Jednak czasami do celów testowych potrzebowałem wielu wersji tej samej aplikacji, w takim przypadku zmieniłem identyfikator pakietu i próbowałem zainstalować. Działa to tylko wtedy, gdy korzystam z profilu udostępniania z użyciem symboli wieloznacznych.

Natasza
źródło
Tak, zwykle dzieje się to po dodaniu uprawnienia
brainray
4

Miałem ten sam problem na iPadzie z 8.1.3 Usunięcie aplikacji i ponowne zainstalowanie naprawiło problem. Korzystam z dwóch różnych profili udostępniania na dwóch różnych komputerach, co mogło spowodować ten problem.

Krishnaprasad Jagadish
źródło
3

Działające i przetestowane rozwiązanie, które nie wymaga usuwania aplikacji:

Wygląda na to, że profil udostępniania dystrybucji AppStore lub po prostu certyfikat dystrybucji iOS mają specjalne uprawnienia i problem „Nie można zweryfikować ...” nie dotyczy ich. Oni zawsze zastępują poprzednie świadectwo .

Innymi słowy: wydanie AppStore zainstaluje się pomyślnie, nawet jeśli już zainstalowana (testowa, adhoc lub korporacyjna) aplikacja została podpisana przez certyfikat z innego zespołu.

Jeśli masz szczęście i wcześniej przesłałeś aplikację na konto AppStore należące do tego samego zespołu, co w certyfikacie, z którym masz problem - to jest bardzo proste: wystarczy pobrać i zainstalować aplikację z AppStore.

Po zainstalowaniu - certyfikat aplikacji będzie taki sam, jak ten, który chcesz przetestować, a problem zniknie.

Jeśli Twojej aplikacji nie ma jeszcze w AppStore - na ratunek przychodzi iTunesConnect w wersji beta :

Oświadczenie : Nie testowałem tego, ale ponieważ cert prev są takie same jak wydanie AppStore, założę się, że działa:

  1. Zarchiwizuj swoją aplikację za pomocą profilu udostępniania AppStore (certyfikat dystrybucji iOS) i prześlij do iTunesConnect (na konto należące do tego samego zespołu programistów, które jest zawarte w profilu udostępniania, którego nie chcesz uruchamiać).
  2. Zaproś osobę z urządzeniem, na którym chcesz uruchomić (siebie?), Do testu beta.
  3. Pobierz i zainstaluj aplikację z iTunes Connect beta.
  4. Teraz możesz zainstalować wersję testową.
Łukasz
źródło
3

Nie można zweryfikować aplikacji ”, na urządzeniu może już być zainstalowana aplikacja z tym samym identyfikatorem pakietu.

Tak proste rozwiązanie Wystarczy usunąć aplikację i spróbować ponownie .. ....

Aks
źródło
2

Odpowiedź TL; DR - Nie ma prawdziwego rozwiązania oprócz „usuń aplikację i zainstaluj ponownie”.

Ta odpowiedź nie jest zadowalająca w wielu sytuacjach, gdy masz istniejącą bazę danych, której nie trzeba usuwać w aplikacji.

Łukasz i Plivesey jako jedyni mają rozwiązania, które nie wymagają usuwania, ale dla mnie nie działały.

użytkownik1021430
źródło
1

Rozwiązałem ten problem, zmieniając system kompilacji na starszą wersję xcode.

Miałem ten sam problem, ale wyżej wymienione rozwiązania nie działały dla mnie. Nawet nie miałem poprzedniej aplikacji na urządzeniu, ten błąd pojawia się podczas wdrażania na moim urządzeniu.

Jak zrobić:

Po prostu przejdź do menu Plik> Ustawienia projektu, w Ustawieniach udostępniania projektu zmień System kompilacji z „Nowy system budowania (domyślnie)” na „System budowania lagacy”.

mehdi
źródło
0

Zetknąłem się również z tym samym problemem. Usuwanie aplikacji nie działało, ale kiedy próbowałem usunąć inną aplikację, która była „rodzicem” bieżącej (skopiowałem cały projekt z poprzedniej aplikacji, zmodyfikowałem niektóre adresy URL i obrazy, a następnie kliknąłem „Uruchom” i zobaczyłem niezadowolonego okno dialogowe „nie można zweryfikować”). Wydaje się, że problem dotyczy udostępniania i podpisywania kodu i / lub niektórych konfiguracji projektu. Bardzo trudne.

łuk
źródło
0

Zmieniłem zespół, ale zapomniałem go zmienić w moich testach, więc to spowodowało. Może to komuś pomaga.

akcoban
źródło