Многие приложения магазина приложений OS X перечислены как «приложение» повреждено и не может быть открыто

11

Ничего не изменив, теперь я получаю это сообщение, когда пытаюсь открыть приложение «Ветерок» - другие приложения тоже не работают на других компьютерах Mac:

введите описание изображения здесь

Я попытался избавиться от этого сообщения, переустановив его из App Store, но ничего не изменилось. Перезагрузка и изменение настроек безопасности привратника также не помогают, выбрав «разрешить загрузку приложений из любого места».

Что, черт возьми, происходит?

Корсин Пфистер
источник
Как вы думаете, это может быть связано с моей проблемой ? (Как ни странно, сегодня мой день рождения.)
geokavel

Ответы:

17

Почти все находятся в той же лодке, что и вы. Ситуация довольно сложная, но на этом рисунке показаны некоторые детали уровней сертификатов, используемых при создании файла «квитанции»:

введите описание изображения здесь

Инженеры Apple использовали сертификат, помеченный как НЕДОПУСТИМОЙ После: 11 ноября 21:58:01 2015 GMT, чтобы подписывать приложения, которые были загружены в течение длительного периода в этом году. Кроме того, один из сертификатов был подписан с помощью алгоритма подписи: sha1WithRSAEncryption и переходит на sha256WithRSAEncryption, который не полностью поддерживается всеми ОС и разработчиками.

Лучшая статья (из многих хороших) написана Беном Томсом:

Одним словом, вчера истек срок действия одного из ключей, составляющих оболочку, которую используют приложения для проверки правильности загрузки App Store. Apple обновила этот сертификат, но вам, возможно, придется принять меры сейчас, чтобы исправить эту ошибку.

Как ни странно, приложения, которые сама Apple создала, полагаются на какую-то другую цепочку доверия, поскольку они включают тот же сертификат с истекшим сроком действия, но все еще работают на OS X. По сути, эти приложения, похоже, используют другую (или не проверяют) проверку чека на правильность ,

Если вы знакомы с командной строкой, попробуйте перезапустить процесс, который приводит к получению устаревших приложений:

killall -KILL storeaccountd

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

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

Еще одна вещь, которая может вылечить ложные ошибки сертификатов, это проверить настройки даты и времени, а затем попробовать полностью выйти из Mac App Store. Если вы по-прежнему не можете запустить приложение после входа в систему, возможно, вам придется удалить приложение и повторно загрузить его после проверки даты / времени и перезагрузки ОС. Не забудьте проверить прожектор и удалить все копии приложения. Очистите корзину, прежде чем пытаться восстановить загрузку.

Если ничего не помогает, обратитесь к разработчику как конкретного приложения, так и в службу поддержки Apple за указаниями, возможно, будет разумным, поскольку программы, которые обрабатывают проверку и генерацию квитанции, недостаточно документированы.

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

bmike
источник
Кроме того , это немного больно , чтобы выбрать , кроме сообщений об ошибках , связанных storelegacy от CommerceKit, безвредный из значимых sandboxdошибок storeassetd, storeuid, storeaccountdи storelegacyобработки сообщений и ошибок , чтобы выяснить , что изменилось после перезагрузки после времени отказа для OS X , чтобы обновить квитанцию , которая была кэшируется в файловую систему с более новой датой истечения срока действия. Конечно, было бы неплохо иметь некоторые из этих задокументированных документов или переключение, чтобы вы могли загрузить приложение, когда следующая цепочка доверия потерпит неудачу из-за ошибки пользователя или недостаточного предвидения разработчиков ОС.
Bmike
К сожалению, это не помогло мне. Перезагрузка, переустановка, уничтожение вышеуказанного процесса, проверка даты / времени и выход из системы и возврат в магазин приложений не помогли. Это на Mac 10.10.5. Открытие из командной строки также не помогло: $ open -a Breeze.app LSOpenURLsWithRole () завершилась неудачно для приложения /Applications/Breeze.app с ошибкой -10810
Андрей
Большое спасибо за ваш ответ. К сожалению, ничего из этого не помогает. Более подробно, я попробовал трюк командной строки, перезагрузил компьютер, повторно ввел пароль, но я все еще получаю это сообщение. Настройки даты / времени выглядят нормально для меня (что я должен там проверить?) После переустановки я все равно получаю то же сообщение. Есть идеи?
Корсин Пфистер
Мне только что позвонили в службу поддержки Apple, и я попробовал кое-что сделать с помощью общего экрана. Это включало: проверку даты и времени, удаление / перемещение некоторых вещей из библиотеки, перезагрузка, проверка сторонних приложений (которые, как оказалось, не были затронуты). Я также сообщил парню службы поддержки об этом вопросе здесь, на AskDifferent. Попробовав несколько вещей, которые не помогли, он предложил связаться с создателями Breeze (что я и сделаю) и дал мне идентификатор дела на случай, если я захочу снова обратиться в службу поддержки Apple.
Корсин Пфистер
Я добавил еще один шаг. @CorsinPfister - проверять наличие нескольких копий приложения и удаление мусора. Я также отключил бы диск Time Machine после создания резервной копии, чтобы быть на 100% уверенным, что storeaccountsdпроцесс получает новый чек для рассматриваемого приложения. Маловероятно, что это проблема разработчика. Все они не сделали ту же ошибку вчера в 18:00 по Гринвичу. Надеюсь, Apple будет лучше документировать события в будущем.
bmike
7

Похоже, что квитанции, встроенные в приложения, загруженные из Mac App Store, подписываются сертификатом с истекшим сроком действия.

Пол Хаддад из Tapbot указал сегодня на проблему в Твиттере.

https://twitter.com/tapbot_paul/status/664653066679906304

Для некоторых пользователей перезагрузки достаточно, чтобы операционная система запросила новые поступления из Магазина. Другие пользователи обнаруживают, что им предлагается снова войти в Mac App Store, чтобы обновить квитанции приложений. Другие разработчики, такие как C-Command Software, предлагают пользователям удалять приложения и загружать их снова .

Алистер Макмиллан
источник
Это не все, что есть в истории. У меня есть приложения, которые все еще запускаются, несмотря на то, что они подписаны сертификатом, помеченным как недействительный после 11 ноября 21:58:01 2015 по Гринвичу - например, Xcode все еще работает, поэтому я копаюсь в том, что можно сделать, кроме удаления и переустановка каждого приложения, которое, по мнению OS X, теперь «повреждено».
bmike
2
Возможно, ОС не проверяет квитанцию ​​при каждом запуске приложения. И / или, может быть, он проверяет только после периода бездействия. Вы предполагаете, что это было где-то задокументировано. :)
Алистер Макмиллан
1
Поскольку для большинства людей это является огромным сюрпризом, что срок действия приложений может истечь, и для тех, кто летит в самолете или путешествует вдали от Wi-Fi, чтобы продолжать работать в Mac OS, будет очень больно, поэтому я ожидаю публичного объяснения от Apple о том, что случилось, почему это произошло и как исправить / предотвратить это в будущем. По сути, для Gatekeeper требуется функция, которая заранее сообщает об истекающих приложениях, и переключатель, который временно отменяет эту проверку. Яйцо лица Apple наверняка о том, как они не смогли обучить пользователей и следить за ними.
bmike
2
Просто удивительно, что у компаний регулярно возникают проблемы с истечением срока действия сертификатов. Если бы у них был какой-то способ автоматически напомнить себе, что определенные вещи нужно обновлять в определенные дни.
Алистер Макмиллан