web-dev-qa-db-ja.com

Xcodeグループをファイルシステムフォルダーとして作成するワークフロー

Xcode 4プロジェクトナビゲーターペインでクラスをグループに整理するのが好きです。また、ターミナル経由でGITバージョン管理を使用します。これは、Xcode 4統合よりもうまく機能します。私にとっては、Xcodeで作成したグループがファイルシステム上の実際のフォルダーに対応している場合に最も意味があります。

ただし、Xcodeはファイル(Objective-C .h/.mファイルなど)がファイルシステムのどこにあるかを気にしていないようで、グループを追加するたびに(Option+Command+N)それは純粋に表面的なものです。そこに置くファイルは、ハードドライブ上の残りの場所と同じ場所を共有します。

奇妙なことに、最初にハードドライブにフォルダーを作成し、それをXcodeにドラッグすると、ファイルシステム上の独自の場所にグループが作成されます。そこに作成するすべてのファイルは、ディスク上のフォルダーに作成されます。私はそれが大好きですが、XcodeがOption+Command+N。作成するグループごとにFinderに切り替えてから、プロジェクトナビゲーターの適切な場所にドラッグして戻すワークフローは、まったくばかげています。

設定で修正されるような気がしますが、見つけられません!もっと良い方法はありますか?

更新:フォルダーをXcodeにドラッグすると、「フォルダー参照」を選択できるダイアログウィンドウが表示されます。それは有望に見えますが、私のXcode 4はそこにあるファイルをクラスとして受け入れず、ファイルが見つからないことを教え続けます。答えはどこかにあるかもしれませんが、私はまだそれを見つけることができません。

別の更新:メインエディター環境をXcodeからAppCodeに変更しました。後者は、Xcodeとの100%の互換性を維持しながら、プロジェクトグループをサポートするフォルダーの実際の作成をサポートします。 AppCodeの連中は、彼らが何をしているかを確実に知っています。

62
epologee

更新

以下では、Xcode 9以降について説明します。

Xcode 9以降、プロジェクトでグループを作成すると、Xcodeはファイルシステムフォルダーを自動的に作成できます。

プロジェクトナビゲータで右クリック(またはControlキーを押しながらクリック)すると、コンテキストメニューに「新しいグループ」メニュー項目とeither「 「フォルダのある新しいグループ」メニュー項目または「フォルダのない新しいグループ」メニュー項目。

  • Xcodeが「新しいグループ」と「フォルダーを持つ新しいグループ」を提供する場合、「新しいグループ」はフォルダーなしでグループを作成します。

  • Xcodeが「新しいグループ」と「フォルダなしの新しいグループ」を提供する場合、「新しいグループ」はフォルダを持つグループを作成します。

言い換えると、「新規グループ」は、フォルダーの作成に関して、常に他の(明示的な)メニュー項目の反対を行います。

グループの名前を変更し、そのグループに同じ名前の対応するフォルダーがある場合、Xcode 9はフォルダーの名前も変更します。

Xcode 9では、あるグループから別のグループにファイルをドラッグし、グループのフォルダーが異なる場合、Xcode 9は、新しいグループのフォルダーがグループと同じ名前であるかどうかに関係なく、ファイルを新しいグループのフォルダーに移動します。

Xcode 9でこの動作をしたくない場合は、コマンドラインから文書化されていない設定を設定できます。

defaults write com.Apple.dt.Xcode IDEDisableStructureEditingCoordinator -bool YES

「フォルダのある新しいグループ」および「フォルダのない新しいグループ」に関する推測不可能な詳細

Xcodeが「新しいグループ」と「フォルダ付きの新しいグループ」、または「新しいグループ」と「フォルダなしの新しいグループ」を表示するかどうかを決定する方法はまったく明らかではありません。 Apple WWDC 2018のエンジニア(彼の名前はPaulだったと思います)はXcodeソースコードを見て、それを私に説明しました:

  • Xcodeは、クリックしたグループを特定します(または、グループをクリックしなかった場合は、クリックしたアイテムが含まれるグループを特定します)。
  • Xcodeは、クリックされたグループの子であるsubgroups(およびリンクされたフォルダー)を調べます。
  • サブグループの大部分に独自のフォルダーがある場合、Xcodeは、新しいグループにも独自のフォルダーがあると想定します。そのため、Xcodeは「フォルダを作成する」「新しいグループ」と「フォルダなしの新しいグループ」を表示します。
  • サブグループの大部分がnotに独自のフォルダーを持っている場合、Xcodeは新しいグループにもが必要だと想定しますnotには独自のフォルダーがあります。そのため、Xcodeは「新しいグループ」(notフォルダーを作成します)および「フォルダーを持つ新しいグループ」を表示します。
  • サブグループのちょうど半分に独自のフォルダーがある場合、Xcodeがどのようにネクタイを壊すのかわかりません。今すぐテストする気はありません…
  • クリックされたグループにサブグループがない場合、Xcodeは、クリックされたグループ自体に独自のフォルダーがあるかどうかに基づいて、表示するものを決定します。

基本的に、Xcodeは、将来の兄弟に独自のフォルダーがあるかどうかに基づいて、新しいグループに独自のフォルダーがあるかどうかを推測しようとします。

元の

Xcodeで直接can独自のフォルダを使用して新しいグループを作成できますが、それはまったく明らかではありません。

「新しいグループ」を選択する代わりに、「ファイルを「<プロジェクト>」に追加」を選択します。次に、ファイル選択ダイアログで、「新規フォルダー」ボタンをクリックするか、Command-Shift-Nを押して、新規フォルダー/グループの名前を入力します。次に、「追加されたフォルダーのグループを作成する」が選択されていることを確認し、「追加」をクリックするか、Returnキーを押します。

adding a group with its own folder

これは、既存のファイルを新しいグループに移動する必要がある場合、Xcodeはまだそれをしないので、あなたをあまり節約しません。

ただし、新しいファイルを保持するために新しいグループを作成する場合は、いくつかの手順が節約されます。

125
rob mayoff

フォルダーを同期するのが面倒な人には、 GitHub に素敵なツールがあります。

Synxは、XcodeプロジェクトフォルダをXcodeグループに合わせて再編成するコマンドラインツールです。

enter image description here

これが誰かを助けることを願って

37
E-Riddie

Andyvn22の答えをご覧ください here

言い換えると:

  • Xcode 3:Xcodeでグループを作成するたびに、すぐにその情報を取得し、その名前のすぐ下に「パス:」設定があることに注意してください。 [選択...]をクリックして、同じ名前の新しいフォルダに設定します。
  • Xcode 4:Xcodeでグループを作成するたびに、すぐにそれを選択して右側のサイドバーを開きます。名前のすぐ下にある「パス:」設定に注意してください。 「なし」の横にあるアイコン(ウィンドウ内のファイルとは何ですか)をクリックして、同じ名前の新しいフォルダーに設定します。

その後、ディスク上の既存のファイルを新しいフォルダーに手動で移動する必要があります。

Xcode4プロジェクトでこれを試してみましたが、これは魅力のように機能します。

5