web-dev-qa-db-ja.com

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

プロジェクトを始めたとき、私はリテラルフォルダーではなくXcodeでグループを使用できてうれしかったです。

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

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

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

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

174

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

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


ファイルを実際のフォルダーに移動することは確かに可能ですが、本来のように単純ではありません。

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

プロセス

ファイルの移動は、複数のサブステップを含む2ステップのプロセスです。

  1. ファイルを置きたい場所にXcodeを教えてください

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

    • Pathウィンドウの右端にあるChooseボタンをクリックします) 範囲。ダイアログボックスが表示されます。

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

    • グループ内のファイルの名前は赤に変わり、指定した場所でXcodeがそれらを見つけられないことを示します。

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

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

    • Xcodeに切り替えます。ファイル/グループはすべて再び黒になっているはずです。まだ赤で表示されている場合は、適切なフォルダーに何かを移動するのを忘れています。

ヒント

このプロジェクトで〜300ファイルを調整しながら、いくつかの重要なことを学びました。

  • 一部のファイルはこの方法での移動を拒否しています。つまり、新しい宛先に移動すると、Chooseボタンが無効になり、New Folderボタン。解決策は、なぜ違いがあるのか​​わかりませんが、最初にXcodeを使用してそれらのファイルをグループに入れます(ファイルを右クリック/コントロールクリックし、Group、グループに名前を付けて)、グループを新しい場所に移動します。 Finderでファイルを実際に移動した後、それらをグループから削除できます(新しい親グループ/フォルダーにドラッグしてグループを削除します)。

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

  • ファイルが目的の場所に移動しない場合-早めに作成したファイルをClassesフォルダーに移動するという悪魔がいた-Finderの古い場所からドラッグして、デスクトップのような便利な場所で、Xcodeでそれらへの参照を削除してから、右/コントロールクリック既存ファイルの追加オプションを使用してそれらを再インポートします。

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

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

118

2017年の最新の(そして非常にシンプル!)アプローチ(Xcode 6、7、8、時には9

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

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

  5. Finderの選択ダイアログで、手順2でこのグループ用に作成した同等の新しいフォルダーを見つけます。Allそのグループ内のファイルは自動的に再発見されます!

いいじゃない?作成した新しいグループごとに、せいぜいこれらの5つの手順を繰り返す必要があります(各ファイルを個別に再配置するよりも優れています!)

ボーナスポイント!

あなたが誤って移動を台無しにして、今あなたのファイルの束が赤くて見つけられないと言ってください:選択されたmultipleファイルを使用して手順4のスクリーンショットの同じフォルダーアイコンで、これらのファイルを含む正しいフォルダーを見つけると、不足しているパスが自動的に解決されます。

171
brandonscript

Xcode 5またはXcode 6の場合

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

enter image description here

乾杯。

104
reinaldoluckman

ここで、XCodeのぞっとするような設計を回避する最も信頼できる方法は、次の2つの理由から、すべてのファイルをFinderで整理することです。

  1. XCodeのGUIとは異なり、Finderは「間違い」を起こしません。
  2. Finderで物事を整理したら、Finderフォルダー全体をXCodeにドラッグアンドドロップできます。

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

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

NB:XCode 3では、多くの場合、絶望的にバグが多く、プロジェクトを破損する可能性があるため、「サブグループでドラッグしたフォルダーを作成する」オプションを使用しません。 Appleは明らかに(IMHO)この機能を内部で使用していません。そうでなければ、バグが発生することは許されません。 Appleが何かを使用しない場合、一般的にそれを使用することも安全ではありません-テストは得意ではありません:)

22
Adam

セットアップと使用が簡単ですコマンドラインツール-githubで利用できる「synx」は、まさにここで必要なことを行います。

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

ここで見つけることができます: https://github.com/venmo/synx

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

21
Nitesh Borad

Xcode 9

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

5
Guy Daher

次のツールを使用してそれを実現しました。 グループXcodeでフォルダーを整理

--no-default-exclusions
3
Mike.R

通常、Finderのディレクトリにファイルを直接移動し、[情報を取得]ダイアログでXCodeの赤い名前のファイルを修正します。[選択...]ボタンをクリックして、ファイルの新しいロケートインを選択します。 XCodeでファイルを移動するときの最初の応答であり、動作します。

2
Xie Yanbo

Xcode 4.5でフォルダーを移動するには、ただ...

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

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

古いプロジェクトの問題を修正しようとするのは苦痛でした。これらのファイルを削除して、再びドラッグするだけで簡単になりました。

1
Snowcrash

XCode 8の最も簡単な手法...

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

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

できた.

1