更新:2020-09-23
作成:2020-08-02

共有ショートカット

本章では、共有ショートカットについて説明します。

概要

ショートカットAppでは、作成したレシピを外部に書き出したり、外部から取り込むことができます。
なお外部から取り込むことができるようにしたレシピのことを、「共有ショートカット」と呼びます。

書き出し

レシピを書き出しには、アクション「マイショートカットを取得」を使ってshortcutファイルとして書き出す方法と、iCloudリンク(旧称 workflowリンク)を使ってウェブで共有する方法の2つがあります。
shortcutファイルとして書き出す場合は、アクション「マイショートカットを取得」を使います。
ただし、これをそのまま使うとマイショートカットの中のすべてのレシピが書き出されます。
特定のレシピだけを書き出したいときは、「ファイルにフィルタを適用」を使用して、必要なレシピを抜き出してください。
なおバージョン3以降では、shortcutファイルとして書き出したレシピを直接取り込むことはできず、iCloud DriveとiCloudリンクを経由する必要があります。
詳しくは、後述します。

iCloudリンクの作り方

iCloudリンクを使ってレシピを共有する場合、次のように操作します。

  1. 共有したいレシピの右上にある…を長押しします。
  2. 「共有 」→「iCloudリンクをコピー 」→「リンクをコピー」を選択します。
  3. 「リンクをコピー」を選択します。
  4. 「✓ リンクがコピーされました」と表示されるとiCloudリンク(https://www.icloud.com/shortcuts/○○○○形式のURL)が発行され、URLがクリップボードにコピーされます。

注意点

取り込み

共有ショートカットの取り込みについて、Appleでは、「友達や個人的なバックアップ、Webサイトなど、ギャラリー以外のソースからショートカットを追加できます。」と説明しています。
しかしバージョン3以降ではセキュリティ対策のため、取り込みはギャラリーと、iCloudリンク(https://www.icloud.com/shortcuts/○○○○形式)、旧 Workflow Sync(https://workflow.is/workflow/○○○○形式)のみになりました。
ショートカットAppのギャラリーから必要なレシピ選択するか、iCloudリンクのURLにアクセスすると、外部のレシピを取り込むことができます。

なお、iCloud Driveにアップロードされているshortcutファイルについては、次の方法で取り込むことができます。

  1. アクション「ファイルを取得」で、icloud Drive上に置いたshortcutファイルを取得する。
  2. ファイルへのリンクを取得」を実行し、iCloudリンクを発行する。
  3. URLを開く」で、そのiCloudリンクのURLにアクセスし、レシピを取り込む。

〈参考〉
 → 共有ショートカットを有効にする - Appleサポート
 → ショートカットを共有する - Appleサポート ※リンク先はバージョン2.2のときの説明です

shortcutファイルの中身を見る方法

余談になりますが、書き出したshortcutファイルの中を見る方法を紹介します。
その前に、shortcutファイルについて簡単に説明します。

shortcutファイルの正体は、macOSやiOSの設定ファイルでよく使われているバイナリ形式のBinary plistファイルです。
そのためテキストエディタで開いても、中を見ることはできません。
またテキスト形式のplistファイルというものも存在しており、その正体はXMLファイルです。
XMLファイルは、テキストエディタで中を見ることができます。
なおテキスト形式のplistファイルは、macOSのベースになったNeXTSTEPに由来するファイル形式で、macOSでも一部で使われています。

バイナリ形式のplistファイルは、macOSの標準コマンドplutilを使ってXML(テキスト形式のplistファイル)もしくはJSONに変換すると、テキストエディタで中身を見ることができます。
またplutilには、任意のキーや値を追加・変更する機能もあるため、これを利用するとバイナリ形式のplistを書き換えることができます。
Windowsでは、iTunesと一緒にインストールされるApple Application Supportの中にあるplutil.exeを使ってください。
使い方やオプションは、macOSのplutilと同じです。

ちなみにWindowsで、shortcutファイルをXMLファイルに変換するコマンドは以下の通りです。

"%COMMONPROGRAMFILES(x86)%\Apple\Apple Application Support\plutil.exe" -convert xml1 "%USERPROFILE%\デスクトップ\○○○.shortcut" -o "%USERPROFILE%\デスクトップ\○○○.xml"

逆に、XMLファイルをshortcutファイルに変換するコマンドは、以下の通りです。

"%COMMONPROGRAMFILES(x86)%\Apple\Apple Application Support\plutil.exe" -convert binary1 "%USERPROFILE%\デスクトップ\○○○.xml" -o "%USERPROFILE%\デスクトップ\○○○.shortcut"

ちなみに、レシピ集で公開しているレシピ「ホーム画面に戻る」をXMLに変換した場合、このような内容になります。

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>WFWorkflowActions</key> <array> <dict> <key>WFWorkflowActionIdentifier</key> <string>is.workflow.actions.comment</string> <key>WFWorkflowActionParameters</key> <dict> <key>WFCommentActionText</key> <string>【ホーム画面に戻る】 iOSのホーム画面のアプリ、Springboadを起動します。 【配布元】 ショートカットApp アクションリファレンス https://350ml.net/shortcuts/</string> </dict> </dict> <dict> <key>WFWorkflowActionIdentifier</key> <string>is.workflow.actions.openapp</string> <key>WFWorkflowActionParameters</key> <dict> <key>WFAppIdentifier</key> <string>com.apple.springboard</string> </dict> </dict> <dict> <key>WFWorkflowActionIdentifier</key> <string>is.workflow.actions.exit</string> <key>WFWorkflowActionParameters</key> <dict/> </dict> </array> <key>WFWorkflowClientRelease</key> <string>3.0</string> <key>WFWorkflowClientVersion</key> <string>1050.24</string> <key>WFWorkflowIcon</key> <dict> <key>WFWorkflowIconGlyphNumber</key> <integer>59755</integer> <key>WFWorkflowIconStartColor</key> <integer>4282601983</integer> </dict> <key>WFWorkflowImportQuestions</key> <array/> <key>WFWorkflowInputContentItemClasses</key> <array> <string>WFAppStoreAppContentItem</string> <string>WFArticleContentItem</string> <string>WFContactContentItem</string> <string>WFDateContentItem</string> <string>WFEmailAddressContentItem</string> <string>WFGenericFileContentItem</string> <string>WFImageContentItem</string> <string>WFiTunesProductContentItem</string> <string>WFLocationContentItem</string> <string>WFDCMapsLinkContentItem</string> <string>WFAVAssetContentItem</string> <string>WFPDFContentItem</string> <string>WFPhoneNumberContentItem</string> <string>WFRichTextContentItem</string> <string>WFSafariWebPageContentItem</string> <string>WFStringContentItem</string> <string>WFURLContentItem</string> </array> <key>WFWorkflowMinimumClientVersion</key> <integer>900</integer> <key>WFWorkflowMinimumClientVersionString</key> <string>900</string> <key>WFWorkflowTypes</key> <array> <string>WatchKit</string> </array> </dict> </plist>