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

macOS 11.0, Big Sur AppleScript関連の変更点

Posted on 11月 13, 2020 by Takaaki Naganoya

ついにmacOS 11.0, Big Surが正式リリースされました。これほどリリースが待ち遠しく、リリースを恐れていたOSバージョンもありません。機能的にはいいのに、見た目がアレな、ある意味「次世代のmacOSのPublic Beta」みたいな位置付けです。バージョン0.xから始まるのも初めてですし。1.0未満だと受け取っておきましょう。

→ その後、マイナーアップデート版が「11.1」であることが判明し、今後は「12.x」「13.x」とiOSライクなナンバリングが施されることがうかがわれます。

ハードウェア面では「M1搭載のファンレスのMacBook AirがCore i9のCPUを蹂躙する図」が展開されているなど絶好調ですが、ソフトウェア面ではいろいろ(見た目に)問題があります。

macOS 11.0.1について、AppleScript的には大きな違いはありません。大きな違いというのは、macOS 10.15からの大きな違いということです。10.15のあまりの不具合の多さに、β段階で「毒の沼」認定してメイン環境で利用することを放棄したため、個人的には11.0にすぐ移行したいところです(検証用のMac mini 2014しか対応ハードウェアがない問題)。

macOS 11.0搭載のAppleScriptはあいかわらずバージョン2.7。スクリプトエディタもビルドが少し変わったぐらいでバージョンは同じです。

スクリプトエディタのヘルプが、macOS 10.13、10.14、10.15と毎回更新されていましたが、今回はその余裕がなかったのか10.15, Catalinaのままです(あとでオンライン更新されるのかも???)。

毎回、OSのアップデートがあるたびに書き換えの必要があるScriptが出てきます。すべてのScriptが必要というわけではないはずですが、理由は大きく分けると以下のとおりです。

(1)Script専用補助アプリケーションやOS標準装備のアプリケーションの機能に変化が生じたり、名前が変わったり、統廃合されたりした
(2)AppleScriptの言語処理系、標準装備のScripting Additionsや標準命令に新たなバグが発生した
(3)OS自体の仕様変更、未知のバグが発生した
(4)GUI ScriptingでメニューなどのGUI部品を指定している箇所が、GUI修正などの理由によりそのままでは動かなくなった
(5)Cocoaの仕様変更により動かなくなったり修正が必要になった

スクリプトエディタのsdefの差分をチェックしてみたところ、macOS 10.14/10.15から変化はありません。つまり、今回は(1)(2)由来の発生の可能性は低いことが期待されます。(4)は当然そうなるものなので(些細な変更で発生するものなので)、必要最低限の箇所に使うべきものです。(5)は、Cocoa自体の仕様変更は割とひんぱんに発生しているので、なんともいえませんが、Cocoa自体に仕様変更やバグがなくてもScripting Bridge定義ファイルのバグや理不尽な変更(主にmacOS 10.13で発生した件。一切説明なし)によって影響を受ける可能性はあります。

カレンダー.appのバンドル内に同梱された大量のAppleScriptもβ時からそのままです。

(何か発見があったら追記)

アプレットのプロパティが保持されない件:理由=(3)

LateNight Software Blogに掲載された「BIG SUR: LOST PROPERTIES」をGoogle翻訳で読んでみました(ちょっと時間がないので)。

macOS 11.0, Big SurではスクリプトエディタでAppleScriptアプレット書き出しを行うと、

Arm 64/Intel 64のUniversal Binaryで書き出されます。

そして、アプレット書き出し時にCode Signが自動的に行われ(Run Localy)、Apple Developer IDを持っていなくても実行バイナリにCode Signされることになります(Notalizationはまた別)Code Signされるということは、アプレットの情報書き換えが保持されなくなるということであり、property文で設定値を維持しようとしても、実行ごとに内容がフラッシュされる(保持されない)ことになります。

このことはmacOS 10.10ごろから「そういう風になるんだろう」とわかっていたので、property文で設定値を保持するような書き方は一切してきませんでした。設定保存の必要があればUser Defaultsへ書き込み。

