Xcodeで実際のフォルダーにファイルを移動する


177

プロジェクトを開始したとき、リテラルフォルダーではなくXcodeでグループを使用してよかったです。Xcodeのブラウザーを使用してすべてにアクセスしているので、うまく整理されていて満足でした。

しかし、プロジェクトがバージョン管理のために共有されようとしている今、プロジェクトフォルダー自体は、ターミナルを介してスキャンしようとする人にとっては恐ろしいショーで、約300のファイルがあり、その半分以上がグラフィックスです。

私は今、物事を再編成し、実際のフォルダーを作成し、それらをXcodeにインポートしようとしています。残念ながら、Xcodeでは、グループの場合のようにそれらを操作できません。たとえば、実際に追加されたフォルダー(黄色ではなく青)を右クリックして既存のファイルを追加することを選択した場合、実際にはそれらはフォルダーに配置されず、ルートに配置されます。

同様に、偽のフォルダー(グループ)から実際のフォルダーにファイルを移動することはできません。Xcodeは、実際のフォルダーを移動先として有効な場所と見なしません。

何が欠けていますか?グループを使用する方法でフォルダーを使用できるようにXcodeを説得するにはどうすればよいですか?多少似た質問に対する回答がありますが、既存のファイルを使用しているため、実際には問題が解決しません。

回答:


176

2017年のモダンな(そして非常にシンプルな!)アプローチ(Xcode 6、7、8、および場合によっては9)。

一連のファイルを新しいフォルダに移動し、子階層を維持している場合、実際には各ファイルを個別に移動するよりもはるかに簡単です。

  1. Xcodeフォルダーツリーに新しいグループを作成し、ファイルを好きなようにグループ化します。
  2. Finderで一致する物理フォルダツリーを作成し、物理ファイルをそれらに整理して、手順1で実行した内容と一致させます。
  3. Xcode内のすべての参照が赤になります(これで問題ありません)。
  4. Identity and Type Managerから、再配置するXcode内のグループを選択し、情報ペインからフォルダーアイコンをクリックします。

  5. Finder選択ダイアログで、ステップ2でこのグループ用に作成した同等の新しいフォルダーを見つけます。そのグループ内のすべてのファイルが自動的に再検出されます。

いいですね。多くても、作成した新しいグループごとにこれらの5つの手順を1回繰り返す必要があります(これにより、各ファイルを個別に再配置するよりも簡単です!)

ボーナスポイント!

誤って移動をめちゃくちゃにして、ファイルの束が赤くなって見つからなくなったとします。壊れているファイルを複数選択し、手順4のスクリーンショットで同じフォルダーアイコンを使用して、これらを含む正しいフォルダーを見つけます。ファイルは、欠落しているパスを自動的に解決します。


3
ただし、これを行うと、Gitでファイルが追跡されなくなります。もちろん、いつでもファイルを読み取ることができますが、何か不足していますか?
SleepNot

2
@jeraldoは、使用しているgitのフレーバーがわかりませんが、私はその問題に遭遇したことがありません。ただし、簡単に行うことができますgit add .
ブランドンスクリプト

何かが足りないので、それが何かわかりません。ステップ(1)の「ファイルを整理する...」という言葉の意味が理解できないかもしれません。これは「ドラッグアンドドロップなどでファイルをグループに追加する」という意味だと思います。しかし、これを実行すると、もちろんステップ(3)で述べたように、Xcodeはファイルを認識し、それらを赤で表示しません。私が間違っていることは何か考えていますか?
hkatz 16

手順2のように物理ファイルを移動しましたか?
brandonscript 16

1
ああ、わかった!ステップ(2)は、私には少し分かりにくいものでした。書き換えている場合は、「一致する物理フォルダツリーを作成し、Xcodeの[Finderに表示]コマンドを使用して、手順(1)で新しいグループに追加したファイルを特定し、それらのファイルを物理的に移動します。先ほど作成したフォルダに。」そのようなもの...
hkatz

119

2017年6月にさらに編集: Xcode 9はこれを自動的に実行します。特別な作業は必要ありません。この答えとブランドンの答えは、Xcode 8以前にのみ適用されます。

2016年12月編集:以下のブランドンの答えは、より良い解決策です。2010年にこの回答が作成されたとき、これが唯一の選択肢でした。次に、ブランドンの回答を以下に示します。


実際のフォルダにファイルを移動することは確かに可能ですが、実際にはそれほど単純ではありません。

Xcodeのファイルとフォルダーの整理(コアデータモデルオブジェクト-iPhone)の質問から基本的な情報を得ましたが、その過程で重要なことを学びました。

プロセス

