Menu

Skip to content
AppleScriptの穴
  • Home
  • Products
  • Books
  • Docs
  • Events
  • Forum
  • About This Blog
  • License
  • 仕事依頼

AppleScriptの穴

Useful & Practical AppleScript archive. Click '★Click Here to Open This Script' Link to download each AppleScript

カテゴリー: Bug

macOS 13の複合的な不具合。とくにPDF書き出しについて

Posted on 2月 24, 2023 by Takaaki Naganoya

いろいろ不具合が多すぎて、本当にこれがリリース版なのか理解に苦しむmacOS 13。リリース当初から、AppleScript経由でPagesの(大量の)書類に順次PDF書き出しを行わせると、PDF書き出しされない書類が発生することがわかっていました。

同じバージョンのPages 12.2.1でも、macOS 12.x上では問題が発生していなかったため、明確にmacOS 13.xが理由ではあるのですが、不具合の発生源がよくわかりません。

(1)Pages書類オープン後に時間待ちが必要?

macOS 13移行当初、Pages種類をオープンした後に一定の時間(1秒程度)待機を行って、内部の状態が安定するのを待ってPDF書き出しを行うようにしました。数十程度のPages書類であれば、これで問題は起こりませんでした。

(2)数百個のPages書類を順次オープン→PDF書き出しするとミスを行う

その後、百以上のPages書類を順次オープンして、時間待ちして、PDF書き出し処理を行ってみたところ、明確にPDF書き出しできない書類が複数出てきました。何回実行しても書き出されません。また、そのPages書類単独でPDF書き出しを行わせると問題なく書き出しが行えます。

このPDF書き出しミスを行う書類の動作を観察していると、指定した時間待ちが正しく行われません。delayコマンドに問題があるのかと考え、shellのsleepコマンドを試したりもしていますが、正しく時間待ちが行われません。

さらに、普通にPages書類からPDF書き出しできていたとしても、それを数回繰り返すとPDF書き出しされなくなる(何か、一定の回数書き出すと問題が発生するらしい)ため、macOS 13自体の再起動かログアウト→再ログインが必要でした。

そもそもmacOS 13の出来がよくない、いろいろ問題がありすぎるということ自体が問題なわけですが、、、「複数回実行しないと再現しない」「原因の所在がどこにあるのかよくわからない」といった状況で、レポート自体を行いにくいというのが現状です。

ほかにも、Finder上で選択したファイルをCommand-Oでオープンさせるとオープンできない場合があったりと(なんだこれ?)、何がやりたいのかよくわからないOSバージョンです。セキュリティ強化はもちろん重要ですが、まともに動かないOSをリリースされても、、、、さらに、Beta段階では許可されていた外付けSSDからの前バージョンのOSの起動がmacOS 13リリース以後は封じられており、そういうのは「まともなOS」をリリースできるようになってからやってほしい気持ちでいっぱいです。

もう、macOS 13自体、やり直してほしい気持ちでいっぱいです。macOS 10.13、macOS 10.15と同じかそれ以上にダメなバージョンにしか見えません。

Posted in Bug PDF | Tagged 13.0savvy Pages | Leave a comment

macOS 13.1アップデートでスクリプトエディタの挙動がようやくまともに

Posted on 12月 10, 2022 by Takaaki Naganoya

macOS 13のリリース版でスクリプトエディタを使うと、新規書類を作成しても「保存できない」とか、作成した書類を破棄できないとか、そもそもAppletとしてエクスポートする際にCode Signを指定するとハングアップするとかいう、macOS 13β版でも発生していなかった不具合のオンパレード。

もはや「この状態で何をバグレポートしろと?」「絶対に、リリース前にチェックとか一切してないだろ」という仕上がりに、開いた口がふさがりませんでした。

macOS 13.1の正式アップデートがリリースされ、これらの挙動は解消されたように見えます。見えるのですが、macOS 12でさんざんやらかしまくったように、β版で同じようなバグをノーチェックで出してくるので、油断ができないというべきなのか、信じた奴がバカなのかという状況。

とはいえ、β版でやらかしたトンでもないバグをApple側が認識していないこともままあるので、Appleの魔の手から環境を守るためにはβ版を試さないといけないんでしょう。Appleは、OSを開発しているんでしょうか? それとも、全世界に嫌がらせをしているんでしょうか?

Posted in Bug news | Tagged 13.0savvy | Leave a comment

macOS 13でNSNotFoundバグふたたび

Posted on 12月 1, 2022 by Takaaki Naganoya

また、Appleがやらかしてくれたようです。あの会社はNSNotFoundの定義値を何回間違えたら気が済むんでしょうか。これで通算4回目ぐらいです。macOS 10.12で発生し10.13.1で修正された定義値のミスをまたやったわけで、失敗がまったく生かされていない。大したものです。

今回のバグは、文字列の検索処理を行っているときに発見しました。指定文字列から対象文字列の登場位置と長さをリストで返す処理を行っていたところ、NSRangeからlocationを取得したときに、これ以上見つからない場所まで来たときにNSNotFoundを返すことを期待されるわけですが、そこに前回(macOS 10.12…10.13)と同様のおかしな値を返してきました。

この(↓)AppleScriptをmacOS 13上で実行すると、エラーになります。

追記:macOS 13.1でもエラーになります。

AppleScript名:テキストのキーワード検索(結果をNSRangeのlistで返す).scptd
— Created 2017-08-09 by Takaaki Naganoya
— 2017 Piyomaru Software
use AppleScript version "2.4"
use scripting additions
use framework "Foundation"
–http://piyocast.com/as/archives/4771

property NSString : a reference to current application’s NSString
property NSMutableArray : a reference to current application’s NSMutableArray
property NSLiteralSearch : a reference to current application’s NSLiteralSearch

set aStr to "ATGC ACGT ATGC AGTC
ATGC ACGT ATGC AGTC
ATGC ACGT ATGC AGTC
ATGC ACGT ATGC AGTC
"

set aRes to searchWordRanges(aStr, "ATGC") of me as list
–>  {​​​​​{​​​​​​​location:0, ​​​​​​​length:4​​​​​}, ​​​​​{​​​​​​​location:10, ​​​​​​​length:4​​​​​}, ​​​​​{​​​​​​​location:20, ​​​​​​​length:4​​​​​}, ​​​​​{​​​​​​​location:30, ​​​​​​​length:4​​​​​}, ​​​​​{​​​​​​​location:40, ​​​​​​​length:4​​​​​}, ​​​​​{​​​​​​​location:50, ​​​​​​​length:4​​​​​}, ​​​​​{​​​​​​​location:60, ​​​​​​​length:4​​​​​}, ​​​​​{​​​​​​​location:70, ​​​​​​​length:4​​​​​}​​​}

on searchWordRanges(aTargText as string, aSearchStr as string)
  set aStr to NSString’s stringWithString:aTargText
  
set bStr to NSString’s stringWithString:aSearchStr
  
  
set hitArray to NSMutableArray’s alloc()’s init()
  
set cNum to (aStr’s |length|()) as integer
  
  
set aRange to current application’s NSMakeRange(0, cNum)
  
  
repeat
    set detectedRange to aStr’s rangeOfString:bStr options:(NSLiteralSearch) range:aRange
    
set aLoc to detectedRange’s location
    
log aLoc
    
if (detectedRange’s location) is equal to (current application’s NSNotFound) then exit repeat
    
    
hitArray’s addObject:detectedRange
    
    
set aNum to (detectedRange’s location) as number
    
set bNum to (detectedRange’s |length|) as number
    
    
set aRange to current application’s NSMakeRange(aNum + bNum, cNum – (aNum + bNum))
  end repeat
  
  
return hitArray
end searchWordRanges

★Click Here to Open This Script 

症状も前回とまったく同じなので、対処も前回と同じです。Appleは定期的にNSNotFoundの定義値を間違えるトンでもない会社なので(計測された事実)、NSNotFoundまわりはAppleがバグをやらかすことを前提に書いておくべきなんでしょう。