サードパーティのOSAX(Scripting Additions)が廃止されることはOS X 10.6の頃からわかっていましたし、OS X 10.10の頃からpropertyで値を保持してはいけないことはわかっていました。

AppleScript Studioランタイムがdeprecated扱いに:理由=(3)(5)

最新の「兆し」は、PowerPC→Intel→Apple Siliconと3世代にわたってメンテナンスされてきた「AppleScript Studioランタイム」(Automatorアクションでこれを使っているものがある)が、いよいよdeprecated扱いになったことです。

もともと、OS X 10.6のときにXcode上から開発用のテンプレートが削除されたためにAutomator Action作成時に積極的にAppleScript Studioの機能を使おうとも思わないのですが、これまで維持され続けてきたというわけです。あれだけの規模のものを、OSのGUI部品が変更され続けていく中メンテナンスしてARM対応まで行なって破棄するとは……自分がその仕事に携わっているならやり切れないものがありますが、既定路線ではあります。

今後、macOS上で実行できるAutomator ActionはAppleScriptObjCベースのものに一本化される、ということです。

ファイル共有のプロトコルがsmbに一本化:理由=(3)

この話が出てきたのが何回目だか覚えていませんが、ファイル共有のプロトコル「afp」が使えないようになりました。「smb」のみです。

LAN上の他のマシンやファイルサーバー、NASのボリウムをマウントする処理は割とありふれたものですが、そのためのサーバーの指定方式がsmbに一本化されたという「変化」があったということです。

ファイルサーバーのマウント処理を記述してあるScriptについては、macOS 11.x以降では書き換えの必要があります。

AppleScript書類(.scpt)アイコンがプレーンテキストを示すアイコンに変更:理由=(3)

なんなんでしょうね? これは、、、ミスなのか、意図があるのか。

System Eventsの機能変更:理由=(2)

これだけ機能が変わっていたらバージョン番号を変更してほしいところです。
→ 同じバージョン番号のまま大幅に機能が変更されたSystem Events

System Eventsの動作状態の変更:理由=(3)

OSが起動して他のGUIアプリケーションを操作可能な状態になって久しい状態だというのに、System Eventsに対する操作を行おうとしたら、プロセスが起動していないといったエラーが表示されました(macOS 11.3 beta3)。

launchコマンドでSystem Eventsの起動を明示的に行うことで、問題なく操作できましたが、System Eventsに明示的にlaunch操作を行わなくてはならなくなったようです。リリースノートに記載すべきレベルの変更が加わっているように感じます。

NSStringのstringWithFormat:を呼び出すとクラッシュ:理由=(3)

こんな基礎的な箇所でバグを作られるとウンザリします。また、使っている箇所が多過ぎてウンザリします。このバグのせいで、Mac App Storeで配布しているUni DetectorのCPUアーキテクチャ別のグラフ表示機能を実行すると(macOS 11.x台、11.5より前では)クラッシュしていました。
–> macOS 11.5で修正されました。macOS 11.0〜11.4の間、この機能がまともに動いていなかったわけです。AppleScriptのプログラムは、macOS 11に対しては最新のバージョン以外はサポートしないということになるでしょう。

AppleScript名:stringWithFormatのじっけん.scptd
—
–  Created by: Takaaki Naganoya
–  Created on: 2021/06/19
—
–  Copyright © 2021 Piyomaru Software, All Rights Reserved
–  本Scriptを実行すると、Intel Mac/Apple Silicon Macの両方でクラッシュします

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

set dTemp to "chart.data = [{
\"label\": \"Apple Silicon\",
\"value\": %@,
\"color\": chart.colors.next()
}, {
\"label\": \"Intel 64 bit\",
\"value\": %@,
\"color\": chart.colors.next()
}, {
\"label\": \"Intel 32 bit\",
\"value\": %@,
\"color\": chart.colors.next()
}, {
\"label\": \"PowerPC 64 bit\",
\"value\": %@,
\"color\": chart.colors.next()
}, {
\"label\": \"PowerPC 32 bit\",
\"value\": %@,
\"color\": chart.colors.next()
}];"

