1

いくつかの外部ダイナミックライブラリを使用するアプリをMacAppStoreに送信しました。

Appleから次のようなメールが届きました。

無効な署名-実行可能ファイルsomething.app/Contents/Frameworks/some.dylibが署名されていないか、署名が無効であるか、Apple提出証明書で署名されていません。詳細については、コード署名およびアプリケーションサンドボックスガイドを参照してください。

もちろん、この問題は、ライブラリではなく、「自分の」実行可能ファイルにのみ署名したことが原因です。

私が作成したものではないのに、ライブラリにも署名するのは一般的/良い習慣ですか?

4

1 に答える 1

2

Think of digitally signing a file as:

  1. A means of verifying the integrity of that file, thus making it possible to detect whether it’s been modified;

  2. A means of verifying who published that file, which is not the same as writing the corresponding source code. You’re attesting that it was really you who’s shipped that file.

Since dynamic libraries contain executable code, it’s good practice (and in some cases, such as the MAS, mandatory) to digitally sign them for the same reason you sign the main executable file: guaranteeing that your application is exactly what you (and only you) have shipped from your build machine, no changes whatsoever. A running program includes the main executable file and all loaded libraries. If you sign the main executable file only, leaving the dynamic libraries unsigned, it would be possible to alter the dynamic libraries (or even replace them), thus changing what your program does.

于 2011-10-29T03:36:33.513 に答える