AppleScript名:テキストのキーワード検索(結果をNSRangeのlistで返す)v2.scptd
— Created 2017-08-09 by Takaaki Naganoya
— Modified 2022-12-01 by Takaaki Naganoya
— 2022 Piyomaru Software
use AppleScript version "2.4"
use scripting additions
use framework "Foundation"

property NSString : a reference to current application’s NSString
property NSMutableArray : a reference to current application’s NSMutableArray
property NSLiteralSearch : a reference to current application’s NSLiteralSearch

set aStr to "ATGC ACGT ATGC AGTC
ATGC ACGT ATGC AGTC
ATGC ACGT ATGC AGTC
ATGC ACGT ATGC AGTC
"

set aRes to searchWordRanges(aStr, "ATGC") of me as list
–>  {​​​​​{​​​​​​​location:0, ​​​​​​​length:4​​​​​}, ​​​​​{​​​​​​​location:10, ​​​​​​​length:4​​​​​}, ​​​​​{​​​​​​​location:20, ​​​​​​​length:4​​​​​}, ​​​​​{​​​​​​​location:30, ​​​​​​​length:4​​​​​}, ​​​​​{​​​​​​​location:40, ​​​​​​​length:4​​​​​}, ​​​​​{​​​​​​​location:50, ​​​​​​​length:4​​​​​}, ​​​​​{​​​​​​​location:60, ​​​​​​​length:4​​​​​}, ​​​​​{​​​​​​​location:70, ​​​​​​​length:4​​​​​}​​​}
–> {{location:0, |length|:4}, {location:10, |length|:4}, {location:20, |length|:4}, {location:30, |length|:4}, {location:40, |length|:4}, {location:50, |length|:4}, {location:60, |length|:4}, {location:70, |length|:4}}

on searchWordRanges(aTargText as string, aSearchStr as string)
  set aStr to NSString’s stringWithString:aTargText
  
set bStr to NSString’s stringWithString:aSearchStr
  
  
set hitArray to NSMutableArray’s alloc()’s init()
  
set cNum to (aStr’s |length|()) as integer
  
  
set aRange to current application’s NSMakeRange(0, cNum)
  
  
repeat
    set detectedRange to aStr’s rangeOfString:bStr options:(NSLiteralSearch) range:aRange
    
set aLoc to detectedRange’s location
    
    
–macOS 13でAppleが新たに作ったバグを回避
    
if (aLoc > 9.999999999E+9) or (aLoc = current application’s NSNotFound) then exit repeat
    
    
hitArray’s addObject:detectedRange
    
    
set aNum to (detectedRange’s location) as number
    
set bNum to (detectedRange’s |length|) as number
    
    
set aRange to current application’s NSMakeRange(aNum + bNum, cNum – (aNum + bNum))
  end repeat
  
  
return hitArray
end searchWordRanges

★Click Here to Open This Script 

Appleと協議した結果、そこは仕様として認識していないという話で、とくに仕様を変えていないという話で平行線をたどってしまいました。

結局、書き方を少々変えることで問題そのものを「なかったこと」にする方向で決着。納得はできませんが、macOS 10.11とか10.12の時代に書いたScriptでもあり、その実行環境は手元に残っていません(macOS 10.13は何台か存在しています。macOS 11のASのCocoa呼び出しバグの検証時に活躍)。

AppleScript名:テキストのキーワード検索(結果をNSRangeのlistで返す)v3.scptd
— Created 2017-08-09 by Takaaki Naganoya
— Modified 2022-08-29 by Takaaki Naganoya
— 2023 Piyomaru Software
use AppleScript version "2.4"
use scripting additions
use framework "Foundation"

property NSString : a reference to current application’s NSString
property NSLiteralSearch : a reference to current application’s NSLiteralSearch
property NSMutableArray : a reference to current application’s NSMutableArray

set aStr to "ATGC ACGT ATGC AGTC
ATGC ACGT ATGC AGTC
ATGC ACGT ATGC AGTC
ATGC ACGT ATGC AGTC
"

set aRes to searchWordRanges(aStr, "ATGC") of me as list
–> {{location:0, |length|:4}, {location:10, |length|:4}, {location:20, |length|:4}, {location:30, |length|:4}, {location:40, |length|:4}, {location:50, |length|:4}, {location:60, |length|:4}, {location:70, |length|:4}}

on searchWordRanges(aTargText as string, aSearchStr as string)
  set aStr to NSString’s stringWithString:aTargText
  
set bStr to NSString’s stringWithString:aSearchStr
  
  
set hitArray to NSMutableArray’s alloc()’s init()
  
set cNum to (aStr’s |length|()) as integer
  
  
set aRange to current application’s NSMakeRange(0, cNum)
  
  
repeat
    set detectedRange to aStr’s rangeOfString:bStr options:(NSLiteralSearch) range:aRange
    
set aLen to (detectedRange’s |length|) as number
    
    
if aLen = 0 then exit repeat
    
    
hitArray’s addObject:detectedRange
    
    
set aNum to (detectedRange’s location) as number
    
set bNum to (detectedRange’s |length|) as number
    
    
set aRange to current application’s NSMakeRange(aNum + bNum, cNum – (aNum + bNum))
  end repeat
  
  
return hitArray
end searchWordRanges

★Click Here to Open This Script 

Posted in Bug list Text | Tagged 13.0savvy NSLiteralSearch NSMakeRange NSMutableArray NSNotFound NSRange NSString | Leave a comment

macOS 13:スクリプトエディタで、テンプレートから新規作成した書類を破棄も保存もできない

Posted on 11月 22, 2022 by Takaaki Naganoya

macOS 13.1Betaで地味でうっとおしく、わずらわしく嫌がらせとしか思えないバグが1つ。スクリプトエディタでテンプレートから新規作成したAppleScriptが、ファイル保存も破棄もできない状態になっています。

普通に新規作成したScriptも、デフォルトでiCloud Driveに自動保存され、破棄できなかったのでiCloud Drive上のファイルを削除したら、スクリプトエディタ上の名称未設定書類を破棄できるようになりました。

作業するたびに画面上に保存も破棄もクローズもできないゾンビ状態のスクリプトエディタ書類がたまっていくのですが、これはどういう検証をしたらこういう状態になるんだか。

保存も破棄もできないスクリプトエディタ書類をGUI側からいろいろ確認してみたところ、デフォルトの保存先が「アプリケーション」フォルダになっており、それで一時ファイルも作れず、保存もできない状態になっているようです。

もう少し試して、デフォルト保存先を「アプリケーション」以外のユーザーディレクトリのどこか(デスクトップとか)に指定したら、複数あったゾンビ書類は破棄できるものも出てきたのですが、このデフォルト保存先フォルダをいろいろいじくらないと破棄できないとかいうのは、正直ダメすぎる動作だと思います。

Posted in Bug | Tagged 13.0savvy Script Editor | Leave a comment

macOS 12.6.1、組み込みAppleScript実行環境の「script objectで分離したハンドラが呼べない」問題が解消?

Posted on 10月 12, 2022 by Takaaki Naganoya

macOS 12.6.1がアップデートして12.6.1になるというわけのわからないバージョン番号の採番ルールが展開されている今日このごろ。

macOS 12の初期において、Shortcuts.appやCotEditor内部のAppleScript実行環境において、script objectで論理分割した中にあるハンドラを呼べない という問題が確認されました。ただし、macOS 12.6.1で気づいたということであって、もう少し前のバージョンでこの変更が加わっていた可能性もあります。

ハンドラ呼び出しの範囲がscript objectを超えられないというわけで、CotEditor PowerPackの作成時に大幅にScriptを書き換える必要があって手間がかかった記憶があります。

AppleScript基礎テクニック集25巻にて「CotEditorのメニューScriptとShortcuts.appでは対策が必要」と書こうとして、念のために実際にmacOS 12.6.1の上でCotEditor v4.3.6で確認したところ、動きました。Shortcuts.appでも同様にscript object内部のハンドラを外部から呼び出せるようになっていました。

# 慌てて、書籍の方を書き換えました

