2014年8月4日、アップルから突然メールがきた。codesignの仕様がMac OS 10.9.5以降はversion 2のものでないと認証されなくなり、これまでの codesign version 1の製品では、アプリケーション起動時に「認証していないアプリ」として警告がでるようなる。
codesign version 2にするには、Mac OS 10.9 以降の xcode で build しなおせば,自動的に version 1から version 2 に切り替わる。
しかし、古いアプリケーション(たとえばPPCにも対応しているアプリ)などは Mac OS X 10.7 の xcode 3でないと build できない。Mac OS 10.9 の環境ではbuild できないのだ。
MacApp Store を経由しないで直接配布している Developer ID アプリの場合は、 Mac OS X 10.7 の xcode 3 で build した アプリケーション(たとえば foo.app )を以下のように Mac OS X 10.9 上のコンソールからコマンドで version 2に変更できる。
終了したら、以下のコマンドで version 2 になっているかどうか、確認できる。
$ codesign -dv foo.app
[......]
Sealed Resources version=2 rules=xx files=xx
[......]
また以下のコマンドで GateKeeper が受け付けてくれるかどうか、チェックできる。
$ spctl -a -t exec -vv foo.app
foo.app: accepted
source=Developer ID
では、MacApp Store で配布する製品の場合は、どうしたらいいのだろか。MacApp Store で配布する製品でも、いろいろな理由で Mac OS X 10.9 の xcode で build できない場合がある。
うーむ。やっぱりその場合は、で Mac OS X 10.9 の xcode で buildできるようにソースコードを修正するしかないのか?
codesign version 2にするには、Mac OS 10.9 以降の xcode で build しなおせば,自動的に version 1から version 2 に切り替わる。
しかし、古いアプリケーション(たとえばPPCにも対応しているアプリ)などは Mac OS X 10.7 の xcode 3でないと build できない。Mac OS 10.9 の環境ではbuild できないのだ。
MacApp Store を経由しないで直接配布している Developer ID アプリの場合は、 Mac OS X 10.7 の xcode 3 で build した アプリケーション(たとえば foo.app )を以下のように Mac OS X 10.9 上のコンソールからコマンドで version 2に変更できる。
$ codesign --verbose --force --sign "Developer ID Application: your company" --deep foo.app
終了したら、以下のコマンドで version 2 になっているかどうか、確認できる。
$ codesign -dv foo.app
[......]
Sealed Resources version=2 rules=xx files=xx
[......]
また以下のコマンドで GateKeeper が受け付けてくれるかどうか、チェックできる。
$ spctl -a -t exec -vv foo.app
foo.app: accepted
source=Developer ID
では、MacApp Store で配布する製品の場合は、どうしたらいいのだろか。MacApp Store で配布する製品でも、いろいろな理由で Mac OS X 10.9 の xcode で build できない場合がある。
うーむ。やっぱりその場合は、で Mac OS X 10.9 の xcode で buildできるようにソースコードを修正するしかないのか?