web-dev-qa-db-ja.com

Xcode 4プロジェクトと実際のフォルダーの名前を変更する

Xcode 4でプロジェクトの名前を変更する方法は知っていますが、ソースフォルダーの名前を変更するにはどうすればよいですか?問題は、Xcodeでプロジェクトの名前を変更すると、Xcode内でのみ名前が変更されるということです(以前と比較して進行中ですが)。

119
Chris G.

これは、テキストエディタでpbxprojファイルを手動で編集することなく、Xcode内から実行できます。

方法は次のとおりです。

  1. Finderでソースフォルダーの名前を変更します。 Xcodeは仮想(黄色)プロジェクトフォルダーが指す実際のフォルダーが変更されたときにXcodeが自動的に検出しないため、プロジェクトが最初に壊れます。そのため、フォルダー内のすべてのファイルはXcodeで赤に変わります。心配する必要はありません。手順3で修正します。

  2. Xcodeで、左側のサイドバーにある(現在壊れている)仮想フォルダーをクリックし、Finderの名前と一致するように名前を変更します(実際に任意の名前を付けることも、名前を変更しないこともできますが、それは非常識です) )。それはフォルダ内の赤いファイルを修正しませんが、それは大丈夫です。

  3. Xcodeの右側のサイドバーで、下のスクリーンショットに示されているアイコンをクリックして、ファイルダイアログを表示します。以前に名前を変更したフォルダーを選択します。これにより、仮想フォルダーがディスク上の実際のフォルダーに再度関連付けられ、内部のすべてのファイルへのリンクが自動的に修正されます。

  4. ビルド設定で、古いフォルダー名を検索し、見つかったオカレンスの名前を手動で変更します。通常、oldfolder/prefix.pchとoldfolder/info.plistの2つがありますが、他にもある場合があります。

全部終わった!

enter image description here

編集:このオプションはまだXcode 5にありますが、デフォルトでは非表示になっています。それを表示するには、「テキスト設定」パネルの上にあるインスペクターの細い「Identity and Type」ヘッダーをクリックして展開します。

259
Nick Lockwood

私は何十回もやってきました:

  • Xcode Project Navigatorでタイトルをクリックして編集し、プロジェクトの名前を変更します。
  • Xcodeを閉じます。
  • ソースフォルダーの名前を変更します。
  • Finderから、.pbxprojプロジェクトバンドル内のファイル(コンテキストメニュー[パッケージの内容を表示])とテキストエディター。
  • 検索および置換元のフォルダー名が新しいフォルダー名に出現する場合。
  • ファイルを保存します。
  • Xcodeプロジェクトを開きます。
112
djromero

タスク:XcodeとFinderの両方で「Play」の名前を「Play2」に変更

これを変更:

enter image description here

これに:

enter image description here

STEPS:

//何よりも前に、Finderでプロジェクトをバックアップしてください!

  • Xcode Projectナビゲーターでプロジェクトの名前を変更する//プロジェクト名をクリックしてEnterキーを押す
  • Xcode Projectナビゲーターのグループ名を変更// Finderのフォルダー名に影響を与えない
  • Xcodeを閉じる
  • Finderで外部フォルダー(画像の左列)の名前を変更する

//上記のすべての手順は簡単で、副作用はありません// //ここで注意が必要な部分があります:Finder(.xcodeprojと同じレベルにあるもの)の内部フォルダー(画像の中央の列)の名前を変更します

  • Xcodeを閉じたままFinderの内部フォルダーの名前を変更する
  • .xcodeprojを右クリックして、「パッケージの内容を表示」を選択します
  • Mac TextEditで.pbxprojファイルを開く
  • すべての「Play」を検索して「Play2」に置き換えます。すべてが正しく機能することを保証するには、検索バーの左端にある矢印をクリックして、検索属性を変更します。 「含む」を「フルワード」に変更し、「大文字と小文字を区別しない」のチェックを外す
  • .pbxprojファイルを保存する
  • Xcodeプロジェクトを開いて実行
12
Philip007

XCode4でプロジェクトの名前を効果的に変更する方法は次のとおりです(ファイルフォルダを含む)。

  1. XCodeで開いているすべてのプロジェクトを完全に閉じて、問題を防ぎます
  2. 問題のプロジェクトを新しいフォルダーにコピーします(重要:古いプロジェクトのバックアップを保持します)
  3. プロジェクトを開く
  4. XCode4でプロジェクト自体の名前を変更し(プロジェクト名をダブルクリック)、名前を変更して手順に従います(すべてはい)
  5. 製品に移動し、スキームを管理し、スキームの名前を変更します(スキーム名をダブルクリックします)
  6. プロジェクトを閉じます(完全に閉じていることを確認してください。閉じていない場合、次の手順は機能しません)
  7. Finderで[プロジェクト]フォルダーに移動し、.xcodeprojファイルを右クリックして、[パッケージの内容を表示]オプションを選択します
  8. 次に、.pbxprojファイルを右クリックして、TextEditで開きます
  9. プロジェクトが存在していたフォルダー名の出現箇所をすべて置き換えます(新しいプロジェクト名の古いプロジェクト名)
  10. ファイルを保存する
  11. プロジェクトを再度開き、ビルドします!
4
Mav55

最初に-Xcodeプロジェクトの名前を変更しないでください!!!

あなたがしなければならない場合、下にある可能性があります-私はそれを動作させることはありませんでした、新しいプロジェクトを作成することになり、既存のファイルのコピーを始めました。 Xcodeはとてもすごい…。ファイルの名前を「名前」から「名前」に変更してみてください。よく、よく楽しんでください。

私は答えまたはこれを回避する方法を見つけました:「パッケージコンテンツを表示」を右クリックしてpbxprojファイルを開き、そこでproject.pbxprojファイルを編集します-パスと呼ばれる参照の名前を変更する必要があります-他のものフォルダ名に「/」が追加されました。

それだ。それが何らかの助けになることを願っています。

2
Chris G.

* .pbxprojファイルの値を置き換える際に注意する必要がある別の問題を次に示します。古いフォルダ名がFooBarの場合、*。pbxprojファイルに次のようなエントリがあります。

パス= FooBar

新しいフォルダー名がFoo Barであるとします。つまり、スペースを導入しています。次に、この行は

path = "Foo Bar"

単純な検索と置換を行うだけの場合、結果はXcodeが解析できない* .pbxprojファイルになります。新しいフォルダ名にスペースがあり、古い名前にスペースがなかった場合は、二重引用符を必ず含めてください。

2
Zampano