ファイルの移動は、複数のサブステップからなる2ステップのプロセスです。

  1. ファイルを配置する場所をXcodeに指示します

    • 移動するファイルまたはファイルグループを右クリック/ Controlキーを押しながらクリックし、表示されるコンテキストメニューから[ 情報を見る]を選択します。グループ情報またはファイル情報ウィンドウが表示されます。

    • ウィンドウの右端にあるパス領域の[ 選択 ]ボタンをクリックします。ダイアログボックスが表示されます。

    • ファイルの移動先のフォルダーに移動します。必要に応じて、新しいフォルダを作成します。ダイアログボックスの右下隅にある[ 選択 ]ボタンをクリックし、[ グループ情報/ファイル情報]ウィンドウを閉じます。

    • グループ内の1つまたは複数のファイルの名前が赤くなり、指定した場所でXcodeがファイルを見つけられなかったことを示します。

  2. 実際のファイルを移動する

    • Finder(またはGit)で、ステップ1で選択したファイルを実際のフォルダーに移動します。

    • Xcodeに切り替えます。ファイル/グループはすべて再び黒くなっているはずです。まだ赤いものがある場合は、適切なフォルダに何かを移動できていません。

チップ

このプロジェクトで最大300個のファイルを調整しているときに、いくつかの重要なことを学びました。

  • 一部のファイルはこの方法で移動することを拒否します。つまり、新しい宛先に移動すると、[ 選択 ]ボタンが無効になり、[ 新しいフォルダ ] ボタンも無効になります。解決策は、なぜ違いが生じるのかはわかりませんが、まずXcodeを使用してそれらのファイルをグループに配置し(ファイルを右/コントロールクリックして[ グループ ]を選択し、グループに名前を付けます)、次に移動します新しい場所にグループ化します。Finderで実際にファイルを移動した後、それらをグループから削除できます(ファイルを新しい親グループ/フォルダーにドラッグしてグループを削除することにより)。

  • いくつかのファイルのステップ2を完了した後、数分ごとに停止してビルドします。ビルドは、これまでに何かを台無しにしたかどうかを教えてくれるので、ダメージを与えすぎる前に戻って修正するのが簡単になります。

  • ファイルが目的の場所に移動しない場合、Classesフォルダーに早い段階で作成されたいくつかのファイルを移動するのに時間がかかりました。ファイルをファインダーの古い場所からドラッグして、デスクトップのように便利な場所で、Xcodeでそれらへの参照を削除してから、右クリック/ controlキーを押しながら[ 既存のファイルを追加 ]オプションを使用してそれらを再インポートします。

  • 過去にXcodeを使用して、ファイルへの参照をこのプロジェクトのゴミ箱に移動せずに削除したことがある場合、移動する必要はなく、そこに座っているだけのファイルを見つけることができます。私がやったことをしないように注意してください。現在移動しているファイルのグループの名前と、リンクされていない古いファイルの名前を混同し、Xcodeはそれらが密集していると思ったのでインポートするように要求しました。

これが将来の人に役立つことを願っています。それがそうであったのと同じくらい難しく、時々トリッキーだったことに私は驚いています。


2
同じディレクトリにすべてのファイルがあることは本当に私を悩ませていました。これありがとう!
Curtis Shipley

また、Finderでディレクトリ構造を
自由に

@bshirley非常に当てはまります。メインディレクトリのすべてのファイルをプロジェクトに含める必要がある場合は、時間を大幅に節約できます。残念ながら、複数の人が関与するプロジェクトや、時間の経過とともに多くのリリースがあったプロジェクトでは、プロジェクトに追加してはいけないファイルがいくつも存在する可能性があります。その場合、それらを復元するために削除したもの、または類似のものを追跡する必要があります。
マシューフレデリック

11
xcode 4では、私は何か別のことをしなければなりませんでした-右クリックしたときにコンテキストの「情報を取得」リンクが表示されませんでした。代わりに、IDとタイプビューを表示する必要がありました(おそらく、この名前がわかりません)。これは、xcode4ヘッダーバーの表示オプションの右端のボタンです。最初にファイルをファイルシステムに移動し、パスの横にある奇妙なアイコンをクリックして、xcodeに新しいファイルの場所を伝えます。
Evan Pon

6
ファイルの移動に関する問題は、すでにSVNの管理下にある場合、VersionsやCornerstoneなどのアプリを使用してファイルを移動する必要があることです。そうしないと、バージョン管理にひどい問題が発生します。私はAppleが「グループ」の考えを捨てて、すべてを実際のフォルダに入れて、Eclipseを
アラカルトにしたい

104

Xcode 5またはXcode 6の場合:

  1. Finderでグループにマップするフォルダを作成します
  2. Finderでそれらのフォルダにファイルを移動します
  3. 左側のXcodeサイドバーで赤いファイルを選択します
  4. 「ユーティリティの表示/非表示」ボタンをクリックして、右側のサイドバーを表示します(図を参照)
  5. 「IDとタイプ」で、小さなボタンをクリックし、ファイルの場所を選択します(図を参照)

ここに画像の説明を入力してください

乾杯。


1
一部のユーザーに注意してください。ヘッダー情報がプリコンパイルされた後に変更が加えられたというエラーが発生した場合は、製品をクリーンアップするだけで問題が解決します。
クォンタム

