Dlaczego aplikacje App Store przeniesione do ~ / Aplikacje na innym komputerze nie uruchamiają się?

10

Kupiłem niektóre aplikacje ze sklepu Mac App Store i zainstalowałem je na moim komputerze osobistym. Chciałbym zainstalować je na współdzielonym komputerze roboczym. Niestety nie mam dostępu administratora do komputera roboczego, więc nie mogę tego zrobić w zwykły sposób.

Skopiowałem aplikacje z komputera domowego do ~/Applicationskatalogu komputera roboczego i próbowałem je uruchomić, ale z różnym powodzeniem:

  • Niektóre aplikacje, gdy uruchomisz je po raz pierwszy, otwórz okno dialogowe z napisem „Zaloguj się, aby korzystać z tej aplikacji na tym komputerze” i poproś o podanie identyfikatora Apple ID i hasła, po czym będą działać poprawnie. (Przykład: DayOne i większość bezpłatnych aplikacji)
  • Większość aplikacji nadal wyświetla to okno dialogowe, ale z jakiegoś powodu nie będzie działać, nawet po wpisaniu identyfikatora i hasła. (Przykład: BBEdit, Soulver, Twitterrific)

Pytania):

  • Czy mogę coś zrobić, aby aplikacja działała?
  • Jeśli nie, to co powoduje odmowę uruchomienia aplikacji?

Edycja : Gdy aplikacja zawiedzie, wyświetla komunikat konsoli „Zakończono z kodem wyjścia: 173”. Jeśli dobrze rozumiem, oznacza to, że aplikacja jest niepoprawna (czego należy się spodziewać po skopiowaniu jej z jednego komputera na inny). Wydaje się jednak, że proces sprawdzania poprawności aplikacji przez App Store nie działa, gdy aplikacja nie znajduje się we właściwej lokalizacji. Ponadto wydaje się prawdopodobne, że aplikacje, które działają, takie jak DayOne lub darmowe aplikacje, działają tylko dlatego, że nie sprawdzają, czy aplikacja została poprawnie zakupiona i że w rzeczywistości działałyby na dowolnym komputerze bez żadnego sprawdzania poprawności.

Pozostaje pytanie, czy istnieje obejście?

Edytuj ponownie: Nie mam problemu z skopiowaniem aplikacji ~/Applicationsna komputer domowy, nawet dla innego użytkownika. Ponieważ badanie (nie wspominając o rozwiązaniu) tego problemu wymaga tylu kłopotów (w tym dwóch komputerów lub przynajmniej maszyny wirtualnej), oferuję nagrodę.

Nathan Grigg
źródło
Czy jesteś na lwie lub lampart śnieżny?
bmike
Komputer roboczy to lampart śnieżny. Dom to Lew. hmmm.
Nathan Grigg,
Najlepiej zalogować się na komputerze roboczym i pobrać, a następnie przenieść pliki po ich pobraniu, prawda?
bmike
1
Gdy pobierasz pliki ze sklepu App Store, umieszcza je /Applicationsi dlatego wymaga hasła administratora.
Nathan Grigg,
Przeszedłem kilka testów i całkowicie przepisałem moją odpowiedź poniżej. Nie mam rozwiązania, boję się powiedzieć, ale przynajmniej wyjaśnienie, co się stanie.
kopischke

Odpowiedzi:

12

Znalazłeś interesujący (przeczytany: bardzo irytujący) błąd w procesie sprawdzania poprawności w App Store:

Po pierwsze, lokalizacja, do której kopiujesz swoje aplikacje, w rzeczywistości nie wchodzi w to, podobnie jak twój status administratora / nie-administratora. Pomimo faktu, Jabłko stwierdza powinno to być możliwe , na moich dwóch komputerach, nie mogą otrzymać aplikację ręcznie skopiowany uruchomić albo jako standardowy użytkownik, użytkownik administratora, w /Applicationslub w ~/Applications. Nie pomaga też chowningingowanie i chmoddostosowywanie pakietu do regularnych instalacji. Pojawia się arkusz logowania do App Store (jeden raz), ale potem aplikacja kończy pracę z kodem wyjścia 173.

Zgodnie z dokumentacją dewelopera Apple dotyczącą sprawdzania paragonów App Store część paragonu potwierdzającego użycie aplikacji to GUID specyficzny dla urządzenia. Gdy kopiujesz aplikację na inny komputer, identyfikator GUID nie jest już zgodny, co powoduje unieważnienie paragonu (i odwrotnie, na własnym komputerze, zawsze pasuje, niezależnie od użytkownika, dla którego instalujesz aplikację - dlatego nie masz z tym problemu) . Aplikacje mają sygnalizować nieprawidłowe potwierdzenie, wychodząc z kodem wyjścia 173, a proces App Store storeagentma przejąć tę funkcję, poprosić o poświadczenia i wygenerować nowy pokwitowanie, a następnie ponownie uruchomić aplikację po sukcesie:

Jeśli system pomyślnie otrzyma ważny paragon, ponownie uruchomi aplikację. W przeciwnym razie wyświetla komunikat o błędzie dla użytkownika, wyjaśniając problem.

Nie wyświetlaj użytkownikowi żadnego komunikatu o błędzie, jeśli sprawdzanie poprawności się nie powiedzie. System jest odpowiedzialny za próbę uzyskania ważnego rachunku lub poinformowanie użytkownika, że ​​rachunek nie jest ważny.

To, co dzieje się w twoim (i moim teście) przypadku, polega na tym, że sprawdzanie poprawności kończy się cicho - na co wskazuje fakt, że potwierdzenie nigdy nie jest aktualizowane, ale nie pojawia się również komunikat o błędzie. Dzienniki pokazują storeagentzwroty:

promptResponse: <CKSignInPromptResponse:0x1080c4fb0 returnCode:1>

Kod ten jest udokumentowany przez Apple, a ja znalazłem się dyskusje przez programistów o tej kwestii w kontekście testowania, gdzie wydaje się odnosić do danych iTunes Connect będących niekompletny (Geoff Pado ma zwięzłe podsumowanie tutaj ).

Jednak może się zdarzyć, że obraz jako całość wyraźnie pokazuje, że sprawdzanie poprawności kończy się niepowodzeniem na trasie , co powoduje, że aplikacje są kopiowane ręcznie z nieprawidłowym pokwitowaniem, nawet po wprowadzeniu prawidłowych poświadczeń do App Store. Jak zauważyłeś, tylko te aplikacje, które nie sprawdzą swojej ważności, będą nadal działać.

Niezbyt pomocne w twoim przypadku, Apple zaleca jedynie usunięcie i ponowne pobranie ze sklepu App Store, aby rozwiązać problem.

TL; DR: Nie można ręcznie kopiować aplikacji zakupionych w App Store z jednego komputera na inny, dopóki Apple nie naprawi wymaganego do tego procesu weryfikacji rachunku. Lokalizacja instalacji i uprawnienia użytkownika nie wchodzą w nią.

kopischke
źródło
Błąd został najwyraźniej naprawiony (patrz apple.stackexchange.com/questions/46874/… ). Działa to również dla mnie, mimo że nie zaktualizowałem maszyny Snow Leopard, odkąd pierwotnie zadałem pytanie.
Nathan Grigg,