set ppc32Count to 1
set ppc64Count to 2
set intel32Count to 3
set intel64Count to 4
set arm64Count to 5

set aDataStr to current application’s NSString’s stringWithFormat_(dTemp, arm64Count, intel64Count, intel32Count, ppc64Count, ppc32Count) as string

★Click Here to Open This Script 

NSString’s StringWithFormat:をmacOS 11で実行すると100%クラッシュ

More from my site

  • MD5, SHA-1, SHA-3などのチェックサムを計算するMD5, SHA-1, SHA-3などのチェックサムを計算する
  • Excel__Numbersセルアドレスの相互変換Excel__Numbersセルアドレスの相互変換
  • Keynoteで選択中のtext itemの冒頭のフォントを太くする v2Keynoteで選択中のtext itemの冒頭のフォントを太くする v2
  • iCalendarファイルの作成iCalendarファイルの作成
  • 国民の祝日を求める v7国民の祝日を求める v7
  • display drop dialogライブラリをv1.5にアップデートdisplay drop dialogライブラリをv1.5にアップデート
(Visited 1,168 times, 1 visits today)
Posted in Bug news | Tagged 11.0savvy | 2 Comments

2 thoughts on “<span>macOS 11.0, Big Sur AppleScript関連の変更点</span>”

  1. 12/2/20
    10:09 PM
    2020年12月2日
    10:09 PM

    Reply

    西北洲 says:

    Big Sur の Finder でなんか違和感があるなと思ったら、スクリプトファイルのアイコンがテキストファイルのアイコンになっていました。
    スクリプトバンドル形式やテキスト形式のものはスクリプトのアイコンがついたものです。

    デフォルトアプリケーションを変更したり、LaunchServices を再構築したり、(ちょっと不具合が出たので)インストールし直したけれど変わらず。

    インターネットで検索したら Twitter でつぶやいている方がいたのでこんなものなのですね。

  2. 12/2/20
    10:31 PM
    2020年12月2日
    10:31 PM

    Reply

    Takaaki Naganoya says:

    手元にあるAppleScript書類の多くがバンドル形式(.scptd)なのでBeta段階で自分も気づきませんでした(間抜け)。
    Script Editorのバンドル中に通常形式書類(.scpt)のアイコンがないのは、何の冗談なんでしょうねぇ、、、、

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

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

Google Search

Popular posts

  • 開発機としてM2 Mac miniが来たのでガチレビュー
  • macOS 13.6.5 AS系のバグ、一切直らず
  • CotEditorで2つの書類の行単位での差分検出
  • Apple純正マウス、キーボードのバッテリー残量取得
  • macOS 15, Sequoia
  • 初心者がつまづきやすい「log」コマンド
  • 指定のWordファイルをPDFに書き出す
  • Adobe AcrobatをAppleScriptから操作してPDF圧縮
  • Pages本執筆中に、2つの書類モード切り替えに気がついた
  • メキシカンハットの描画
  • 与えられた文字列の1D Listのすべての順列組み合わせパターン文字列を返す v3(ベンチマーク用)
  • 2023年に書いた価値あるAppleScript
  • Pixelmator Pro v3.6.4でAppleScriptからの操作時の挙動に違和感が
  • AdobeがInDesign v19.4からPOSIX pathを採用
  • Safariで「プロファイル」機能を使うとAppleScriptの処理に影響
  • Numbersで選択範囲のセルの前後の空白を削除
  • Cocoa Scripting Course 続刊計画
  • macOS 14.xでScript Menuの実行速度が大幅に下がるバグ
  • NaturalLanguage.frameworkでNLEmbeddingの処理が可能な言語をチェック
  • AppleScriptによる並列処理

Tags

10.11savvy (1102) 10.12savvy (1243) 10.13savvy (1392) 10.14savvy (587) 10.15savvy (438) 11.0savvy (283) 12.0savvy (208) 13.0savvy (180) 14.0savvy (130) 15.0savvy (107) CotEditor (64) Finder (51) iTunes (19) Keynote (115) 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 (75) Pages (54) 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
  • 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年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