Xcode 5.1.1でこのアプローチに従い、ヘッダーファイルを物理フォルダーに移動しました。ファイルを移動できます。しかし、Xcodeはプロジェクトのビルド中に「ファイルが見つかりません」と言っています。手伝ってくれませんか。
Rashmi Ranjan mallick 2014

22

XCodeの恐ろしい設計を回避する最も信頼できる方法は、Finderですべてのファイルを整理することです。これには2つの理由があります。

  1. FinderはXCodeのGUIとは異なり、「間違い」をしません
  2. いったんFinderで整理すると、Finderフォルダー全体をXCodeにドラッグアンドドロップできます。そして、...思い通りの結果を簡単に作成できます

既存のXCodeファイルを移動する場合でも、これを行う方が迅速です。

  1. Finderでファイルを選択します
  2. Finderでフォルダを作成する
  3. それらをフォルダーにドラッグ/ドロップします(自動的に移動します)
  4. FinderフォルダーをXcodeにドラッグアンドドロップ(自動的に:Xcodeフォルダーを作成し、Finderフォルダー内のすべてのファイルを追加します)
  5. (移動したため)Xcodeに表示されるすべての「赤い」ファイルをcmd-selectし、削除キーを押します。

注意:「サブグループを含むドラッグされたフォルダを作成する」オプションは決して使用しません。XCode3では、バグが多く、プロジェクトが破損する可能性があるためです。Appleは明らかに(IMHO)この機能を内部で使用していません。それ以外の場合は、それほどバグが多いことは許されません。Appleがモノを使わないのなら、それを使うのも一般的に安全ではありません-それらはテストが得意ではありません:)


2
私はこれを明日試しています。これは私が探していた単純な解決策でした。彼らはなぜそれをそんなに難しくしたのですか?ファイルシステムをミラーリングしただけであれば、混乱ははるかに少なくなります。ありがとう!
delux247 2012

これは私が試した4番目のソリューションであり、xcode 5.1.1で作業できる唯一のソリューションでした。また、何らかの理由で、これは私のカテゴリーでは機能しません。私は文字通りそれらをゴミ箱に移動し、ゴミ箱から戻し、xcodeに再度追加する必要があり、最終的には機能しました。
user3344977 14

21

簡単に設定して使用できるコマンドラインツール-githubで 利用可能な「synx」は、ここで必要なことを正確に実行します。

ファインダー内のXcodeプロジェクトフォルダーを再編成して、プロジェクト内のXcodeグループに一致させます。

あなたはここでそれを見つけることができます:https//github.com/venmo/synx

更新: XCode 9はデフォルトでこの機能をサポートしています。だから、もう他のツールを使う必要はありません!


優れたツールですが、大きなプロジェクトでは非常に遅くなり(ジョブを完了するのに数分かかる場合があります)、もうサポートされていないようです。
Lukasz 2017

6

Xcode 9

Xcode 9はデフォルトでサポートしているようです。グループから別のグループにファイルを移動すると、ファイルも古いフォルダーから新しいフォルダーに移動されます。これはWWDC 2017で発表されました。



2

私は通常、Finderでファイルを直接ディレクトリに移動し、[情報を見る]ダイアログでXCodeの赤い名前のファイルを修正します。[選択...]ボタンをクリックして、ファイルの新しい場所を選択します。これは、XCodeでファイルを移動したいときの最初の応答で、機能します。


1

Xcode 4.5以降、フォルダー構造をドラッグすると、プロジェクトナビゲーターで自動的にネストされたグループに変わります。次に、ディスクを見ると(たとえば、右クリックして[Finderに表示]を選択)、フォルダ構造が保持されています。

古いプロジェクトの問題を修正するのは苦痛でした。これらのファイルを削除して再度ドラッグする方がはるかに簡単です。


1

xcode 4.5でフォルダーを移動するには、次のようにします。

  1. xcodeからファイル/グループを削除し、[参照の削除]を選択します。
  2. ファインダーに行き、必要に応じてフォルダー/ファイルを移動します。
  3. 完了したら、Xcodeに戻り、[ファイル]> [ファイルを{ProjectName}に追加]を選択します。
  4. 「アイテムを宛先グループのフォルダにコピーする(必要な場合)」がチェックされていることを確認します
  5. 「追加されたフォルダのグループを作成する」がチェックされていることを確認してください
  6. プロジェクトの「ターゲットに追加」がチェックされていることを確認してください

1

XCode 8 ....の最も簡単なテクニック

論理グループにファイルA、B、Cがあるが、それらをハードドライブのフォルダーに移動したいとします。

  1. Finderで宛先フォルダを作成する
  2. オプションペインを使用してXCodeにフォルダーを追加し([ファイル]-> [ファイルの追加])、フォルダー参照(グループではない)を選択します。
  3. ファイルA、B、Cを(古い)グループからプロジェクトナビゲーターの(新しい)フォルダー参照にドラッグします。XCodeは、ファイルをプロジェクト内とディスク上の両方のフォルダーに移動します。

できました。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.