共有ショートカット
本章では、共有ショートカットについて説明します。
概要
ショートカットAppでは、作成したレシピを外部に書き出したり、外部から取り込むことができます。
なお外部から取り込むことができるようにしたレシピのことを、「共有ショートカット」と呼びます。
書き出し
レシピを書き出しには、アクション「マイショートカットを取得」を使ってshortcutファイルとして書き出す方法と、iCloudリンク(旧称 workflowリンク)を使ってウェブで共有する方法の2つがあります。
shortcutファイルとして書き出す場合は、アクション「マイショートカットを取得」を使います。
ただし、これをそのまま使うとマイショートカットの中のすべてのレシピが書き出されます。
特定のレシピだけを書き出したいときは、「ファイルにフィルタを適用」を使用して、必要なレシピを抜き出してください。
なおバージョン3以降では、shortcutファイルとして書き出したレシピを直接取り込むことはできず、iCloud DriveとiCloudリンクを経由する必要があります。
詳しくは、後述します。
iCloudリンクの作り方
iCloudリンクを使ってレシピを共有する場合、次のように操作します。
- 共有したいレシピの右上にあるを長押しします。
- 「共有 」→「iCloudリンクをコピー 」→「リンクをコピー」を選択します。
- 「リンクをコピー」を選択します。
- 「✓ リンクがコピーされました」と表示されるとiCloudリンク(https://www.icloud.com/shortcuts/○○○○形式のURL)が発行され、URLがクリップボードにコピーされます。
注意点
-
iCloudリンクのURLを発行したあとで、レシピの中身を差し替えることはできません。
-
レシピの配布をやめる場合は、Safari AppでそのURLにアクセスし、右上のをタップしてから、「共有を停止」を選択してください。
なお共有を停止できるのは、iCloudリンクのURLを発行した人だけです。
-
なおiCloudリンクで発行したURLを忘れてしまった場合、そのURLを調べる方法はありせん。
またicloud.comのサイトにも、iCloudリンクを管理する機能はありません。
-
iCloudリンクのURLを発行したときに使用していたApple IDを削除すると、iCloudリンクのURLも無効になります。
-
写真Appなどでは30日が経過するとiCloudリンクのURLが無効になりますが、ショートカットAppでは保存期間の制限はありません。
-
iCloudリンクではなく、カスタムURLスキームshortcuts://shortcuts/○○○○を使うと、iCloud.comにアクセスせずに、ショートカットAppのレシピのインポート確認画面に直行することができます。
取り込み
共有ショートカットの取り込みについて、Appleでは、「友達や個人的なバックアップ、Webサイトなど、ギャラリー以外のソースからショートカットを追加できます。」と説明しています。
しかしバージョン3以降ではセキュリティ対策のため、取り込みはギャラリーと、iCloudリンク(https://www.icloud.com/shortcuts/○○○○形式)、旧 Workflow Sync(https://workflow.is/workflow/○○○○形式)のみになりました。
ショートカットAppのギャラリーから必要なレシピ選択するか、iCloudリンクのURLにアクセスすると、外部のレシピを取り込むことができます。
なお、iCloud Driveにアップロードされているshortcutファイルについては、次の方法で取り込むことができます。
- アクション「ファイルを取得」で、icloud Drive上に置いたshortcutファイルを取得する。
- 「ファイルへのリンクを取得」を実行し、iCloudリンクを発行する。
- 「URLを開く」で、そのiCloudリンクのURLにアクセスし、レシピを取り込む。
〈参考〉
→ 共有ショートカットを有効にする - Appleサポート
→ ショートカットを共有する - Appleサポート ※リンク先はバージョン2.2のときの説明です
shortcutファイルの中身を見る方法
shortcutファイルの正体は、バイナリ形式のplist(Binary property list)ファイルです。
バイナリ形式のplistは、macOS, iOSでテキストデータを記録するためのフォーマットとして広く使われています。
またplistには、XML形式・JSON形式の物も存在します。
つまりバイナリ形式のshortcutをXML形式のplist(XML property list)や形式のJSON形式のplist(JSON property list)に変換してあげれば、人間でも読めるものになります。
macOSの標準コマンドplutilを使うと、バイナリ形式のplistを、XML形式もしくはJSON形式に変換することができます。
Windowsでは、iTunesのインストール時に一緒にインストールされる、Apple Application Supportの中のplutil.exeを使ってください。
使い方やオプションは、macOSのplutilと同じです。
ちなみにWindowsで、shortcutファイルをXML形式に変換するコマンドは以下の通りです。
"%COMMONPROGRAMFILES(x86)%\Apple\Apple Application Support\plutil.exe" -convert xml1 "%USERPROFILE%\Desktop\○○○.shortcut" -o "%USERPROFILE%\Desktop\○○○.xml"
逆に、XML形式のファイルをshortcutファイルに変換するコマンドは、以下の通りです。
"%COMMONPROGRAMFILES(x86)%\Apple\Apple Application Support\plutil.exe" -convert binary1 "%USERPROFILE%\Desktop\○○○.xml" -o "%USERPROFILE%\Desktop\○○○.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>
【参考】
→ Undocumented Mac OS X: 第3回 plist(プロパティリスト)とFoundation【前編】 - ITmedia エンタープライズ