iOS Simulator でQuick Action![非公式]

QuickAction
久しぶりの更新になりますね。
iOS 9 + 3D touchという新しい組み合わせでSpringBoardからアプリのショートコードを実行できるようになりました。

QuickAction1
これやってみたい!と思って試してみましたがXcode 7.0に搭載されているiOS Simulatorは3D touch非対応
iPhone6sを購入しましたがDeveloper登録をしていないため実機に転送ができません。
んーこのためにわざわざDeveloper登録するのは…と思い調べた結果
非公式ですが[Quick Action]機能だけ試せるツールがgithubにて公開されていたので紹介致します。

■用意するもの

■サンプルコード

今回はQuick Actionが使えるかどうかだけを確認したいので
見栄えだけの張りぼてアプリを作成しました。
[Xcode]->[File]->[New]->[Project…]からSingle ViewApplicationを作成
QuickAction2
名前はQuickAction-Sampleとでもしておきます

Static Quick Actions
[Info.plist]ファイルを開きQuickAction用のKeyを追記します。
QuickAction3
Keyの意味は以下の感じです

Key(*必須) 意味
UIApplicationShortcutItemType * アクションのタイプ。
UIApplicationShortcutItemTitle * SpringBoard上に表示されるタイトル。
UIApplicationShortcutItemSubtitle SpringBoard上に表示されるサブタイトル。
UIApplicationShortcutItemIconType アイコンのタイプ。システムアイコンを指定。
UIApplicationShortcutItemIconFile 自分で用意したアイコン画像の名前(35×35)UIApplicationShortcutItemIconTypeよりも優先度は高い。
UIApplicationShortcutItemUserInfo ディクショナリのデータを引き渡す。

IconType一覧はこちらのページを参考にしてください。
そしてこのサンプルコードをビルドしiOS Simulatorで実行します。
ビルドに成功しiOS Simulatorが起動したらターミナルを起動しツールを用意します。

$git clone https://github.com/DeskConnect/SBShortcutMenuSimulator.git
$cd SBShortcutMenuSimulator
$make

SBShortcutMenuSimulator.dylibが生成されていれば成功です。
以降このファイルさえあれば実行できます。
dylibファイルのあるディレクトリで以下のコマンドを実行

$xcrun simctl spawn booted launchctl debug system/com.apple.SpringBoard –environment DYLD_INSERT_LIBRARIES=$PWD/SBShortcutMenuSimulator.dylib
$xcrun simctl spawn booted launchctl stop com.apple.SpringBoard

iOS SimulatorのSpringBoardが切り替わります
ターミナルから

$echo ‘com.NEXTi4HACK.QuickAction-Sample’ | nc 127.0.0.1 8000

と打つとQutickActionが実行されます
QuickAction4

できました!
今回はInfo.plistファイルに追記するだけの静止的なものでしたがソースコードに書き込む動的な方法もあります。
iOS Simulatorも早くバージョンアップで3D touch機能対応になって欲しいですね。

コメントを残す

メールアドレスが公開されることはありません。