各プログラム側で何かそんなマイナーな問題への対策を行ったような雰囲気はなかったので、OS側の実行モジュール(osascript?)で対策を行ったような雰囲気があります。ただ、Appleがリリースノートを一切出さないので、確認のしようがありません(ものすごく不信感しかないので、リリースノートは出してほしいなー。まさか、詳細なリリースノートを出さないことで、クラッカーへの情報流出を防止できている、とか現状を肯定的に捉えているのだろうか)。

Posted in Bug | Tagged 12.0savvy CotEditor Shortcuts Shortcuts Events | Leave a comment

macOS 12.5.1、11.6.8でFinderのselectionでスクリーンショット画像をopenできない問題

Posted on 8月 22, 2022 by Takaaki Naganoya

β版も出ないで唐突にリリースされたmacOS 12.5.1および11.6.8において、Finderのselectionでスクリーンショット画像を取得し、Finderにopenコマンドを送ってLaunch Serviceまかせでオープンすると、「……を表示するためのアクセス権がないため、開けませんでした。」というメッセージが表示され、画像がオープンされないという問題が報告されています。

tell application "Finder"
	open selection
end tell

たしかに、Finderまかせでアプリケーション無指定でファイルオープンさせるのは「楽」なのですが、もしもこれが「スクリーンショット画像を装った実行ファイル」への対処だったりすると、バグとも言い切れないような印象を受けます(何の問題なのかが報告しづらいです)。

いろいろ確認してみると、スクリーンショットであることを示すメタデータ、

kMDItemIsScreenCapture                 = 1

が付いている場合に、このアクセス権がないというダイアログが表示されるようです(他の因子もあるかも???)。

me@myMac ~ % mdls /Users/me/Pictures/as\ runtimes.jpeg 
_kMDItemDisplayNameWithExtensions      = "as runtimes.jpeg"
kMDItemBitsPerSample                   = 24
kMDItemColorSpace                      = "RGB"
kMDItemComment                         = "Screenshot"
kMDItemContentCreationDate             = 2022-08-21 01:51:41 +0000
kMDItemContentCreationDate_Ranking     = 2022-08-21 00:00:00 +0000
kMDItemContentModificationDate         = 2022-08-21 01:51:41 +0000
kMDItemContentModificationDate_Ranking = 2022-08-21 00:00:00 +0000
kMDItemContentType                     = "public.jpeg"
kMDItemContentTypeTree                 = (
    "public.jpeg",
    "public.image",
    "public.data",
    "public.item",
    "public.content"
)
kMDItemDateAdded                       = 2022-08-21 01:51:41 +0000
kMDItemDateAdded_Ranking               = 2022-08-21 00:00:00 +0000
kMDItemDisplayName                     = "as runtimes.jpeg"
kMDItemDocumentIdentifier              = 0
kMDItemEXIFVersion                     = "2.2.1"
kMDItemFSContentChangeDate             = 2022-08-21 01:51:41 +0000
kMDItemFSCreationDate                  = 2022-08-21 01:51:41 +0000
kMDItemFSCreatorCode                   = ""
kMDItemFSFinderFlags                   = 0
kMDItemFSHasCustomIcon                 = (null)
kMDItemFSInvisible                     = 0
kMDItemFSIsExtensionHidden             = 0
kMDItemFSIsStationery                  = (null)
kMDItemFSLabel                         = 0
kMDItemFSName                          = "as runtimes.jpeg"
kMDItemFSNodeCount                     = (null)
kMDItemFSOwnerGroupID                  = 20
kMDItemFSOwnerUserID                   = 504
kMDItemFSSize                          = 259097
kMDItemFSTypeCode                      = ""
kMDItemHasAlphaChannel                 = 0
kMDItemImageIsScreenshot               = 1
kMDItemInterestingDate_Ranking         = 2022-08-22 00:00:00 +0000
kMDItemIsScreenCapture                 = 1
kMDItemKind                            = "JPEGイメージ"
kMDItemLastUsedDate                    = 2022-08-22 05:31:24 +0000
kMDItemLastUsedDate_Ranking            = 2022-08-22 00:00:00 +0000
kMDItemLogicalSize                     = 259097
kMDItemOrientation                     = 1
kMDItemPhysicalSize                    = 262144
kMDItemPixelCount                      = 1003255
kMDItemPixelHeight                     = 1073
kMDItemPixelWidth                      = 935
kMDItemProfileName                     = "Cinema HD Display"
kMDItemResolutionHeightDPI             = 72
kMDItemResolutionWidthDPI              = 72
kMDItemScreenCaptureGlobalRect         = (
    15,
    25,
    935,
    1073
)
kMDItemScreenCaptureType               = "window"
kMDItemUseCount                        = 6
kMDItemUsedDates                       = (
    "2022-08-20 15:00:00 +0000",
    "2022-08-21 15:00:00 +0000"
)

ただ、これがFinderの問題なのかといえば、Finder上でファイルをダブルクリックしてデフォルトのアプリケーションでオープンさせるという動作はできるので、Finderのバグと言いにくい。

AppleScriptの問題なのかといえば、個別にオープンするアプリケーションを指定すれば問題は起こらないので、問題として報告しにくい。

Launch Serviceの問題なのかといえば、Launch Serviceそのものの問題とも言えない。

Apple内の複数チームにまたがる「複合要因」による障害というのは、Appleのチーム間の調整がとぼしいことにより、問題が顕在化したまま治らない傾向があります。ユーザー側もこの問題を「バグ」として報告しにくいものがあります。

Finderにアプリケーション・ファイルをオープンさせるとアプリケーションを起動できてしまうという、Sandboxの「穴」をふさいだのではないか、という見立てもあるわけですが、正直よくわかりません。

少なくとも、これらのバージョンのOSではこういう動作を行うよ、という情報をユーザー間で共有するぐらいしか「できること」がなさそうに見えます。

個人的には、こういう処理はしないので「そうなの??」ぐらいの印象でしたが、ちょっとしたAppleScriptをコピペで書いて、さまざまなツールから起動するだけという種類のScripterはよく利用する記述のようなので、不満を感じる内容のようです。

Posted in Bug news | Tagged 11.0savvy 12.0savvy | Leave a comment

スクリプトエディタにAS的な脆弱性、実行専用で書き出したScriptの「プレビュー」にソース情報残る

Posted on 7月 19, 2022 by Takaaki Naganoya

