Menu

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

AppleScriptの穴

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

セキュリティダイアログに表示するメッセージをローカライズする

Posted on 1月 17, 2019 by Takaaki Naganoya

Xcode上で記述し、他のアプリケーションを操作するAppleScript Cocoaアプリケーションで、セキュリティダイアログに表示する内容(Info.plist内のエントリ)をローカライズする方法について紹介します。

セキュリティダイアログを表示させてユーザーの認証を得る

まず、macOS 10.14, Mojaveではセキュリティ機能が強化され、アプリケーションから他のアプリケーションをAppleEventで操作しようとすると、ユーザーに認証を求めます。この動作は、同一アプリケーションでは初回時のみ行われます。アプリケーションのバージョン・アップ時に再度問い合わされることはありません。

このセキュリティ認証をユーザーに求める動作は、Code Signしてあるアプリケーションであれば初回起動時の初回AppleEvents発行時のみ行われます。最新版のXcode上でアプリケーションを開発する場合にはCode Signできること(=Apple Developper Account年間契約を行っていること)が前提条件となるため、Code Signしない場合については言及しません。

# セキュリティダイアログで「OK」しなかった場合でも、あとからシステム環境設定>セキュリティとプライバシー>プライバシー>オートメーション の項目でチェックを入れれば認証したのと同じことになります。この項目、1年使い続けると項目数がヤバいぐらい増加しそうですが、そのあたりの膨大な数になったときの使い勝手が一切考えられていないバカっぷりが素敵です(項目のしぼりこみぐらいできないとまずい)

そして、ただ漫然とXcode上でAppleScriptアプリケーションのプロジェクトを作成し、AppleScriptアプリケーションを記述しても、実行時にセキュリティダイアログは表示されないという話を昨日書きました。

セキュリティダイアログを表示してユーザーに認証を得るためには、

 (1)Info.plistに「Privacy – AppleEvents Sending Usage Description」(NSAppleEventsUsageDescription)のエントリを作成する必要がある

 (2)AppleScriptアプリケーション内にて、セキュリティダイアログの認証が必要な動作(新規ドキュメントを作成するなど)を、アプリケーション起動中あるいは起動直後のタイミングで行い、セキュリティダイアログでユーザーの認証を得ておく(ことが望ましい)

という状態です。

セキュリティダイアログのメッセージをローカライズする

昨日の段階では、このセキュリティダイアログに表示させる内容がローカライズできないと思っていました。

その後、冗談半分で「Info.plistの内容のローカライズ方法」などと検索エンジンで調べてみたら……さがしてみるもので、すぐに方法が見つかりました。

# 冗談半分で探してみる、というのはけっこう強力なソリューションです

Info.plistの内容のローカライズを行う場合には、InfoPlist.stringsというファイルを作成して、そこに(おなじみの)ローカライズ文字ファイルを、

"key" = "value";

のように記述しておき、InfoPlist.stringsファイルをXcode上でローカライズするのだとか。

Info.plistのエントリのローカライズ

Info.plistに「Privacy – AppleEvents Sending Usage Description」のエントリを作ってある状態から話をすすめます。

このままでは、このエントリのキー名称がよくわからないので、Info.plistをテキスト形式でオープンし直します。

すると、このエントリのキー名称が「NSAppleEventsUsageDescription」だということがわかります。

そこで、Xcodeのプロジェクトに「空のファイル」としてInfoPlist.stringsファイルを追加し、ローカライズします。ここでは、デフォルトで用意されるEnglishのほかにJapaneseを追加しました。

この状態でXcode上でビルド+実行(Command-R)を行うと、

のように、日本語環境にあわせてローカライズしておいたメッセージが表示されることが確認できました。

More from my site

  • Pagesで最前面の書類中のテキストアイテムと本文テキストで文字サイズが最大のもののテキストを求めるPagesで最前面の書類中のテキストアイテムと本文テキストで文字サイズが最大のもののテキストを求める
  • 最前面の書類中のテキストアイテムの文字サイズが最大のものの中に入っている最大のテキストを求める最前面の書類中のテキストアイテムの文字サイズが最大のものの中に入っている最大のテキストを求める
  • アウトプットするとインプットもある?アウトプットするとインプットもある?
  • Macとアップルスクリプトで学ぶ いまからはじめるプログラミング②Macとアップルスクリプトで学ぶ いまからはじめるプログラミング②
  • 「Macとアップルスクリプトで学ぶ いまからはじめるプログラミング①」アップデート「Macとアップルスクリプトで学ぶ いまからはじめるプログラミング①」アップデート
  • 「Macとアップルスクリプトで学ぶ いまからはじめるプログラミング①」オマケアップデート予定「Macとアップルスクリプトで学ぶ いまからはじめるプログラミング①」オマケアップデート予定
