今回エンジニアブログを担当する戸田です。
今回は、Xcodeプラグインの作成方法について紹介します。
Xcodeのプラグインについて、公式のサポートがなく情報量も少ないため、敷居が高くなってしまいますが、モバイルアプリとは違った楽しさがありますので、一度はプラグインの開発をしてみるのも良いと思います。それでは、プラグインの作成方法を説明していきます。
プラグイン作成の流れ
- Xcodeプロジェクトの作成
- Info.plistの設定
- Build settingsの設定
- 実装・ビルド
- Xcode を再起動
1.Xcodeプロジェクトの作成
Xcodeを起動後。メニューの「File」->「New」->「Project...」を選択し、新規プロジェクトの作成画面を表示します。
新規プロジェクトの作成画面が表示されたら、「OS X」->「Framework & Library」->「Bundle」を選択して、「Next」ボタンを選択します。
次に、プロジェクト名やFrameworkの設定をします。
プロジェクト名は「Product Name」で入力し、「Framework」は「Cocoa」を選択して、「Next」ボタンを選択します。
プロジェクトの保存先は任意の場所に設定します。
2.Info.plistの設定
プロジェクトを作成したら、Info.plistにプラグイン開発で必要な項目を追加しますので、プロジェクト内から「SamplePlugin-Info.plist」を表示します。
3.Build settingの設定
プロジェクト又はターゲットの「Build Setting」タブから以下の項目の設定をします。
- Installation Build Products Location:$(HOME)
- Installation Directory:/Library/Application Support/Developer/Shared/Xcode/Plug-ins
- Deployment Location DEPLOYMENT_LOCATION:YES
- Wrapper Extension:xcplugin
4.実装・ビルド
プラグインを実装するためには、「Principal class」が必要になりプラグインをXcodeにLoadするためのクラスになります。それでは、メニューの「File」->「New」->「File...」から新規ファイルの作成画面を表示します。
新規ファイルの作成画面が表示されたら、「OS X」->「Cocoa」->「Objective-C class」を選択して、「Next」ボタンを選択します。
次にclassは任意のクラス名を入力、「Subclass of」には「NSObject」を選択して「Next」ボタンを選択します。
作成したclassを展開して、以下のようにコードを入力します。
@implementation SamplePlugin + (void)pluginDidLoad:(NSBundle *)plugin { NSLog(@"pluginDidLoad"); NSMenu *addMenu = [[NSMenu alloc] initWithTitle:@"Test Menu"]; NSMenuItem *menuItem = [[NSMenuItem alloc] initWithTitle:@"Test Click" action:@selector(menuClick:) keyEquivalent:@""]; [menuItem setTarget:self]; [addMenu addItem:menuItem]; NSMenuItem *newMenuItem = [[NSMenuItem alloc] initWithTitle:@"Test" action:NULL keyEquivalent:@""]; [newMenuItem setSubmenu:addMenu]; NSMenu *mainMenu = [NSApp mainMenu]; [mainMenu addItem:newMenuItem]; } + (void)menuClick:(id)sender { NSLog(@"Menu item clicked"); } @end
メニューの「Product」->「Build」を実施して、以下の場所にプラグインファイル(xxxxxx.xcplugin)がインストールされていることを確認します。
~/Library/Application Support/Developer/Shared/Xcode/Plug-ins
5.Xcodeの再起動
プラグインのインストールが出来たらXcodeを再起動して、プラグインを読み込んで見ましょう。プラグインが正常に読み込めたらメニュー内の「Help」の右側に「Test Menu」の項目が追加されています。
今回はここまでになりますが、プラグイン開発は誰でも行うことが出来ますので、よかったら試してみて下さい。