🎉

iOSのAction Extensionについて

2021/04/11に公開

iOSのAction Extensionのメモ。
https://developer.apple.com/jp/app-extensions/

ActionとはApp Extension(拡張機能)の1つです、画像の赤枠の部分がActionです。

拡張機能で有名なのはShare Extensionです。ActionShareの使い分けはリファレンスによるとActionがコンテンツの処理で、ShareがSNSへの共有やアップロードを想定しているようです。

Actionのリファレンスはこちらです、Archive扱いで更新は終了しているようです。
https://developer.apple.com/library/archive/documentation/General/Conceptual/ExtensibilityPG/Action.html#//apple_ref/doc/uid/TP40014214-CH13-SW1

Extensionの構成

Actionの実態はExtensionと呼ばれるアプリ本体とは独立して実行される個別のバイナリ(ターゲット)です。Extensionを作成するにはアプリに新しいターゲットとしてExtensionを追加します。1つのアプリに複数のターゲット(Extension)を追加できます。

Extensionを含むアプリのことをContaining appと呼びます、Extensionを呼び出すアプリをHost appと呼びます。


Understand How an App Extension Works より

アプリを配布するときはExtensionを含むアプリをAppStoreに送信します。アプリ本体をインストールするとそれに含まれているExtensionもインストールされます。Extensionのみの配布やインストールはできません。Extensionは本体のアプリをインストールすると自動的に有効になりますが一部のExtensionは設定で有効にする必要があります(Todayウィジェットなど)。

Extensionが起動しているときもアプリ本体は起動していません。Extensionとアプリ本体が直接やりとりはできません。App Groupsなどの仕組みを使うことでリソースを共有してアクセスを可能にします。リファレンスではExtensionからアプリ本体を呼び出す方法としてURL Schemeを使った方法が説明されています。


Understand How an App Extension Works より

制限

Extensionではカメラやマイクへのアクセスなどの一部のAPIは使用できません。


調査はここまで。実装は別の記事で。

Discussion