objective-cのプロジェクトにターゲットを追加する

こんにちは。からすぱんです。

先日、objective-cの既存プロジェクトにCommand Line Tool のターゲットを追加するため、結構な時間(2日ほど)格闘したのでその備忘録です。

尚、前回までシリーズ風にお送りしていた「流行りのAWSを使ってみたい」についてですが、諸事情によりしばらく(という名の永久)中止したいと思います。

いないと思いますが、楽しみにされていた方すみませんm(__)m


さて、本題ですが、objective-cのプロジェクトにターゲットを追加する、、そもそもobjective-cにおけるターゲット、プロジェクト、ワークスペースとは何なんでしょうか。

下に簡単にまとめました。

ターゲット、プロジェクト、ワークスペース の違い

ターゲットビルドの結果得られる生成物(Command Line Tool , iOS, watchOS, OSXなど)
プロジェクト.xcodeprojiOSやwatchOSなど複数Targetsをグループ化するもの
ワークスペース.xcworkspace複数のプロジェクトを同じレベルで束ねることができる
サブプロジェクト.xcodeproj プロジェクトの中に他のプロジェクトをサブプロジェクトとして組み込むことができる
サブプロジェクト はそれ単体で開くことも、親プロジェクト内で開くことも可能
https://qiita.com/rockname/items/bbe73a001568f0f5e801

C#でいうソリューションがワークスペース、ターゲットはexeやdllなイメージでしょうか。

サブプロジェクトの利点がいまいちわかりませんが、使う機会があった際にもう一度調べてみることにします、、。


ではここから、 OSX のアプリケーションをもつプロジェクトに Command Line Tool のターゲットを追加していきます。

1.プロジェクトにターゲットを追加する

  • XCodeのナビゲーターバーでプロジェクトを選択し、エディタ領域のPROJECT(この場合は「HogeHoge」)を選択し、下部の「+」をクリックします。
ターゲット追加するプロジェクトを選択
  • ターゲット選択画面で、追加するターゲットの種類を選択します。
追加ターゲットの種類を選択
  • Command Line Tool のターゲットとソースコード格納フォルダを追加 することができました!
ターゲットが追加される

ターゲットは追加されたものの、このままでは追加ターゲットのビルドとデバッグ実行ができません。実はかなり時間を喰ったのはここからでした。

ビルドできていないため、実行オブジェクトが生成されていない

2.追加ターゲットをビルド&デバッグ実行する

  • 現在のスキーマをクリックし、ビルドするスキーマを変更します。
現在のスキーマを変更する
スキーマを変更
  • ビルドを実行すると、オブジェクトが生成され、赤くなっていたオブジェクト名が白く表示されます。

ビルドが成功し、オブジェクトが生成される

まとめるとめちゃくちゃ簡単やん!という感じがしますが、VisualStudio でビルドさせるのとだいぶ違いすぎて、テンパり放題でした。

また一つ賢くなれた気がします。

それでは。