Почему приложения App Store, перенесенные в ~ / Applications на другом компьютере, не запускаются?

10

Я купил несколько приложений в магазине приложений Mac и установил их на свой персональный компьютер. Я хотел бы установить их на общий рабочий компьютер. К сожалению, у меня нет доступа администратора к рабочему компьютеру, поэтому я не могу сделать это обычным способом.

Я скопировал приложения со своего домашнего компьютера в ~/Applicationsкаталог рабочего компьютера и попытался запустить их с переменным успехом:

  • Некоторые приложения, когда вы запускаете их впервые, открывают диалоговое окно с надписью «Войдите, чтобы использовать это приложение на этом компьютере» и запрашивают ваш Apple ID и пароль, после чего они работают нормально. (Пример: DayOne и большинство бесплатных приложений)
  • В большинстве приложений по-прежнему отображается это диалоговое окно, но по какой-то причине оно не будет работать даже после ввода вашего идентификатора и пароля. (Пример: BBEdit, Soulver, Twitterrific)

Вопросы):

  • Что я могу сделать, чтобы приложение работало?
  • Если нет, то что вызывает отказ приложения в запуске?

Изменить : Когда приложение не удается, оно выдает консольное сообщение «Выход с кодом выхода: 173». Если я правильно понимаю, это означает, что приложение недействительно (чего следует ожидать, когда я копирую его с одного компьютера на другой). Однако процесс, с помощью которого App Store проверяет приложение, кажется, не работает, когда приложение находится не в нужном месте. Кроме того, кажется вероятным, что приложения, которые работают, такие как DayOne или бесплатные приложения, работают только потому, что они не проверяют, что приложение было куплено правильно, и фактически будут работать на любом компьютере без какой-либо проверки.

Вопрос остается, есть ли обходной путь?

Отредактируйте снова: у меня нет проблем с копированием приложения ~/Applicationsна мой домашний компьютер, даже для другого пользователя. Поскольку расследование (не говоря уже о решении) требует много хлопот (включая два компьютера или хотя бы виртуальную машину), я предлагаю вознаграждение.

Натан Григг
источник
Вы на льве или снежном барсе?
bmike
Рабочий компьютер снежного барса. Дом - это лев. хммм.
Натан Григг
Лучше всего войти на рабочий компьютер и загрузить, а затем переместить файлы после загрузки, не так ли?
bmike
1
Когда вы загружаете файлы из магазина приложений, они помещаются в него /Applicationsи поэтому требуют пароль администратора.
Натан Григг
Провел несколько тестов и полностью переписал мой ответ ниже. Боюсь сказать, нет решения, но, по крайней мере, объяснение того, что происходит.
копишке

Ответы:

12

Вы столкнулись с интересной (читай: очень раздражающей) ошибкой в ​​процессе проверки в App Store, похоже:

Начнем с того, что местоположение, в которое вы копируете свои приложения, фактически не входит в него, равно как и ваш статус администратора / пользователя без прав администратора. Несмотря на то , Apple , утверждает , что это должно быть возможно , на два моих машинах, я не могу получить приложение вручную скопированное запускать либо как обычный пользователь, пользователь с правами администратора, в /Applicationsили в ~/Applications. Не помогает ни chownсборка, ни chmodустановка в соответствии с обычной установкой. Лист входа в App Store всплывает (один раз), но приложение продолжает выходить с кодом завершения 173 после этого.

Согласно документации разработчика Apple для проверки квитанций App Store , часть квитанции, подтверждающей использование приложения, представляет собой специфический для компьютера GUID. Когда вы копируете приложение на другой компьютер, GUID больше не совпадает, что делает недействительной квитанцию ​​(наоборот, на вашем собственном компьютере она всегда совпадает, независимо от того, для какого пользователя вы устанавливаете приложение - следовательно, у вас нет проблем с этим) , Приложения призваны сигнализировать о недействительных квитанциях, выйдя с кодом завершения 173, и процесс App Store должен storeagentперехватить управление, запросить учетные данные и сгенерировать новую квитанцию, а затем повторно запустить приложение в случае успеха:

Если система успешно получает действительную квитанцию, она перезапускает приложение. В противном случае он отображает сообщение об ошибке для пользователя, объясняя проблему.

Не отображать сообщение об ошибке пользователю, если проверка не удалась. Система отвечает за попытку получения действительной квитанции или информирование пользователя о том, что квитанция недействительна.

То, что происходит в вашем (и моем тестовом) случае, заключается в том, что проверка не проходит тихо - на это указывает тот факт, что квитанция никогда не обновляется, но сообщение об ошибке также не отображается. Логи показывают storeagentвозвращение:

promptResponse: <CKSignInPromptResponse:0x1080c4fb0 returnCode:1>

Этот код документирован от Apple, и все , что я нашел в дискуссии разработчиков об этой проблеме в контексте тестирования, где это , кажется, относится к данным ITunes Connect была неполным (Geoff Pado имеет краткое изложение краткой здесь ).

Как бы то ни было, картина в целом ясно показывает, что проверка не выполняется в пути , что оставляет приложения, скопированные вручную с недействительной квитанцией, даже после ввода правильных учетных данных в App Store. Как вы уже отметили, будут работать только те приложения, которые не проверяют свою действительность.

Не очень полезно в вашем случае, Apple рекомендует только удалить и повторно загрузить из App Store, чтобы исправить проблему.

TL; DR. Нельзя вручную копировать приложения, купленные в App Store, с одного компьютера на другой, пока Apple не исправит процесс проверки квитанции, необходимый для этого. Место установки и пользовательские привилегии не входят в него.

Копишке
источник
Ошибка, по-видимому, была исправлена ​​(см. Apple.stackexchange.com/questions/46874/… ). Это также работает для меня, несмотря на то, что я не обновлял машину Snow Leopard, так как я первоначально задал вопрос.
Натан Григг