【AppleScript】MavericksでSecurity API failed with error -60008
弊社製品、PDF検版ツールBeforeAfterは、AppleScriptで作られていて、10.5〜10.8まで、問題なく動作しています。ところが、10.9 Mavericksで動作させたところ、問題が発生しました。
4, 5ページの処理では問題ありませんが、8ページ位で処理で止まってしまいました。
調査をすると、do shell scriptの連続処理の箇所で、8ページ程度処理するとSecurity API failed with error -60008 が発生します。
この発生タイミングがよく分かりません。少し修正し、30ページの処理が上手く行き、これで大丈夫だろうと思って、160ページの処理を行うと、また発生するといった具合です。いろいろと試行錯誤を繰り返しました。
処理途中の状況を見るため、あるdo shell scriptの前に、display dialog を入れると、なぜかこのdo shell scriptのコマンドでエラーは発生しなくなりました。
いちいちダイアログを表示させるわけにもいかないので、どうしたものかと考えました。delay 1 ではだめでした。
で、シスログを書き出すよう、下記のようなコマンドを、do shell scriptの前に挿入しました。
do shell script “logger -p user.notice -t BeforeAfter @message”
これで、エラーが発生しなくなったのです。1000ページの処理を行っても問題が出なくなりました。
何故、Mavericks で Security API failed with error -60008 が発生するようになったのか? 何故 display dialog やシスログで回避できるのか? 原因は不明なのだが、とにかくこれで乗り切ったので報告しておきます(この調査〜対策まで3日もかかりました〜)。
Leave a comment
記事投稿日
日 | 月 | 火 | 水 | 木 | 金 | 土 |
---|---|---|---|---|---|---|
« 9月 | ||||||
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |