2

インターネット経由で自分自身を更新するアプリがありますが、更新されたコピーは、Leopard (10.5.8) を実行している PowerPC マシン (G5) では実行されません。アプリをダブルクリックすると、「アプリケーション " appname " は、このアーキテクチャではサポートされていないため、開くことができません」というメッセージが表示されます。しかし、ここに奇妙な部分があります。Finder またはコマンドを使用してアプリを複製するとcp -R、複製は正常に実行されます。それでも、ls -laeR両方のアプリで行った場合、結果は同じです. マシンを再起動しましたが、2 つのコピーの違いはまだ残っていました。

アプリの名前を変更すると、アプリが実行されることがありました。数回試行した後、名前を元の名前に戻し、引き続き実行することができました。

これが 1 台のマシンだけで発生した場合は、ディスクの破損、宇宙線、またはブードゥー教の呪いとして片付けますが、顧客から報告があり、自分のマシンで再現しました。

この動作を引き起こす可能性のあるアイデアはありますか?

4

2 に答える 2

3

Launch Services データベースが何らかの形でアプリにサポート対象外のフラグを立てていたことが判明しました。これは、半秘密のlsregisterコマンド ライン ツールを使用してデータベースをダンプすることで確認しました。など、アプリの変更日を変更するものはtouchすべて、Launch Services を起動してコーヒーの匂いを嗅ぐのに十分でした。

于 2010-04-06T18:14:29.910 に答える
0

プログラム ファイルの複製に引き継がれていない拡張属性またはその他の側面のように思えます。

アプリバンドルxattrの出力でコマンドを実行することを検討してみてください。ls -laeR

于 2010-04-06T03:15:45.153 に答える