上記のさまざまな答えを検討し、自分自身を試してみた後、私は自分のために要約しています。現在のプロジェクト名がProjAbcであ​​り、名前をProjDefに変更するとします。

  1. そのプロジェクトのXcodeを終了します。

  2. Finderで、バックアップ用にProjAbc.xcodeprojフォルダーを複製します。

  3. Finderで、新しいプロジェクト名に合わせて必要な場合は、ABOVE ProjAbc.xcodeprojフォルダーの名前を自由に変更します。

  4. Finderで、ProjAbcからProjDefにProjAbc.xcodeprojに対応するソースファイルフォルダーの名前を変更します。

  5. ProjAbc.xcodeprojのXcodeを開きます(Project Navigatorでは、仮想ソースフォルダーProjAbcのすべてのファイルは赤色になります)。

  6. Xcodeで、左側のサイドバーにあるProject Navigatorの(現在壊れている)仮想フォルダーをクリックし、Finderの名前と一致するように名前を変更します-ProjDef。それはまだフォルダ内の赤いファイルを修正しませんが、それは大丈夫です。

  7. Xcode(左側のサイドバーで仮想フォルダーを選択します)の右側のサイドバーのファイルインスペクターで、下のスクリーンショットに示すアイコンをクリックしてファイルダイアログを表示します。ファイルダイアログで、以前に名前を変更したフォルダー(ProjDef)を選択します。これにより、仮想フォルダーがディスク上の実際のフォルダーに再度関連付けられ、内部のすべてのファイルへのリンクが自動的に修正されます。 Picture shows where to click the Folder icon in File inspector

  8. XcodeのProject Navigatorで、ProjAbcプロジェクト名をクリックし、名前をProjDefに変更します。

    • 「プロジェクトコンテンツアイテムの名前を変更しますか?」というプロンプトが表示されます。 [名前の変更]ボタンをクリックします。
    • 「プロジェクトの名前変更などの操作の前に、Xcodeで自動スナップショットを撮影しますか?」というプロンプトが表示されます。 「無効化」または「有効化」をクリックします。それはどうでもいい事です。
  9. Xcodeで、ProjDefターゲット内(Project NavigatorのプロジェクトProjDef内)で「ビルド設定」を開きます。 * -Info.plistファイルと* -Prefix.pchファイルの両方のフォルダー名とファイル名を、ProjAbcではなくProjDefを含むように名前変更します。

  10. Xcode、Project Navigator、ProjDef仮想ソースフォルダー、「サポートファイル」で、*-Info.plistファイルと* -Prefix.pchファイルの両方の名前をもう一度変更して、ProjAbcの代わりにProjDefを含める

  11. Xcodeメニューで、Product/Scheme/Manage Schemes ...を押します(または、Xcodeの左上にあるSchemeバーで「ProjAbc」> Schemeの名前をクリックし、「Manage Schemes ...」を押します)、ダイアログボックスでSchemeの名前を変更しますProjAbcからProjDefに移動し、[OK]ボタンを押します。プロジェクト名が単一のWordで構成されている場合、今すぐ実行できます。

  12. Xcodeで、Supporting Files/*-Prefix.pchファイルの一番上のコメント行を編集し、ProjAbcをProjDefに置き換えます(2回)。もちろん、このコメントの修正はオプションです。

  13. Xcodeを終了します。

  14. FinderでProjDef.xcodeprojをポイントし、テキストエディターで開きます。 (TextWrangler.appで開くか、マウスを右クリックしてポップアップメニューで[パッケージの内容を表示]を押し、TextEdit.appでファイルproject.pbxprojを編集します)

  15. テキストエディタで、「ProjAbc」(単語全体、大文字と小文字を区別)を検索します(段落内:/ * PBXNativeTargetセクションの開始* /行:productName = ProjAbc;)。これを「ProjDef」に置き換えます。実際、プロジェクトはとにかく実行される可能性があるので、この手順はオプションです。

  16. プロジェクト名が「ProjDef Geh」のように2つ以上の別個の単語で構成されている場合、次の手順を実行する必要があります。仮想ソースファイルフォルダーのFinderフォルダーへの参照を検索します-

    • 次の行を検索します。path = ProjDef Geh;
    • 段落に1回表示されます/ * ProjDef Geh * /
    • 次の行で置き換えます:path = "ProjDef Geh";
  17. テキストエディターから保存し、テキストエディターを終了します。

  18. それでおしまい。上記のように、プロジェクト名が単一のWordで構成されている場合、手順11の最後で実行できます。

2
mlev

プロジェクトへのソースプロジェクトの古い参照がある場合は、ここでプロジェクトを二重化するとき(すべての変更が両方のproejctに影響する)

  • ソースプロジェクトからプロジェクトを複製する
  • 参照の問題を解決するソースプロジェクトのソースフォルダーの名前を変更します。
  • 二重化プロジェクトでは、すべてが赤になり、プロジェクトの現在のフォルダーを選択します。 (スクリーンショットは、stackoverflowの緑色のチェック応答で表示されます)

================================================== ======================

0
Ravi Kumar

上記の回答、特にNick Lockwoodの回答は本当に便利だと思いました。

Xcode 8でいくつかのフォルダーの名前を変更したところ、さらに2つの問題が発生しました。A) "作業コピーエラーがありません"B)Core Dataがクラッシュします

これらの2つの問題を解決する方法:

A)「作業コピーエラーがありません

私は以下の答えが非常に有用であることがわかりました: Swift 3/Xcode 8 Upgrade-100のDerivedDataファイルが作業コピーエラーから欠落しています

基本的に、Xcode 8には厳密なソース管理があり、上記のエラーが発生する可能性があります。必ず:

  1. Xcodeから派生したデータを消去します。
  2. ソース管理に移動し、ステータスの更新をクリックします。
  3. ソース管理に移動し、「コミット」をクリックします。コミット時にコミットメニューの左側のサイドバーですべてのファイルを選択します(右クリック-> [すべて選択])。
  4. おそらくエラーが発生します。
  5. [コミット]メニューを閉じます。
  6. 更新ステータス。
  7. Xcodeを終了してプロジェクトを閉じます。
  8. プロジェクトを再度開き、ステータスを更新して、再度コミットします。
  9. 今回はコミットが機能するはずです。
  10. [プロジェクト]-> [クリーン]をクリックします。

私はあなたがすでにソース管理を有効にしていると仮定しています。そうでない場合、または私の指示に従って動けなくなる場合は、提供されているリンクの詳細な指示に従ってください。

B)コアデータがクラッシュする

フォルダの名前を変更すると、コアデータが台無しになることがあります。これにはいくつかの理由が考えられますが、以下にいくつかの修正方法を示します。

  1. 間違ったAppDelegateモデル名。私の状況ではそうでした。 AppDelegateに移動して、let container = NSPersistentContainer(name: "YOUR CORE DATA MODEL NAME")を見つけます。名前が正しいことを確認してください。

    将来(この投稿から数年後、AppleがCore Dataを再び変更するとき)、またはCore Dataの古いバージョンを使用している場合は、AppDelegateを注意深く見てください。そこがコアデータをいじっています。

  2. xcdatamodeldのモデル名が正しくありません。 Finderに移動し、テキストエディターで.xcdatamodeldを開きます。

以下を確認してください。

<plist version="1.0">
  <dict>
     <key>_XCCurrentVersionName</key>
     <string>YOUR CORE DATA MODEL NAME.xcdatamodel</string>  <-- Make sure this is correct.
  </dict>
</plist>

詳細はこちら: コアデータモデルファイルは名前変更時にロードされません

  1. 上記の2つのことがうまくいかない場合は、1)エンティティを削除してから、同一の別のエンティティを追加するか、2)xcdatamodeldを削除してから、同一の別のデータモデルを追加してください(新しいxcdatamodeldの名前が一致することを確認してください) AppDelegateとコードの残りの部分)。 ライブアプリでこれを実行しないでください-または、実行する場合は、コアデータを適切に移行するようにしてください。
0
Hadoren