web-dev-qa-db-ja.com

Xcode 4でプロジェクトテンプレートを作成する方法

ほとんどの情報はXcode 3に関連しているため、これを行うためのチュートリアルを見つけるのは非常に困難です。以下の回答は一部の人々に役立つかもしれません。

以下の回答の情報のほとんどは、次のサイトから入手しました。

35
bennythemink

これを行うための情報を見つけるためにウェブを検索するのに何時間も費やしました。実際、Xcode4.5のプロジェクトテンプレートをセットアップするのはそれほど難しくありませんが、Webでそれをすべてまとめる情報を見つけるのは難しいです!以下の手順が独自の作成に役立つことを願っています。

セットアップ

  1. まず、既存のXcodeプロジェクトテンプレートのコピーを取得して、ベースとして使用します。 Finderを開き、アプリケーションに移動し、Xcodeを右クリックしてパッケージの内容を表示します。 Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Templates/Project Templates/Application /に移動します

[編集] Xcode 5では、PATHは〜/ Library/Developer/Xcode/Templates/Application/Project Templatesになります。 Templates/Application/Project Templatesが存在しない場合は、作成する必要があります。私はこれを自分で試したことはありませんが、以下のコメントでseufagnerに感謝します。 [/編集]

  1. コピー(切り取り/貼り付けをしないでください!)リストされたテンプレートの1つ。
  2. 別のFinderウィンドウを開き、次のディレクトリに移動します(ライブラリフォルダーを再表示するには、ターミナルでこのコマンドを入力します:chflags nohidden〜/ Library /またはFinder/Goをクリックしてalt/optionキーを押します)/ Library/Developer/Xcode /テンプレート(まだ存在しない場合は、このフォルダーを作成する必要があります)/ Project Templates /
  3. ここにフォルダを作成します。好きな名前を付けてください。提案は会社名です。この名前は、Xcodeの新しいプロジェクトダイアログの左側のメニューに表示されます。例えば私がAppscoreと呼んだ添付画像では、cocoas2d用の別の画像があります。 enter image description here
  4. ここにプロジェクトテンプレートを貼り付け、そのフォルダー名を任意の名前に変更します。 MySuperProjectTemplate.xctemplate。ただし、テンプレートの識別子を変更する必要があるため、まだ完了していません。そうしないと、Xcodeの新しいプロジェクトのダイアログウィンドウに表示されません。
  5. TextEditでTemplateInfo.plistファイルを開きます。識別子キーを検索します。 「com.Apple.dt.unit.XXXXXX」のような文字列値が表示されるはずです。一意である限り、これを希望のものに置き換えます。会社名とテンプレートを説明する名前を追加することをお勧めします。
  6. Xcodeを開くと、新しいプロジェクトダイアログの会社名の下にプロジェクトテンプレートが表示されます。

カスタマイズ

現時点では、あまり有用ではない既存のプロジェクトテンプレートのコピーがあります。ほぼすべてのプロジェクトで再利用されるクラスがいくつかあると思いますか?それらをこのテンプレートに含めるのはどうですか?

  1. 必要なファイルをコピーし、新しいプロジェクトテンプレートに貼り付けます。つまり、/ Library/Developer/Xcode/Templates/Project Templates // MySuperProjectTemplate.xctemplate /に移動します。
  2. TextEditでTemplateInfo.plistファイルを再度開きます。最初に行う必要があるのは、プロジェクトテンプレートに新しいファイルを含めるように指示し、値の配列を持つ「Nodes」というキーを検索することです。次の2行を追加します。

    <string> _ VARIABLE_classPrefix:identifier _。h </ string> <string> _ VARIABLE_classPrefix:identifier _。m </ string>

たとえば、コントローラーがBaseViewControllerと呼ばれる場合、行は次のようになります。

<string> ___ VARIABLE_classPrefix:identifier ___ BaseViewController.h </ string> <string> ___ VARIABLE_classPrefix:identifier ___ BaseViewController.m </ string>

Step 2

  1. 次に、Definitionsキーを見つけると、その値として辞書が表示されます。ここで、含まれるファイルへの参照を追加する必要があります。新しいキーを作成し、それを___ VARIABLE_classPrefix:identifier ___ BaseViewController.hと呼びます(ここでもBaseViewControllerを例に取ります)。

Step 3

  1. このキーの値は再び辞書です。これには、Pathと呼ばれるキーと、ファイルの名前である文字列値が含まれます。 BaseViewController.h
  2. 次の画像を添付して、説明が不足していると思われる場合の意味を示します。あなたはそこに「グループ」と呼ばれるキーがあることに気付くかもしれません、これはあなたがグループと入力ファイルを直接作成することを推測できるので:D

これが実際に誰かに役立つことを願っています:)以下に質問があればコメントしてください。数週間前にこれをやったので、私の記憶は少しかすんでいます。

75
bennythemink

また、次の場所にある既存のプロジェクトテンプレートを調べることで多くのことを学ぶことができます。

/Xcode.app/Contents/Developer/Library/Xcode/Templates/Project Templates/

forMacおよび

/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Templates/Project Templates/

iOS.

GitHubby Reid Mainともう1つはAcaniMattt Thompsonによって作成されたAFNetworkingテンプレートもあります。 Appleで作成された例を含むすべての例を参照してください。その後、独自の作成を開始できます。

5
Legoless

Plistファイルで使用されるすべての変数の概要については、こちらをご覧ください。 https://Gist.github.com/shazron/943736

4
bvmobileapps

@bennytheminkあなたの答えは本当にとても助けになりますが、あなたの答えにさらにいくつかのことを追加したいと思います。このキーが含むよりもXcodeの事前定義テンプレートをコピーすると

<key>Ancestors</key>
<array>
<string>com.Apple.dt.unit.storyboardApplication</string>
</array>

この値。 xcodeのカスタムテンプレートでこのキー値を使用すると、デフォルトでAppDelegateクラスが作成されます。フォルダーに移動できないのは、グループに移動することだけです。だから私はこれを追加することをお勧めします:

<key>Ancestors</key>
<array>
<string>com.Apple.dt.unit.objectiveCApplication</string>
<string>com.Apple.dt.unit.iPhoneBase</string>
<string>com.Apple.dt.unit.prefixable</string>
</array>

カスタムテンプレートの値を使用して、カスタムのものを実行できる完全に空のテンプレートを作成します。

1