macOS 12.5上のスクリプトエディタで、バンドル形式のAppleScript書類を「実行専用」で書き出してみたところ、Finderのファイルプレビューで中身が見えますね(^ー^;;;

これを脆弱性と言わずに何と言うのだろーか? Apple純正のスクリプトエディタで「実行専用」で書き出すと、Finderプレビューで内容が読めてしまうというのは。

重要なScriptについては、Script Debuggerで書き出すことをおすすめします。


▲スクリプトエディタで内容を読めない「実行専用」形式で書き出した書類なのに、Finderプレビューでソース情報が見える

Posted in Bug | Tagged 12.0savvy Script Editor | Leave a comment

macOS 12.5RC(21G69)、一定以上の長さのapplescript:// URL Linkを受け付けない???

Posted on 7月 14, 2022 by Takaaki Naganoya

毎回毎回、何かかしら嫌がらせをブチ込んでくるmacOS 12.5シリーズ、RC(21G69)で「applescript://」Custom URL Linkが一定以上の長さになると無視されることが判明しました。

これは、本Blogなどに掲載しているURLリンク入りのプログラムリストの機能を無効にするものです。

この動作は、macOS 10.15のPDFViewで行った嫌がらせと同じ仕様です。さんざん文句を言ったところ、Preview.app上でのURLイベントクリックについてはStop、他のアプリケーションのWindow上のPDFViewについては嫌がらせをしなくなったという経緯があります。

自分も本件はAppleにバグレポートしますが、Appleはレポート件数で重要かそうでないか判断するので、本Blogをご覧の方々にもAppleへのレポートをお願いしたいところです。

–> Demo Movie of macOS 12.5RC applescript:// URL Link ignorance

Posted in Bug | Tagged Safari Script Editor | 4 Comments

macOS 12.5(21G69)がリリースされた????

Posted on 7月 13, 2022 by Takaaki Naganoya

macOS 12.xのBetaではいろいろ楽(苦)しませていただいています。ええもう本当に。

本日ダウンロードできるようになったmacOS 12.5(21G69)がBetaなのか正式リリースなのか不明ですが(Release候補、という噂が)、いまのところAppleScriptの実行が封じられたり、Dockに登録したアイコンにファイルをドラッグ&ドロップで2・3回渡すとファイルがオープンできなくなるといったBeta 5の不具合には遭遇してはいません。

Apple側はRelease Notesを出すわけでもなく、説明も一切しないので、何を基準に内容を判断すべきなのかよくわかりません。

macOS 12.3の頃のβでもさんざんやらかしてくれましたし、macOS 12.5 betaでもやらかしました。しばらくβに付き合うのは勘弁していただきたい。これだけ大規模な問題のあるBetaをノーチェックで出すのは(頭が)どうにかしている、としか言えません。

macOS 10.13の「Beta段階ではまともに動いていたのに、Release段階で廃墟リリース」というやらかし。10.15の「夏の間にゴミクズ化してまともに動かない」とか、macOS 11.0の「(機能によっては)Apple Siliconで10年前のIntel Macの70倍遅い」(12.xで直りましたが)とかいう、目の覚めるようなクズOSアップデートの数々。

社内でダメなものにダメと言わないから、こんなものを出し続けるのではないでしょうか? 社内でもチェックぐらいはしてほしいですよね。これで明らかになったのは、Apple社内でmacOSのβ版をまるっきり使っていない、まったく試していないということです。

■表 macOS 12.x上で発生した(している)AppleScript系のバグと解決状況一覧

発生バージョン 内容 解決したか? 状況説明
12.x スクリプトエディタのコンテクストメニューで、絵文字を含むフォルダ/ファイルの内容が(複数階層下では)重複して表示される No
12.3 AppleScript書類をオープンできない Yes
12.2? Scriptを実行すると「表があふれました」というエラーが表示される ????
12.2? インストールされていないアプリケーションを操作するScriptをオープンできない Yes  12.5では保存されたままの内容でオープンできている
12.3 Finder上のselection itemsをオープンした際に、作成したアプリは起動されるがファイルはオープンされない Yes macOS 12.3.1/12.4beta1で解消
12.5beta5 アプリケーション同士のイベントのやりとりが2回以上発生するとエラー-609になる Yes ??? 12.5にて解消? 確認中
Posted in Bug | Tagged 12.0savvy | Leave a comment

【緊急】macOS 12.5 beta5に凶悪なバグが発生。猛毒入りアップデートなのでアップデートしてはいけない

Posted on 7月 6, 2022 by Takaaki Naganoya

本日リリースされたmacOS 12.5beta 5で大問題が発生しています。Scripterは本アップデートに絶対にアップデートしてはいけません。

# macOS 12.xの環境が複数あって、まともに動作しない状態にしてもダメージがなければ、macOS 12.5 beta 5を体験してもよいでしょう。イキュラス・キオラ(いやな記憶を消す魔法)

# macOS 12.5正式リリース版では修正されたようです。

KeynoteでもCotEditorでもいいのですが、AppleScriptから(Script Editor、Script Debuggerなど実行環境を問わずに発生)GUIアプリケーションを操作すると、1・2回目は正常に動くのですが、3回目あたりから(同じ処理であっても)エラー -609になります。

一部で「AppleScriptユーザーにだけ影響があるのでは?」と言われましたが、全ユーザーに影響があります。

Dockの上に登録しているアプリケーションのアイコンに、書類をドラッグ&ドロップする操作を3回繰り返しただけでオープンできなくなりますし、Finder上で書類をダブルクリックないしCommand-Oでオープンしても、3回目からはエラーになります(Finderの再起動が必要に)。

今朝方から、Switch Controlでいつも画面上に出しているフローティングパレットからSafariのコントロールができなくなっていて、「Webサイト側の仕様が変わったのか?」などと思っていたのですが、CotEditorもKeynoteもみんなこの状況に陥っていました。

どうも、AppleEventのやりとりを監視しているようで、プロセス間通信が同じアプリケーション間で発生すると2〜3回目からエラー -609になります。

自社製品を使っていない管理職が「こうしろ」とてきとーに仕様を決めているようにしか見えないのですが(ーー;;;;

–> See macOS 12.5 beta 5 bug example movie 1

–> See macOS 12.5 beta 5 bug example movie 2

これまでにも、AppleはOS X 10.7あたりでURLイベント経由で実行されたAppleEventについて、複数のアプリケーション操作をともなう動作を行なったときには、問答無用で処理を止めるといった変更を、Scripterに何の説明もなく行ってきました。

このURLイベント系の場合には「セキュリティ向上」という話の枠組みの中で「仕方ないかな」という納得感はありましたが、このmacOS 12.5 beta 5の「3ステップ爆弾」(Three steps bomb)についてはまったく納得できません。

この仕上がりでリリース(β版だけど)する連中の気が知れません。使っていると、ムカムカします(Dockへの書類のドラッグ&ドロップも3回目以降はエラーになります。本当に使って試したのか疑問な仕上がり)。macOS 13の出来が不安になるような出来です。macOS 10.13のときにも盛大にやらかしたので、macOS 13という名前で不吉なものを感じてしまいます。

# macOS 12.5正式版では修正されたようです。リリースノートも何もないので、Apple側がこのどえらいバグをどこまで認識しているのか不明ですけれども

Posted in Bug | Tagged 12.0savvy | Leave a comment

iWork Appsがv12.1にアップデート

Posted on 6月 22, 2022 by Takaaki Naganoya

v12で発生していた、新規書類をAppleScriptから保存できないバグは修正されていません。

Posted in Bug | Tagged 10.15savvy 11.0savvy 12.0savvy Keynote Numbers Pages | Leave a comment

Pages v12に謎のバグ。書類上に11枚しか画像を配置できない→解決

Posted on 5月 23, 2022 by Takaaki Naganoya

Pages v12に謎のバグを見つけました。Pagesでは書類上に任意の画像を配置できるわけですが、11枚目までは配置できるものの、12枚目を配置できません。実際には120枚ほど画像を用意してテストしていたので、12枚目が配置できればそれでOKかと言われれば、ぜんぜん不十分です。

→ OSの再起動を含む、追試を何回か行ってみたところ、その後このままでは画像の貼り込みができなくなっていました。そして、画像ファイル貼り込み前にパスの文字列をaliasにcastしたところ、問題なく120枚貼り込めました。

–> Watch Movie

以前にも、Keynoteに「特定サイズ以上の表を作るとエラーになる」とかいったバグが発生していましたが、この12個目を配置するとエラーになるというのも、内部で何か不可思議なリミッターを設けているように見えます。

スクリプトエディタ、Script Debuggerの両方で発生しています。おそらく、ランタイム環境が何であるかはこの問題に影響を与えていません。

macOS 10.12以降で、日本語環境限定で発生しているバグで有名なものに、「日本語入力Input Method経由でファイル名を入力している最中に、不必要な不可視文字が入力されてしまい、これがファイル処理を妨げる危険性がある」というものがありますが、これらの画像のファイル名をチェックしたところ、そうした危険な不可視文字は混入していませんでした。

# こうした、複数チームの担当製品の間で発生しているバグは、どこが担当してバグを調査するということはないようです。組織の細分化にともない、こうした組織境界面でバグが発生するととたんに無責任になるのがいまのAppleです(組織の構造上の問題です)

ちなみに、GUI経由で画像をPages書類上に配置してみたところ、12枚以上配置できました。Pagesにそのような上限が存在しているわけではないようです。

Pages書類(バンドル書類)内で何かファイル名の重複のようなものが発生したのかと考え、別の画像を(番号をずらして)指定してみましたが、同様の枚数を配置した時点でエラーになりました。

内部で発生している(していた)別のエラーを発生させないように、謎のリミッターをかけていた可能性もありますが、その必然性がよくわかりません。

AppleScript名:指定の画像をPagesに順次貼り込む(12枚で止まってしまう!).scpt
set baseName to "book24_"
set baseFol to (choose folder) as string

set pMax to 10

(*
tell application "Pages"
  –set newDoc to make new document
  
  tell front document
    set dCount to count every page
    
    repeat with i from (dCount + 1) to pMax
      make new page
    end repeat
    
    set newDCount to count every page
  end tell
end tell
*)

repeat with i from 1 to 120
  set aFN to baseFol & baseName & makeFN(i, 4) of me & ".jpg"
  
tell application "Pages"
    tell front document
      tell page i
        set newItem to make new image with properties {file:aFN}
        
tell newItem
          set position of it to {0, 0}
          
set height of it to 843
          
–set position of it to {-1, 0}
          
set locked to true
        end tell
      end tell
    end tell
  end tell
end repeat

on makeFN(aNum, aDigit)
  set aText to "00000000000" & (aNum as text)
  
set aLen to length of aText
  
set aRes to text (aLen – aDigit + 1) thru -1 of aText
  
return aRes
end makeFN

★Click Here to Open This Script 

Posted in Bug news | Tagged 10.15savvy 11.0savvy 12.0savvy Pages | Leave a comment

iWorkアプリケーションv12に共通のバグ? 新規ファイルの保存ができない

Posted on 5月 23, 2022 by Takaaki Naganoya

Apple iWorkアプリケーション(Keynote、Pages、Numbers)の最新バージョンv12.0において、共通のバグがあるのではないか? と見ています。もちろん、見ているだけでなくAppleにバグレポートもしています。

症状は、新規作成した書類を「保存できない」というものです。

以前にも、PDFをexportできないという致命的なバグが発生していましたが、今回のも同様のメカニズムで発生しているものと見ています。つまり、「Appleが自社OSに設定したセキュリティ機能によって、自社アプリであるKeynote、Pages、Numbersが自家中毒を起こしている」という状態です。

自分の勘違いだとよいのですが….

あとは、Numbersのsaveコマンドをよく見てみると、書類フォーマットに「as Numbers」というenumがあるのですが、これはAppleScriptの処理系では「number」の複数形として認識されてしまうので、この予約語自体に無理があります。ここは、「as Numbers format」といった予約語に変えるべきです。

AppleScript名:Keynoteで新規書類作成して指定名称で新規保存.scpt
set dtPath to (path to documents folder) as string
set uuidStr to (do shell script "uuidgen") & ".key"
set savePath to dtPath & uuidStr

tell application "Keynote"
  set nDoc to make new document with properties {document theme:theme id "Application/21_BasicWhite/Standard", width:1024, height:768}
  
save nDoc in file savePath as Keynote
end tell

★Click Here to Open This Script 

AppleScript名:Pagesで新規書類を作成して指定名称で新規保存.scpt
set dtPath to (path to documents folder) as string
set uuidStr to (do shell script "uuidgen") & ".pages"
set savePath to dtPath & uuidStr

tell application "Pages"
  set nDoc to make new document with properties {document template:template id "Application/Blank/ISO"}
  
save nDoc in file savePath as Pages Format
end tell

★Click Here to Open This Script 

AppleScript名:Numbersで新規書類作成して指定名称で新規保存.scpt
set dtPath to (path to documents folder) as string
set uuidStr to (do shell script "uuidgen") & ".numbers"
set savePath to dtPath & uuidStr

tell application "Numbers"
  set nDoc to make new document
  
save nDoc in file savePath as numbers –change "Numbers" word into "numbers format" because "numbers" is alredy registered as "list of number" or "every number"
end tell

★Click Here to Open This Script 

Posted in Bug news | Tagged 10.15savvy 11.0savvy 12.0savvy Keynote Numbers Pages | Leave a comment

macOS 12.4beta1で「GUIなしツールから起動したAppleScriptでUTIを取得できない」バグ?

Posted on 4月 18, 2022 by Takaaki Naganoya

スクリプトメニューやService Stationなど、「メニューやウィンドウを持たないGUIなしツール」がたくさんmacOS環境にありますが、macOS 12.4上ではこれらのAppleScript起動ツールから起動したAppleScriptから、UniformtypeIdentifiers.frameworkを用いたUTIの取得をブロックされているようです。

スクリプトメニューで実行を確認した(途中までで実行がブロックされてしまった)AppleScriptを、スクリプトエディタ上で実行したところ、問題なく実行されます。ちなみに、内容は選択した画像ファイルをPixelmator Proで超解像処理してクリップボードに設定する(コピーする)という「おかわいらしい」内容のものです。

Service Stationは、コンテクストメニューからのAppleScript実行を可能にするAppleScript実行ツールですが、これについてもしかるべきハンドラを書いて同じAppleScriptを実行させるようにしてみたものの、UTIの取得をブロックされるようです。

→ 追試で、Terminal.app上からosascript経由で実行してみたところ、UniformtypeIdentifiers.frameworkの呼び出しに失敗することが判明

明示的にMain threadで実行しないとダメ???>UniformtypeIdentifiers.framework

AppleScript名:🟧選択中の画像を超解像💝処理してコピー.scpt
—
–  Created by: Takaaki Naganoya
–  Created on: 2021/03/25
—
–  Copyright © 2021 Piyomaru Software, All Rights Reserved
—

use AppleScript version "2.8" — Yosemite (10.10) or later
use framework "Foundation"
use framework "UniformtypeIdentifiers"
use scripting additions

property |NSURL| : a reference to current application’s |NSURL|
property NSArray : a reference to current application’s NSArray
property NSPredicate : a reference to current application’s NSPredicate
property NSURLTypeIdentifierKey : a reference to current application’s NSURLTypeIdentifierKey

set acceptUTI to "public.image"

set aFile to choose file
(*
tell application "Finder"
  set aFile to first item of (selection as alias list)
end tell
*)

–set aUTI to getUTIFromFile(aFile) of me –選択ファイルからUTIを
–display dialog aUTI
–if aUTI is equal to missing value then return

–set uRes to filterUTIList({aUTI}, acceptUTI) of me –選択ファイルのUTIが、受付可能UTIに含まれるかどうかチェック
–if uRes is equal to {} then return –選択したファイルが画像ではなかった

–掃除
tell application "Pixelmator Pro" to close every document without saving

–取得した画像を超解像処理してコピー
tell application "Pixelmator Pro"
  try
    open aFile
  on error
    close every document without saving
    
return
  end try
  
  
tell front document
    with timeout of 3000 seconds
      super resolution
    end timeout
  end tell
end tell

tell application "Pixelmator Pro"
  tell front document
    select all
    
copy
    
close without saving
  end tell
end tell

on getUTIFromFile(aFile)
  set aPath to POSIX path of aFile
  
  
set aWS to current application’s NSWorkspace’s sharedWorkspace()
  
set pRes to (aWS’s isFilePackageAtPath:aPath) as boolean
  
if pRes = false then
    set superType to (current application’s UTTypeData)
  else
    set superType to (current application’s UTTypePackage)
  end if
  
  
set pathString to current application’s NSString’s stringWithString:aPath
  
set aExt to (pathString’s pathExtension()) as string
  
  
set aUTType to current application’s UTType’s typeWithFilenameExtension:aExt conformingToType:(superType)
  
  
set aUTIstr to aUTType’s identifier() as string
  
return aUTIstr
end getUTIFromFile

–UTIリストが指定UTIに含まれているかどうか演算を行う
on filterUTIList(aUTIList, aUTIstr)
  set anArray to NSArray’s arrayWithArray:aUTIList
  
set aPred to NSPredicate’s predicateWithFormat_("SELF UTI-CONFORMS-TO %@", aUTIstr)
  
set bRes to (anArray’s filteredArrayUsingPredicate:aPred) as list
  
return bRes
end filterUTIList

★Click Here to Open This Script 

Posted in Bug news UTI | Tagged 12.0savvy Pixelmator Pro Service Station | Leave a comment

macOS 12.3上でFinder上で選択中のファイルをそのままオープンできない件

Posted on 3月 28, 2022 by Takaaki Naganoya

macOS 12.xはAppleScriptの処理系に対して、主にセキュリティ面でいろいろ修正が加わっています。

この修正は、セキュリテイを「高める」という名目のもとに行われているのですが、セキュリティ面での課題さえ片付けられれば、その他に悪影響を及ぼしていたとしても「知ったことではない」というのがAppleの態度です。そして、その問題に対してユーザー側から文句が出てこなければ、そのままです。

–> View Demo Movie

とくに、深謀遠慮な考えとか、素晴らしい見通しとかはなく、「上から言われたからやっている」というやっつけ仕事感を感じます。

AppleはSteve Jobsが作り上げた秘密警察みたいな組織になっていて、チーム間の権限の切り分けが病的なまでに行われており、チームが違うと会社が違うぐらいの隔たりが発生しています。それは、Steve Jobsという「垣根を無視して横断して歩く異物」がいたから成立する組織であって、官僚化、硬直化が絶賛進行中といったところです。

話を戻しますが….たしかに、そうした機能的なアップを伴わない修正で何も問題(副作用)が起こらなければ「セキュリティが高まったのでよかったね」という美談になるわけですが、たいていの場合にはそうなりません。意図していなかった箇所に副作用が生じます。

あるいは、セキュリティのポリシー同士が実は矛盾を生んでいる、という状況になっていて、Aという問題とBという問題を解決した結果、あらたにCというもっと巨大な問題が発生する、とかいった状況は容易にあり得るわけです。それでも、各担当者は誠意をもってその仕事に取り組んでいるわけで、こうした「人間的に尊敬できて素晴らしい能力を持ったスタッフ」による「熱心かつ誠意あふれる真摯な仕事」が合成された結果、「見たことも聞いたこともない間抜けな理由から生じる猛毒にまみれた悪意」が合成されてしまうことが、現在のTim CookのAppleの下ではあり得るのです。

「Finder上で選択中のファイルをそのままオープンする」

というのは、ここ数年というよりもAppleScriptを覚えたてのころにちょろっと書いて実行したぐらいであり、実際のところ「それがどうした?」というレベルの処理です。

AppleScript名:Finder上で選択中のファイルをオープン.scpt
–macOS 12.3でエラーになる処理
tell application "Finder"
  open selection
end tell

★Click Here to Open This Script 

Finder上で選択したファイルに対する処理は、きょうび何かのアプリケーションに渡さなくてもAppleScriptだけで処理できてしまうことが多いということもありますし(画像とか)、選択されたファイルをそのままオープンするという「1=1」みたいな処理はやりません。

選択したフォルダの中をすべてSpotlight経由で走査して、指定の形式のファイルだけをリストアップして、順次処理するようなものになっています。

ただ、10年たっても20年たっても「1=1」みたいな処理しかしていない人がけっこういて驚かされると同時に、意外なところで(Adobeのアプリケーションでアプリケーション間の連携に)使っていたりして、修正されないと困るケースは多いようです。

Shane StanleyがLateNight Softwareのフォーラムに投稿した、こうした処理への迂回Scriptがありました。さすがです。

Finder経由で書類のオープンと、その書類を作成したアプリケーションの起動を促すという、macOS 12.3で問題が起こっている処理を、Cocoaの機能を用いることで迂回してしまおうというものです。

ただ、そのままではFinder上で指定したファイルを1つオープンするという実証コードのレベルのものだったので、複数のファイルが選択されたものをオープンするように書き足してみました。

AppleScript名:macOS 12.3でFinder上の選択中のファイルをオープン.scpt
—
–  Created by: Shane Stanley
–  Created on: 2022/03/24

–  Modified by: Takaaki Naganoya
–  Modified on: 2022/03/27
—
— macOS 12.3でFinder上のselectionをただopenすると、作成したアプリケーションは起動するが、書類はオープンされないバグ
– に対処したもの。複数ファイルの選択状態を処理する場合がほとんどなので、若干追記
– ただ、漫然と選択したファイルをオープンするという処理はやっていないので(なにがしかの処理を自前でやるので)

use framework "AppKit"
use framework "Foundation"
use scripting additions

tell application "Finder"
  set aSel to selection as alias list
  
if aSel = {} then return
end tell

openFiles(aSel) of me

on openFiles(pathList as list)
  repeat with i in pathList
    set j to contents of i
    
openFile(POSIX path of j) of me
  end repeat
end openFiles

on openFile(thePath as string) — POSIX path
  set ws to current application’s NSWorkspace’s sharedWorkspace()
  
set theURL to current application’s |NSURL|’s fileURLWithPath:thePath
  
ws’s openURL:theURL
end openFile

★Click Here to Open This Script 

Posted in Bug file news URL | Tagged 12.0savvy Finder | Leave a comment

macOS 12.x上のAppleScriptのトラブルまとめ

Posted on 3月 20, 2022 by Takaaki Naganoya

現在進行形で発生しているAppleScript系のトラブルについてまとめておきます。macOS 12になって、AppleScriptの処理系の根幹部分にいろいろ手が加わっており(だったら機能追加してほしい気がする)、不具合なのかセキュリティポリシーとの不整合なのか(そんなもん、社内で調整してほしい)よくわからない問題がいろいろ生じています。

Apple自身が機能ごとのリリースノートを出さないようになり、こういうときに困ります。macOS 12.xで見られた不具合の中には、かなりApple自身の邪悪なポリシー運用の結果として顕在化したものもあるので、明文化できないのでしょうか。何をやった結果として発生した問題である、と書いてしまうと「なんでAppleはそんな邪悪なことをやっているの?」と世界中からツッコミを受けるに違いありません。

問題1:Scriptを実行すると「表があふれました」と謎のエラーが表示される(解決したか不明)

macOS 12.3で解消されるか? と見ていましたが、完全に対処できている感じではない様子。
→ 関連情報:SkimのAppleScriptサポート機能にバグ
→ その後、この「表があふれました」エラーには遭遇していないので、問題は解決されたのでしょう。ただし、油断しているとmacOSのマイナーアップデート時に何かやらかす可能性があります。

問題2:12.3betaで発生した「AppleScript書類をオープンできない」問題(解決)

これについては、12.3Release版では発生していないもよう。息が止まるかと思うほど焦りました。電子書籍1つ作るにしても、手間のかかる作業の多くをAppleScriptで自動化。そうでなければ、そんなにポンポン書けません。

問題3:インストールされていないアプリケーションを操作するScriptをオープンできない(未解決)

ただし、そのMacにインストールされていないアプリケーションを操作するScriptをオープンしようとすると、これまでは「どのアプリケーションですか?」とユーザーに問い合わせしていましたが、これが一律にエラーになるようです。
→ macOS 12.5 beta5において、インストールされていないアプリケーションに対するAppleScriptをオープンした場合には、オリジナルのままオープンされ、コンパイル(構文確認)すると書き換えられるといった動作を行うことを確認しています

問題4:悪意を持って作られたAppleScriptバイナリ(アプレット?)のセキュリティ上の問題(CVE-2022-22626)(解決)

悪意を持って作成したAppleScriptバイナリは予期しない強制終了、ないしはプロセスが確保していたメモリを暴露(他のプロセスから読み書き&実行できてしまう?)する問題があったとのこと。

悪意を持って作ったことがないのと、ランタイムプログラムのメモリ処理の問題のようなので(???)、Scriptを書いている側には「そんなのあったの?」という話です。

個人的には、AppleScriptをアプレット化して動かすことは少なく、Script DebuggerかScript Menuで動かしている場合がほとんどです。

問題5:Finder上のselection itemsをオープンした際に、作成したアプリは起動されるがファイルはオープンされない問題

Finder上で選択したファイルを、指定のアプリケーションや、各ファイルを作成したアプリケーションで開かせようとした場合に、アプリケーションのプロセスは起動するものの、指定の書類はオープンされないという問題。macOS 12.3上で発生した新たな問題の様子。

先に対象のアプリケーションを起動しておくとファイルオープンの処理は通るというケースもあれば、そうではないというケースも。
→ macOS 12.3.1/12.4beta1で解消

問題6:macOS 12のスクリプトエディタで、Context Menu機能にバグ(未解決)


macOS 12のスクリプトエディタで、Script Assistantとして/Library/Scriptsに入れているAppleScriptをコンテクストメニューから呼び出せるようになっていますが、そこにカスタムScriptを入れて呼び出すと(絵文字入りファイル名)コンテクストメニュー上に重複した項目が表示されるというバグです。
→ 途中で「直った」という連絡をもらったのですが、まったく直っていませんでした。Appleのエンジニアは字が読めないか、目が見えないのでしょう。最低限、字が読めないとバグは取れないですよね?
→ macOS 14で解決

問題7:アプリケーション同士のイベントのやりとりが2回以上発生するとエラー-609になるバグ

macOS 12.5 beta 5で発生した前代未聞のバグ(?)。

現在のTim Cook体制下で狙っていると見られる「セキュリティ確保のためには動かないコンピュータが最高!」の思想を体現する機能の実現のためか、こうしたアプリケーション同士のイベントの送信をカウントしているようです。これがバグなのか意図したものなのかは不明ですが、カウントして準備を始めたということだけは言えるでしょう。

ただ、Dockに登録したアプリケーションに書類をドラッグ&ドロップすると3回目からはエラーになりますし、FinderのToolbarに登録したアプリケーションのアイコンを3回クリックしてもエラー-609になります。とうてい、まともな状態とは言えません。

macOS 12.5でこの機能がオンになるものとは思っていませんが、Apple側が何かよからぬ企みを行っていることだけは明らかです。

「地獄への道は善意で敷き詰められている」(The road to hell is paved with good intentions)という言葉があります。セキュリティ強化の美名のもとにこれが実現したとき、コンピュータが役立たずの置物になってしまいます。Tim Cook CEOによる最悪の施策として記憶されることでしょう。頭が悪すぎです。
→ macOS 12.5(21G69)で解決???? Release Notesに記載されてもいないので不明

Posted in Bug news | Tagged 12.0savvy | Leave a comment

ドラッグ&ドロップ機能の未来?

Posted on 3月 17, 2022 by Takaaki Naganoya

目下、Tim Cook体制のもと「セキュリティ至上主義」が掲げられ、機能の有用性とセキュリティ(機能を制限、削除する)をてんびんにかけると、後者が重視されるようになっています。

そんな中、ドラッグ&ドロップの機能についてはいろいろ制約を受けたり、一部で使えなくなっていくのではないかという「懸念」を持っています。

実際、macOS 10.12以降、AppleScriptドロップレット(ファイルのドラッグ&ドロップを受信して動作するAppleScriptの実行プログラム)がOS側のセキュリティ機能による動作の影響(xattr)を受け、まっとうな処理方法では期待されるファイル処理ができなくなっています(回避策はあります)。

このため、macOS上でもFinder上でiOS並みのファイル操作、ドラッグ&ドロップでファイル/フォルダを移動させる程度の処理しか許可されず、アプリケーション側にまとめてファイルを渡すような処理ができなくなる「かも」しれません。

このドラッグ&ドロップによるファイルの一括指示の機能を維持するために、「display drop dialog Script Library」というライブラリをedama2氏との協力のもと(自分は要望を出したぐらいで作ったのはedama2氏)、配布しています。

アラートダイアログで指定のファイルタイプの書類のFinderからのドラッグ&ドロップを受け付けます。わざわざDropletを作らなくてもファイルのドラッグ&ドロップを受け付けるためには、こうしたインタフェースがないとまずいんじゃないか? という予測のもとに企画したものです。

目下、macOS 12.3でFinderに対してファイルのAppleScriptからオープン操作を行わせると、「creatorのアプリケーションは起動するもののファイルがオープンされない」という現象が発生しており(エラーダイアログが出る例があったり、出ない例があったり)、Apple社内でも整合性が取れていない状況のようです。

Appleとしては個別のテクノロジーについて発言したり、WWDCでも技術ではなくマーケティング的なセッションが増えて「見るべきものがない」状況になっていますが、こうした状況は好ましいものとは言えません。

Posted in Bug news | Tagged 12.0savvy | Leave a comment

macOS 12のスクリプトエディタで、Context Menu機能にバグ

Posted on 3月 4, 2022 by Takaaki Naganoya

「AppleScriptによるWebブラウザ自動操縦ガイド」に添付している「Piyomaru Context Menu Assistant」。

スクリプトエディタのコンテクストメニューからAppleScriptを呼び出せるスクリプトエディタの機能を利用して、macOS標準装備の貧相で使い物にならないScriptを全部捨てて、そのかわりに強力なものをインストールするものです。


▲macOS標準でインストールされている、Script Assistant。古い、使えない、役に立たないの3拍子


▲Piyomaru Softwareが書籍のオマケでご提供しているPiyomaru Script Assistant(macOS 10.14.6)


▲macOS 12.3 beta 5上で表示したPiyomaru Script Assistant。メニュー項目(≒ファイル名)が2重に表示されている(macOS 12.3 beta5)

このScript Assistantが、macOS 12.3 beta 5上でメニュー項目が重複して表示されてしまうという現象に遭遇しています。

これは、macOS側のAppleが作ったバグであります。

Posted in Bug | Tagged 12.0savvy | 1 Comment

macOS 12.3 beta 5、ASの障害が解消される(?)

Posted on 3月 2, 2022 by Takaaki Naganoya

macOS 12.3 beta 3/beta 4で発生していたAppleScriptの処理系全般にわたって発生していた障害が、beta 5で解消されたように見えます。

本Blogへのプログラムリスト掲載時に使っている「AS Publisher v1.8」(AppleScriptでAppleScriptを処理して掲載用のHTMLを生成するプログラム)自体が動作せず、Blogに投稿できない(横にある別Ver.OSのマシンでやればいいんですが)状況が続いていました。

本日配信されていたmacOS 12.3 beta 5で解消されたように見えます。手元にあるScriptが膨大すぎて、全数チェックするわけにもいきませんが、オープンできずにいたAppleScript書類はオープン/実行できています。

昨日リリースした書籍に掲載予定だったリストに動かないものがあって、掲載を見送る処理&使用しているプログラムの作者にお詫びのメールを送っていたのですが、なんのことはない、このbeta 3/4のバグのせいでした(beta 5にアップデートしたら何事もなかったように動いた)。

AppleScript書類をオープンできないとか実行できないといった「最悪レベルの問題」を起こさないことは確認できていますが、やっぱり「内部の表があふれる」的なエラーを出すScriptはまだあるようです。

macOS 11や10.15でそのようなエラーを起こす例を見なかったScriptなので、やはりmacOS 12環境に固有の問題が何かまだ残されているということなんでしょう。

macOS 12.3 beta 5、古めのMac OS X 10.2ぐらいの時期に書かれたAppleScript書類で、現在すでにOSにインストールされていない各種補助アプリケーションを呼び出しているものを、アプリケーション選択ダイアログを出さずに、いきなり「オープンできない」とダイアログを出して切り捨てる動作を行なっています。Script Debugger経由ではオープンできるため、依然として注意が必要です。

Posted in Bug news | Tagged 12.0savvy | 8 Comments

macOS 12.3 beta4、まだ直らないASまわりの障害

Posted on 2月 23, 2022 by Takaaki Naganoya

macOS 12.3 beta 3で発生した目が覚めるような不具合。本日、beta 4が出てきたものの、AppleScript書類をオープンできない(ものがある)とか、実行できない(ものもある)というなかなかハードな状況です。正直、macOS 12.2に戻したいデス(^ー^;;

ちょっと前にSkimで遭遇した「内部の表があふれました」エラーの問題がどうやら(Skim以外にも)存在していて、その解決を図ろうとして他の問題を引き起こしてしまったのではないかと推測しています。

どこか別のチームが引き起こした修正が影響を及ぼしているのかと思いきや……そうでもない雰囲気が(汗)

macOS 12.3がどの程度までbetaを出すのかわかりませんが、通例ではbeta 5ぐらいでReleaseするんじゃないでしょうか。ラスト1take?

少なくとも、常識的に考えれば3月にリリースするとか噂で言われている新ハードウェアの発売に合わせて(未発表なので詳細は知りませんが)、これらのハードウェア向けにmacOS 12.3をリリースするとかいう話なんじゃないでしょうか。

# macOS 12.2.2とかいった細かいバージョンアップで例外的に対応することも不可能ではないと思われますが、外野からではリリース番号のポリシーなどはよくわかりません

自分なら、当初取り掛かっていた問題解決をいったん引っ込めて、12.2と同等の状況に戻してリリースすることでしょう。一部の問題解決を目指して、より広範囲に問題を引き起こすのは得策ではありません。

正直、AppleScriptの処理系の安定性がここまで「揺らいだ」のは初めての出来事なので(Mac OS X 10.3.xで、自分が多用している「is in」演算子が動かないことに気づいた時には目の前が真っ暗になりました…「Newt Onジャマー」とか呼んで、いいかげんにしてくれよと思ってました)、正直困惑しています。

Posted in Bug news | Tagged 12.0savvy | Leave a comment

Post navigation

  • Older posts
  • Newer posts

電子書籍(PDF)をオンラインストアで販売中!

Google Search

Popular posts

  • 開発機としてM2 Mac miniが来たのでガチレビュー
  • macOS 15, Sequoia
  • 指定のWordファイルをPDFに書き出す
  • Pages本執筆中に、2つの書類モード切り替えに気がついた
  • Numbersで選択範囲のセルの前後の空白を削除
  • メキシカンハットの描画
  • Pixelmator Pro v3.6.4でAppleScriptからの操作時の挙動に違和感が
  • AdobeがInDesign v19.4からPOSIX pathを採用
  • AppleScriptによる並列処理
  • Safariで「プロファイル」機能を使うとAppleScriptの処理に影響
  • Cocoa Scripting Course 続刊計画
  • macOS 14.xでScript Menuの実行速度が大幅に下がるバグ
  • AppleScript入門③AppleScriptを使った「自動化」とは?
  • macOS 15でも変化したText to Speech環境
  • Keynote/Pagesで選択中の表カラムの幅を均等割
  • デフォルトインストールされたフォント名を取得するAppleScript
  • macOS 15 リモートApple Eventsにバグ?
  • AppleScript入門① AppleScriptってなんだろう?
  • macOS 14で変更になったOSバージョン取得APIの返り値
  • Keynoteで2階層のスライドのタイトルをまとめてテキスト化

Tags

10.11savvy (1101) 10.12savvy (1242) 10.13savvy (1391) 10.14savvy (587) 10.15savvy (438) 11.0savvy (283) 12.0savvy (212) 13.0savvy (194) 14.0savvy (147) 15.0savvy (132) CotEditor (66) Finder (51) iTunes (19) Keynote (117) NSAlert (61) NSArray (51) NSBitmapImageRep (20) NSBundle (20) NSButton (34) NSColor (53) NSDictionary (28) NSFileManager (23) NSFont (21) NSImage (41) NSJSONSerialization (21) NSMutableArray (63) NSMutableDictionary (22) NSPredicate (36) NSRunningApplication (56) NSScreen (30) NSScrollView (22) NSString (119) NSURL (98) NSURLRequest (23) NSUTF8StringEncoding (30) NSView (33) NSWorkspace (20) Numbers (76) Pages (55) Safari (44) Script Editor (27) WKUserContentController (21) WKUserScript (20) WKWebView (23) WKWebViewConfiguration (22)

カテゴリー

  • 2D Bin Packing
  • 3D
  • AirDrop
  • AirPlay
  • Animation
  • AppleScript Application on Xcode
  • Beginner
  • Benchmark
  • beta
  • Bluetooth
  • Books
  • boolean
  • bounds
  • Bug
  • Calendar
  • call by reference
  • check sum
  • Clipboard
  • Cocoa-AppleScript Applet
  • Code Sign
  • Color
  • Custom Class
  • date
  • dialog
  • diff
  • drive
  • Droplet
  • exif
  • file
  • File path
  • filter
  • folder
  • Font
  • Font
  • GAME
  • geolocation
  • GUI
  • GUI Scripting
  • Hex
  • History
  • How To
  • iCloud
  • Icon
  • Image
  • Input Method
  • Internet
  • iOS App
  • JavaScript
  • JSON
  • JXA
  • Keychain
  • Keychain
  • Language
  • Library
  • list
  • Locale
  • Localize
  • Machine Learning
  • Map
  • Markdown
  • Menu
  • Metadata
  • MIDI
  • MIME
  • Natural Language Processing
  • Network
  • news
  • Noification
  • Notarization
  • Number
  • Object control
  • OCR
  • OSA
  • parallel processing
  • PDF
  • Peripheral
  • PRODUCTS
  • QR Code
  • Raw AppleEvent Code
  • Record
  • rectangle
  • recursive call
  • regexp
  • Release
  • Remote Control
  • Require Control-Command-R to run
  • REST API
  • Review
  • RTF
  • Sandbox
  • Screen Saver
  • Script Libraries
  • sdef
  • search
  • Security
  • selection
  • shell script
  • Shortcuts Workflow
  • Sort
  • Sound
  • Spellchecker
  • Spotlight
  • SVG
  • System
  • Tag
  • Telephony
  • Text
  • Text to Speech
  • timezone
  • Tools
  • Update
  • URL
  • UTI
  • Web Contents Control
  • WiFi
  • XML
  • XML-RPC
  • イベント(Event)
  • 未分類

アーカイブ

  • 2025年5月
  • 2025年4月
  • 2025年3月
  • 2025年2月
  • 2025年1月
  • 2024年12月
  • 2024年11月
  • 2024年10月
  • 2024年9月
  • 2024年8月
  • 2024年7月
  • 2024年6月
  • 2024年5月
  • 2024年4月
  • 2024年3月
  • 2024年2月
  • 2024年1月
  • 2023年12月
  • 2023年11月
  • 2023年10月
  • 2023年9月
  • 2023年8月
  • 2023年7月
  • 2023年6月
  • 2023年5月
  • 2023年4月
  • 2023年3月
  • 2023年2月
  • 2023年1月
  • 2022年12月
  • 2022年11月
  • 2022年10月
  • 2022年9月
  • 2022年8月
  • 2022年7月
  • 2022年6月
  • 2022年5月
  • 2022年4月
  • 2022年3月
  • 2022年2月
  • 2022年1月
  • 2021年12月
  • 2021年11月
  • 2021年10月
  • 2021年9月
  • 2021年8月
  • 2021年7月
  • 2021年6月
  • 2021年5月
  • 2021年4月
  • 2021年3月
  • 2021年2月
  • 2021年1月
  • 2020年12月
  • 2020年11月
  • 2020年10月
  • 2020年9月
  • 2020年8月
  • 2020年7月
  • 2020年6月
  • 2020年5月
  • 2020年4月
  • 2020年3月
  • 2020年2月
  • 2020年1月
  • 2019年12月
  • 2019年11月
  • 2019年10月
  • 2019年9月
  • 2019年8月
  • 2019年7月
  • 2019年6月
  • 2019年5月
  • 2019年4月
  • 2019年3月
  • 2019年2月
  • 2019年1月
  • 2018年12月
  • 2018年11月
  • 2018年10月
  • 2018年9月
  • 2018年8月
  • 2018年7月
  • 2018年6月
  • 2018年5月
  • 2018年4月
  • 2018年3月
  • 2018年2月

https://piyomarusoft.booth.pm/items/301502

メタ情報

  • ログイン
  • 投稿フィード
  • コメントフィード
  • WordPress.org

Forum Posts

  • 人気のトピック
  • 返信がないトピック

メタ情報

  • ログイン
  • 投稿フィード
  • コメントフィード
  • WordPress.org
Proudly powered by WordPress
Theme: Flint by Star Verte LLC