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


119

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


フォルダの名前を変更してみましたか?
David Brown、

2
私には友達がいて、プロジェクトファイル内のすべてのファイルが見つからない-参照がないため、それらはすべて既読としてマークされています。しかし、私は魂を見つけました-私の答えを見てください。返信ありがとう
クリスG.

回答:


259

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

方法は次のとおりです。

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

  2. Xcodeで、左側のサイドバーにある(現在は壊れている)仮想フォルダをクリックし、Finderの名前と一致するように名前を変更します(実際には、好きな名前を付けることも、名前をまったく変更しないこともできますが、それはおかしいでしょう) )。フォルダー内の赤いファイルは修正されませんが、問題ありません。

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

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

すべて完了!

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

編集:このオプションはXcode 5にも存在しますが、デフォルトでは非表示になっています。これを表示するには、[テキスト設定]パネルの上にあるインスペクタの細い[IDとタイプ]ヘッダーをクリックして展開します。


名前を変更してプロジェクト全体の名前を変更する操作の一部である場合は、別の手順があります。右側の上部にある「プロジェクト名」を変更し、Xcodeがすべての名前を内部で変更できるようにします。
RedYeti 2013年

1
すべてがうまく機能し、プロジェクトの名前は変更されますが、上部のビルドメッセージとシミュレーターによる名前は古い名前のままで、これを変更します。製品メニューに移動し、スキームを管理してスキームの名前を変更します
BlackTigerX

そうだね。スキームを削除して、スキームの自動作成ボタンを押すこともできます。
Nick Lockwood 2013

誰でもこれをxCode 5で行う方法を知っていますか?その魔法のボタンはもう見えません。:(
ジェイソン

それはまだそこにあり、ただ隠されています。「Identity and type」という行をクリックして、インスペクターで展開する必要があります。それを理解するのに約20分かかりました!
Nick Lockwood 2013年

112

私は何十回もそれをやった:

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

3
プロジェクトの名前を変更した後は、忘れずにこれを行ってください
Aram Kocharyan '29 / 02/29

私はあなたの指示に従い、失敗します。問題は「元のフォルダ名の出現を検索して新しいフォルダ名に置き換える」にあると思います。このステップについて、より詳細な説明を提供できますか?ありがとう
Philip007 2012

検索と置換の方法は、選択したテキストエディターまたはツールによって異なります。私の場合、vimを使用:<ESC>:%s / old / new / g <ENTER>プロジェクトファイルに競合する名前を持つ何かがある場合、失敗する可能性があります。
djromero

@madmwに感謝、私はそれを理解した。TextEditを使用しています。その秘訣は、検索と置換の際に「含む」属性を「完全な単語」に置き換えることだと思います。そして、私は以下の詳細な指示を投稿します。
Philip007 2012

御馳走です!静的ライブラリなどのターゲットのフォルダーの名前を変更するときは、スキーマを変更して、プレフィックスヘッダーとinfo plistファイルの名前も変更する必要がありました。
Tim Potter、

12

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

これを変える:

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

これに:

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

手順:

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

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

//上記のすべての手順は単純で、副作用はありません// // Finderで内部フォルダー(画像の中央の列)の名前を変更します(.xcodeprojと同じレベルのフォルダー)

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

4

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

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

手順9について詳しく説明していただけますか?
Philip007 2012

2

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

必要な場合は、その下にある可能性があります-私はそれを動作させることができず、新しいプロジェクトを作成してしまい、既存のファイルをすべてコピーし始めました。Xcodeはとてもああ....ファイルの名前を「名前」から「名前」に変更するなど、非生産的なものがたくさんあります。まあ、まあ楽しんでください。

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

それだ。それが誰かを助けることを願っています。


2
私は昨日プロジェクトの名前を変更しましたが、うまくいきました。Xcodeが "ahh"であることにも同意します:D
manmal

これを行うには完全に安全でサポートされている方法があります-私の答えを見てください。
Nick Lockwood 2013年

2

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

パス= FooBar

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

パス= "フーバー"

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


2

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

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

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

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

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

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

  6. Xcodeで、左側のサイドバーにあるプロジェクトナビゲーターの(現在は壊れている)仮想フォルダーをクリックし、Finder-ProjDefの名前と一致するように名前を変更します。フォルダー内の赤いファイルはまだ修正されませんが、問題ありません。

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

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

    • 「プロジェクトコンテンツアイテムの名前を変更しますか?」というプロンプトが表示されます。「名前を変更」ボタンをクリックします。
    • 「プロジェクトの名前変更や同様の操作の前にXcodeで自動スナップショットを取得しますか?」というプロンプトが表示されます。「無効」または「有効」をクリックします。それは問題ではありません。
  9. Xcodeで、ProjDefターゲット内(Project NavigatorのプロジェクトProjDef内)で「Build Settings」を開きます。* -Info.plistファイルと* -Prefix.pchファイルの両方のフォルダー名とファイル名を、ProjAbcではなくProjDefを含むように変更します。

  10. Xcode、Project Navigator、ProjDef virtual sourcesフォルダーの「Supporting Files」で、*-Info.plistファイルと* -Prefix.pchファイルの両方の名前を再度変更して、ProjAbcの代わりにProjDefを含めます。

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

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

  13. Xcodeを終了します。

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

  15. テキストエディターで、一度表示されるはずの "ProjAbc"(単語全体、大文字と小文字の区別)を検索し(段落:/ * Begin PBXNativeTarget section * / in line:productName = ProjAbc;)、それを "ProjDef"に置き換えます。実際、プロジェクトはとにかく実行できるので、このステップはオプションです。

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

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

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


これを必要以上に複雑にしました。あなたが最初に、ステップ4の前に(ソースフォルダの名前を変更する)ステップ8(プロジェクトの名前を変更)を行う場合、それは自動的にあなたのInfo.plistとPrefix.pchファイルの名前を変更しますので、あなたは、ステップ9と10をスキップすることができます
ニック・ロックウッド

0

上記の回答、特にNick Lockwoodの回答は本当に役に立ちました。

私はXcodeの8内のフォルダのカップルと改名し、さらに2つの問題が発生しました:A)を「コピーエラー作業から欠落」 B)コアデータがクラッシュします

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

A) " 作業コピーのエラーから欠落しています

私は以下の答えが非常に役立つと思いました:Swift 3 / Xcode 8 Upgrade-作業コピーエラーから数百の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

プロジェクトへのソースプロジェクトの古い参照がある場合、プロジェクトを複製するとき(すべての変更が両方のプロジェクトに影響を与える)ここにソリューション

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

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

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