Posted in AppleScript Application on Xcode | Tagged 10.14savvy | 2 Comments

2 thoughts on “<span>セキュリティダイアログに表示するメッセージをローカライズする</span>”

  1. 11/29/19
    8:38 PM
    2019年11月29日
    8:38 PM

    Reply

    Double PDF v2.0完成に近づく – AppleScriptの穴 says:

    […] ど、地味に工数が増えるのは勘弁してほしいです。あとは、外部アプリケーション操作要求を行うためのInfo.plistのエントリ追加などもあります。これを追加しないと外部アプリケーショ […]

  2. 12/14/19
    1:58 AM
    2019年12月14日
    1:58 AM

    Reply

    2019年に書いた価値あるAppleScript – AppleScriptの穴 says:

    […] Pages書類の1ページ目の表の背景色を置換 v4 セキュリティダイアログに表示するメッセージをローカライズする このあたりは、必要に迫られていろいろ試行錯誤したものですが、macOS […]

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

  • ディスプレイの設定切り替えをAppleScriptでも行えるSwitchResX
  • Script Editorをコントロールして各構文要素の色情報を取得する v5
  • Safariで表示中のWebページの最終更新日時を取得
  • ファイル作成日、修正日を変更する
  • CotEditorのScript集、PowerPack & Basic Packをv2.0にアップデート
  • CotEditorのScript集、PowerPack & Basic Packを配布開始
  • 画面上の指定座標にマウスカーソルを強制移動させてクリック
  • 原稿用紙枚数シミュレーション(簡易版)v1
  • 【基礎】AppleScriptの実行を(操作により)中断する
  • AppleScriptの情報源
  • 指定URLのMS名を取得する v2
  • 文字置換 v2
  • GET method REST API v4.3
  • mouseClickを用いて指定座標をクリック
  • 文字列から絵文字を削除
  • iCloud Driveフォルダへのパスを求める
  • Xcode 10.1+macOS MojaveでGUIアプリケーションを作成
  • Pages書類の1ページ目の表の背景色を置換
  • アラートダイアログをタイトル付き表示
  • 指定文字の花文字テキストを取得する(Retina対応)

Tags

10.11savvy (1109) 10.12savvy (1249) 10.13savvy (1389) 10.14savvy (531) 10.15savvy (325) 11.0savvy (133) CotEditor (48) Finder (43) iTunes (25) Keynote (66) NSAlert (59) NSAlertSecondButtonReturn (16) NSArray (50) NSBitmapImageRep (20) NSBundle (19) NSButton (33) NSColor (48) NSDictionary (26) NSFileManager (23) NSFont (18) NSImage (40) NSJSONSerialization (21) NSMutableArray (61) NSMutableDictionary (21) NSPredicate (36) NSRunningApplication (55) NSScreen (30) NSScrollView (22) NSString (114) NSURL (93) NSURLRequest (22) NSUTF8StringEncoding (30) NSUUID (18) NSView (33) NSWindow (17) NSWorkspace (19) Numbers (43) Pages (19) Safari (34) System Events (16) WKUserContentController (20) WKUserScript (19) WKUserScriptInjectionTimeAtDocumentEnd (17) WKWebView (21) WKWebViewConfiguration (21)

カテゴリー

  • AirDrop
  • AirPlay
  • Animation
  • AppleScript Application on Xcode
  • Bluetooth
  • Books
  • boolean
  • Bug
  • Calendar
  • call by reference
  • Clipboard
  • Code Sign
  • Color
  • Custom Class
  • dialog
  • drive
  • exif
  • file
  • File path
  • filter
  • folder
  • Font
  • GAME
  • geolocation
  • GUI
  • GUI Scripting
  • History
  • How To
  • Icon
  • Image
  • Input Method
  • Internet
  • JavaScript
  • JSON
  • JXA
  • Keychain
  • Language
  • list
  • Locale
  • Machine Learning
  • Markdown
  • Menu
  • Metadata
  • MIDI
  • MIME
  • Natural Language Processing
  • Network
  • news
  • Noification
  • Notarization
  • Number
  • OCR
  • OSA
  • PDF
  • Peripheral
  • PRODUCTS
  • QR Code
  • Raw AppleEvent Code
  • Record
  • recursive call
  • regexp
  • Release
  • Remote Control
  • Require Control-Command-R to run
  • REST API
  • RTF
  • Sandbox
  • Screen Saver
  • Script Libraries
  • sdef
  • search
  • Security
  • selection
  • shell script
  • 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)
  • 未分類

アーカイブ

  • 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
Proudly powered by WordPress
Theme: Flint by Star Verte LLC