Mac OS X 10.5 Приложение "не поддерживается в этой архитектуре" вылечено копированием? - PullRequest
2 голосов
/ 05 апреля 2010

У меня есть приложение, которое обновляется через Интернет, и обновленная копия не будет работать на машинах PowerPC (G5) под управлением Leopard (10.5.8). Двойной щелчок по приложению выдает сообщение «Вы не можете открыть приложение» appname «, поскольку оно не поддерживается в этой архитектуре». Но вот странная часть: если я дублирую приложение, используя Finder или команду cp -R, то дубликат работает нормально! И все же, если я сделаю ls -laeR в обоих приложениях, результаты будут идентичны. Я перезапустил машину, и разница между двумя копиями все еще была.

Иногда переименование приложения заставляло его работать. После нескольких попыток мне удалось переименовать его обратно в исходное имя, и он все еще работал.

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

Есть идеи, что может вызвать такое поведение?

Ответы [ 2 ]

3 голосов
/ 06 апреля 2010

Оказывается, база данных Launch Services каким-то образом пометила приложение как неподдерживаемое, что я проверил с помощью полусекретного инструмента командной строки lsregister для выгрузки базы данных. Все, что могло изменить дату обновления приложения, например touch, было достаточно, чтобы Launch Services проснулся и почувствовал запах кофе.

0 голосов
/ 06 апреля 2010

Звучит как расширенный атрибут или какой-то другой аспект, который не переносится на дубликаты программных файлов.

Может быть, попробуйте запустить команду xattr для вывода ls -laeR в комплекте приложений?

...