Чому програми App Store, передані в ~ / програми на іншій машині, не запускаються?


10

Я придбав кілька додатків у магазині Mac App і встановив їх на своєму персональному комп’ютері. Я хотів би встановити їх на спільному робочому комп’ютері. На жаль, у мене немає доступу адміністратора до робочого комп'ютера, тому я не можу це зробити звичайним способом.

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

  • Деякі програми, коли ви запускаєте їх уперше, відкрийте діалогове вікно із написом "Увійдіть, щоб використовувати цю програму на цьому комп’ютері", і запропонуйте вам ввести свій Apple ID та пароль, після чого вони добре працюють. (Приклад: DayOne та більшість безкоштовних програм)
  • Більшість додатків все одно показуватимуть це діалогове вікно, але з певних причин не працюватимуть навіть після введення ідентифікатора та пароля. (Приклад: BBEdit, Soulver, Twitterrific)

Питання:

  • Чи можна щось зробити, щоб програма запустила?
  • Якщо ні, то що змушує програму відмовитись від запуску?

Редагувати : Коли програма не працює, вона видає консольне повідомлення "Вийшов з кодом виходу: 173". Якщо я правильно розумію, це означає, що додаток недійсний (що можна очікувати, коли я копіюю його з одного комп'ютера на інший). Однак процес, за допомогою якого App Store перевіряє додаток, схоже, не працює, коли додаток знаходиться не в належному місці. Крім того, здається, що такі програми, як DayOne або безкоштовні додатки, працюють лише тому, що вони не перевіряють, чи додаток був дійсно придбаний і справді працює на будь-якому комп’ютері без будь-якої перевірки.

Залишається питання, чи існує рішення?

Знову відредагуйте: я не маю проблем з копіюванням програми ~/Applicationsна свій домашній комп'ютер, навіть для іншого користувача. Оскільки для дослідження (не кажучи вже про вирішення) цієї проблеми потрібно стільки клопотів (включаючи два комп’ютери або хоча б віртуальну машину), я пропоную щедрості.


Ви на леві чи сніговому леопарді?
bmike

Робочий комп'ютер - сніговий леопард. Головна - Лев. хммм.
Натан Грігг

Найкраще ввійти на робочий комп'ютер і завантажити та потім перемістити файли, як тільки вони завантажуються, ні?
bmike

1
Завантажуючи файли з магазину додатків, він розміщує їх /Applicationsі тому вимагає адміністраторського пароля.
Натан Грігг

Пройшов кілька тестів і повністю переписав мою відповідь нижче. Рішення немає, боюся сказати, але принаймні пояснення того, що відбувається.
kopischke

Відповіді:


12

Ви потрапили на цікаву (читайте: дуже дратівливу) помилку в процесі перевірки App Store, схоже:

Для початку, місце, куди ви копіюєте свої додатки, насправді не входить у нього, а також не визначається ваш статус адміністратора / не адміністратора. Незважаючи на те, що Apple заявляє, що це повинно бути можливим , на двох моїх машинах я не можу отримати додаток, скопійоване вручну, для запуску як стандартного користувача, так і для адміністратора, /Applicationsабо в ~/Applications. Не допомагає також chowning та chmoding пакета, який відповідає регулярним встановленням. Аркуш входу в App Store відображається (один раз), але додаток продовжує виходити з вихідним кодом 173 після цього.

Згідно з документацією розробника Apple для перевірки квитанцій App Store , частина квитанції, що підтверджує використання програми, є специфічним для машини GUID. Коли ви копіюєте додаток на іншу машину, GUID більше не збігається, тим самим анулюючи квитанцію (навпаки, на вашій власній машині вона завжди відповідає, незалежно від того, у кого ви встановите додаток - отже, у вас немає проблем з цим) . Програми призначені для подання сигналу про недійсну квитанцію шляхом виходу з кодом виходу 173, а процес магазину додатків 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, оскільки я спочатку задав це питання.
Натан Грігг
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.